跳到主要内容

Claude Code入门

本章要点

在上一章里,我们深入了解了Cursor——一个把AI"嵌入"到图形界面中的编辑器。这一章,我想带你认识另一种完全不同的工作方式:在终端里与AI对话

你可能会想:终端?那不是只有黑客才用的东西吗?黑色窗口、白色文字、还要记命令……听起来就很麻烦。但我想说的是,Claude Code正在改变这一切。它让终端变成一个极其纯粹、高效的编程环境:你不需要离开键盘去点按钮,不需要在菜单里找功能,只需要用自然语言说出你想要什么,AI就会动手去做。

读完这一章,你会理解为什么越来越多的开发者开始偏爱这种方式,以及如何让Claude Code成为你得力的编程伙伴。

为什么要用终端来编程?

在深入学习Claude Code之前,我想先聊聊一个更根本的问题:终端工具存在的意义是什么?既然Cursor那样的图形界面编辑器已经能把AI用得很好,为什么还要有人选择"回到"命令行?

答案藏在两种工具本质的区别里。

图形界面工具的核心优势是直观。你看到什么就能操作什么,点一下菜单就能执行功能,分屏能同时看到代码和效果。这对很多任务来说是最优的——尤其是涉及UI开发、视觉调试、团队成员协作时。

但图形界面也有它的代价。每一个功能都需要一个"入口"——一个按钮、一个菜单项、一个快捷键。一个功能越复杂,它的入口就越难设计。想把AI的能力融入进去,就需要在有限的空间里做各种取舍和妥协。

终端则不同。终端的本质是对话。这里没有按钮,没有菜单,只有一个闪烁的光标,等待你说话。你想要什么,就说什么。你不需要担心某个功能藏在哪里,因为所有功能都在同一个地方——你的自然语言描述里。

这带来的直接好处是:AI的能力不再受限于界面设计。在图形界面里,AI可能是"代码补全"、"聊天助手"、"重构工具"——每个能力被分配到不同的角落。但在终端里,AI就是你对面那个人,它可以是所有这些,也可以都不只是这些。

当然,终端工具也有明显的局限。它看不见你的屏幕,不能帮你拖拽UI元素,处理视觉相关问题时需要你提供更多描述。如果你习惯了图形界面的便利,终端的学习曲线确实会更陡一些。

那么,什么样的人适合尝试终端工具?

如果你经常发现自己"想做的事比编辑器提供的选项多";如果你习惯了用键盘完成大部分操作;如果你享受那种"安静地坐在终端前思考"的感觉——那你很可能会喜欢Claude Code。反过来,如果你主要是做前端开发、需要频繁预览效果;或者你更喜欢图形化的直观体验——Cursor可能更适合你。

最好的方式是两个都试试,感受它们带来的不同体验。很多时候,开发者会发现自己在不同场景下选择不同工具——用Cursor做日常的开发和调试,用Claude Code处理需要AI深度参与的复杂任务。

安装与启动

说了这么多概念,让我们动手试试看。Claude Code的安装比你可能想象的还要简单。

前置条件

你需要先安装Node.js,版本要求是18或以上。如果你不确定自己有没有安装,打开终端输入:

node --version

如果显示版本号(比如v20.x.x),就说明已经安装好了。如果没有,可以去Node.js官网下载安装包,或者用nvm等工具管理Node版本。

安装Claude Code

一条命令就够:

npm install -g @anthropic-ai/claude-code

这会把Claude Code安装到你的系统里,之后在任何目录下都可以直接使用claude命令。

第一次启动

进入你的项目目录,输入:

claude

第一次运行时,Claude Code会提示你登录Anthropic账号。你可以选择用Claude Pro订阅(每月17美元),或者用API按使用量付费。如果你只是想尝试一下,可以先用API方式——默认的用量对初学者来说成本很低。

登录完成后,你会看到一个欢迎界面,然后是一个等待你输入的提示符。这时候,Claude Code就已经准备好听你指挥了。

╭─────────────────────────────────────────────────────────────╮
│ │
│ Welcome to Claude Code! │
│ │
│ Type your request and I'll help you accomplish it. │
│ │
╰─────────────────────────────────────────────────────────────╯
> _

第一次对话:让AI帮你做点什么

与其解释各种功能,不如直接来一个实际的例子。假设你在一个包含Python代码的项目里,想给某个模块添加单元测试。

在提示符后面输入:

帮我看一下 @./src/utils.py 里的 calculate_discount 函数,给它写一些单元测试

注意那个@符号。它和Cursor里的@功能类似,让你可以精确引用文件或目录。Claude Code会先读取这个文件,理解函数的逻辑,然后生成测试代码。

你会看到Claude Code开始工作:它先读取文件,分析代码,然后自动创建测试文件,写入代码。整个过程中,每一步它都会告诉你正在做什么:

我来帮你给 calculate_discount 函数写单元测试。

首先让我读取这个文件...

好,我看到了这个函数的逻辑。它会根据用户等级和购买金额计算折扣价格。

我来创建一个测试文件...

已创建 ./tests/test_utils.py,包含以下测试用例:
- test_calculate_discount_regular_customer
- test_calculate_discount_vip_customer
- test_calculate_discount_edge_cases

要运行这些测试吗?

这展示了Claude Code的核心特点:它不只是"回答问题",而是"执行任务"。读取文件、创建文件、写代码、询问是否运行测试——每一步都是你不必亲自动手的劳动。

核心概念:Agent与工具

要真正用好Claude Code,需要理解它的几个核心概念:Agent、工具、和权限。

Agent:AI不只是聊天

当你启动一个Claude Code会话时,你启动的不只是一个"可以聊天的AI",而是一个Agent(代理)。Agent和聊天机器人的区别在于:聊天机器人只能"说",而Agent可以"做"。

Agent有一个"工具箱",里面有各种工具可以使用。当你给Agent一个任务时,它会自己判断需要用哪些工具来完成。你说"帮我添加一个用户登录功能",Agent可能会:

  1. 用文件读取工具,打开现有的路由文件和模型文件
  2. 用搜索工具,查找项目中已有的认证相关代码
  3. 用编辑工具,创建或修改相关文件
  4. 用Bash工具,运行测试验证代码是否正确

整个过程中,你不需要告诉它"先读这个文件、再改那个文件"。它会自己规划、自己执行、自己检查。你只需要在关键节点确认或调整。

工具箱里有什么

Claude Code内置了一套完整的工具集:

文件操作工具让Agent可以读取、创建、编辑、删除文件。它能看到你的目录结构,能理解代码的依赖关系。

Bash工具让Agent可以执行终端命令。运行测试、安装依赖、执行git操作、启动服务器——只要是你能在终端里做的事,Agent都能做。

搜索工具让Agent能在项目中查找代码。它能理解你的代码结构,找到相关的定义和引用。

网络工具让Agent可以访问网络资源。查询API文档、获取网页内容、调用外部服务。

思考工具是Agent的"内心独白"。面对复杂问题时,它可以先进行推理,规划解决方案,然后再动手。

除了这些内置工具,你还可以通过MCP协议添加更多工具,我们后面会详细说。

权限确认:你始终在掌控

Agent有了这么多能力,会不会失控?不会。Claude Code有一个重要的设计原则:任何可能有风险的操作都需要你的确认

当Agent想要执行一个bash命令时,它会停下来问你"是否允许执行"。当Agent想要修改一个文件时,它会展示修改内容让你确认。你可以选择"这次允许"、"这个会话都允许"或者"拒绝"。

这给了你安全感的同时也带来了便利。对于简单任务,你可能会频繁按确认键;但对于重要任务,每次确认都是一次审核的机会。随着你对Agent的信任加深,你也可以配置更高的自动批准级别。

Plan Mode:先规划再行动

当你给Agent一个比较复杂的任务——比如"重构这个模块,让它支持插件扩展"——如果Agent直接动手改代码,可能会走很多弯路,甚至改错了方向。

**Plan Mode(规划模式)**正是为了解决这个问题。当你告诉Agent"先规划一下",或者Agent自己判断这个任务比较复杂时,它会进入规划模式:先分析现状,制定计划,等你确认后再执行。

在Plan Mode下,Agent会:

  1. 理解需求:分析你描述的任务目标
  2. 探索代码:读取相关文件,理解现有结构
  3. 制定计划:列出需要创建或修改的文件,说明每一步的目的
  4. 等待确认:你审核计划,可以提出修改意见
  5. 执行计划:确认后才开始实际修改代码

你可以在输入时显式要求进入Plan Mode:

请进入规划模式,帮我设计一个用户通知系统

或者让Agent自己判断:

这个项目需要添加国际化支持,语言包括中英日三种,请帮我实现

Agent会自动进入规划模式,因为这是一个涉及多文件修改的复杂任务。

Plan Mode的价值在于让思考先行于行动。很多返工是因为方向对了但方法不对,或者方法对了但遗漏了关键步骤。通过规划模式,这些问题可以在动手之前就被发现和解决。

斜杠命令:你的快捷入口

除了自然语言对话,Claude Code还提供了一系列以/开头的斜杠命令,让你可以快速执行特定功能。

必知必会的命令

按下/键,你会看到所有可用的命令列表。这里有几个最常用的:

/help 显示所有命令和说明,是你遇到困惑时的第一选择。

/clear 清除当前对话,重新开始。当你想换一个话题,或者发现对话积累了太多无关内容时,用这个命令清空上下文,开始干净的对话。

/compact 压缩对话历史,保留关键信息但释放上下文空间。当你进行了一轮较长的对话,发现AI开始"忘记"之前说的事情时,用这个命令可以压缩历史,给新的对话腾出空间。

/cost 显示当前会话的API调用成本。如果你想控制开支,可以用这个命令查看消耗情况。

/model 切换模型。你可以在Sonnet(平衡)和Opus(更强但更贵)之间切换,根据任务复杂度选择合适的模型。

/config 打开配置界面,让你交互式地调整各种设置。

/mcp 管理MCP服务器,我们后面会专门讲这个功能。

自定义命令

除了内置命令,你还可以创建自己的斜杠命令。在项目的.claude/commands/目录下创建一个Markdown文件,文件名就是命令名,文件内容就是执行命令时Claude要遵循的指令。

比如创建.claude/commands/review.md

请对当前目录下的代码进行全面审查,关注以下方面:

1. 代码风格是否符合最佳实践
2. 是否有潜在的性能问题
3. 是否有安全问题
4. 测试覆盖率是否足够

输出格式:按文件列出发现的问题,标注严重程度(高/中/低),并给出改进建议。

之后你只需要输入/review,Claude就会按照这个模板执行代码审查。这对于那些你经常要做但每次描述都很啰嗦的任务特别有用。

CLAUDE.md:让AI懂你的项目

如果你用过Cursor的.cursor/rules/规则文件,会发现Claude Code有一个类似但更简单的设计:CLAUDE.md

这是一个放在项目根目录的Markdown文件,用来告诉Claude关于这个项目的各种背景信息。每次你开始一个新对话,Claude都会先读取这个文件,把它作为理解项目的"说明书"。

一个典型的CLAUDE.md可能长这样:

# 项目说明

这是一个基于Django的电商后端项目。

## 技术栈
- Python 3.11
- Django 5.0
- PostgreSQL 16
- Redis(缓存和队列)
- Celery(异步任务)

## 项目结构
- `apps/` - Django应用目录
- `config/` - 配置文件
- `utils/` - 通用工具函数
- `tests/` - 测试用例

## 代码规范
- 使用Black格式化代码
- 所有函数必须有类型注解和docstring
- API返回统一的JSON格式:`{"code": 0, "data": ..., "message": ...}`

## 注意事项
- 写API时先检查`apps/common/decorators.py`里是否有可用的装饰器
- 数据库迁移文件需要提交审核
- 测试用例放在`tests/`目录下,与源码目录结构对应

有了这份文件,当你让Claude"帮我写一个获取商品列表的API"时,它不需要问项目用什么框架、返回格式怎么定义——这些都已经写在CLAUDE.md里了。

CLAUDE.md的优点是简单直接,缺点是会占用对话的上下文空间。如果你的项目说明特别长,可以考虑把一部分内容放到斜杠命令或技能里,只在需要时才载入。

MCP:连接外部世界

如果说内置工具是Claude Code的"双手",那么**MCP(Model Context Protocol)**就是让它接触更广阔世界的方式。

MCP是什么

MCP是Anthropic提出的一个开放标准,定义了AI模型如何安全地连接外部工具和数据源。你可以把它理解成一种"插件协议"——通过MCP,Claude Code可以连接到各种外部服务,获得原本没有的能力。

比如:

  • 连接到GitHub,让Agent可以直接读取Issue、创建Pull Request
  • 连接到数据库,让Agent可以执行查询、理解数据结构
  • 连接到Jira,让Agent可以查看和更新任务状态
  • 连接到内部API,让Agent可以调用公司的各种服务

配置MCP服务器

配置MCP非常简单。输入/mcp打开MCP管理界面,选择"添加服务器"。

以添加GitHub服务器为例:

claude mcp add github -- npx -y @modelcontextprotocol/server-github

配置完成后,Agent就拥有了访问GitHub的能力。你可以直接用自然语言让它执行GitHub操作:

查看一下我的仓库里最近的Issue,把标签为bug且未分配的列出来

Claude会自动调用GitHub MCP服务器来完成任务。

MCP服务器从哪里来

MCP是一个开放协议,社区里有大量现成的服务器可供使用。你可以在MCP Market等网站上找到各种服务器,覆盖了从云服务到开发工具到企业系统的各种场景。

你也可以自己开发MCP服务器。如果你有一些内部的系统或服务想让Agent访问,开发一个MCP服务器是让他们"对话"的桥梁。

高级功能:针对进阶用户

当你熟悉了基本用法后,Claude Code还有一些高级功能值得了解。

SubAgent:分工协作

面对特别复杂的任务时,Claude Code可以启动**子代理(SubAgent)**来并行处理不同部分。

比如你让Agent"重构这个大型模块并更新所有相关测试",它可能会启动一个子代理专门负责测试部分。这些子代理在隔离的环境中工作,互不干扰,完成后把结果汇总给主代理。

你不需要手动管理子代理——Agent自己会判断何时需要分工协作。但理解这个概念,能帮你更好地预期Agent的行为。

Hooks:自动化钩子

**Hooks(钩子)**让你可以在特定事件发生时自动执行一些操作。

比如,你可以配置一个钩子:每次Agent创建新文件时就自动添加版权声明。或者配置一个钩子:每次Agent修改文件后就自动运行格式化工具。

Hooks的配置相对高级,适合那些有明确自动化需求的用户。如果你想深入配置,可以用/hooks命令进入配置界面。

Chrome集成

输入/chrome或启动时加--chrome参数,Claude Code可以连接到你本地的Chrome浏览器,获得查看和操作网页的能力。

这对于需要处理前端问题的场景特别有用。你可以让Agent"看看这个页面的布局问题",它会打开浏览器截图分析,然后告诉你问题在哪里、该怎么改。

Vim模式

如果你是Vim用户,输入/vim可以启用Vim风格的键位绑定,让你用熟悉的hjkl在对话历史中导航。

一个完整的工作流示例

讲了这么多功能,让我用一个完整的场景把它们串起来。

假设你接到一个任务:为项目添加"用户积分系统"功能。这个任务涉及数据库设计、API开发、测试编写,属于中等复杂度的需求。

第一步:进入规划模式

请进入规划模式。我需要为项目添加用户积分系统,功能包括:
- 用户通过购物、签到等行为获得积分
- 积分可以兑换优惠券
- 需要API来查询积分余额、积分明细、兑换优惠券

Claude会读取你的CLAUDE.md理解项目背景,探索现有代码结构,然后输出一份详细的实施计划。

第二步:审核和调整计划

你发现计划里遗漏了一个需求:"积分有过期时间,每年底的积分会被清零"。你把这个问题告诉Claude,它会更新计划。你确认计划可行,让Claude开始执行。

第三步:开始执行

Claude开始执行计划。你会看到它先创建数据库模型,然后创建API路由,接着编写测试。每一步修改文件时,它都会展示diff让你确认。你可以选择"全部接受"来加快流程,也可以逐个检查每处改动。

第四步:运行测试

代码写完后,Claude会询问是否运行测试。你确认,测试通过。如果测试失败,Claude会自动分析错误并修复。

第五步:提交代码

一切就绪,你让Claude创建一个分支并提交代码:

创建一个新分支,提交这些改动

Claude会执行git操作,创建一个清晰描述这次改动的commit。

整个过程中,你主要在做一件事情:在关键节点做出决策和确认。真正的执行工作,Claude都帮你做了。这就是Agent工具的价值——你不必亲自动手,但仍保持对过程的掌控。

快捷键与命令速查

命令描述
/help显示所有命令
/clear清除对话历史
/compact压缩上下文
/cost查看API成本
/model切换模型
/mcp管理MCP服务器
/vim启用Vim模式
/chrome启用Chrome集成
启动参数描述
claude正常启动
claude --continue继续上次对话
claude --model opus指定模型启动
claude --print "任务描述"非交互模式

小结

这一章,我们从零开始认识了Claude Code——一个让终端变成AI编程工作环境的工具。

我们首先讨论了终端工具的意义:与图形界面工具不同,终端工具以对话为核心,不受限于界面设计,让AI的能力可以自由发挥。它适合那些喜欢键盘操作、希望AI深度参与复杂任务的开发者。

我们学习了Agent和工具的概念:Agent不只是聊天机器人,它能"动手做事"。通过文件操作、Bash命令、网络请求等工具,Agent可以自主完成复杂任务,而你只需要在关键节点确认和指导。

我们掌握了Plan Mode:让Agent先思考再行动的规划模式。复杂任务先制定计划、等你确认后再执行,避免返工和偏离。

我们了解了斜杠命令:从/help/clear,从内置命令到自定义命令,这些快捷入口让你可以快速执行常用功能。

我们创建了CLAUDE.md:一份项目的"说明书",让Agent每次对话都了解项目背景、技术栈和代码规范,不需要你重复解释。

我们探索了MCP:通过这个开放协议,Agent可以连接GitHub、数据库、Jira等各种外部服务,能力不再局限于处理本地文件。

最后,我们通过一个完整的工作流示例,看到了这些功能是如何协同工作的。从规划到执行,从测试到提交,Agent承担了大部分执行工作,而你专注于决策和审核。

终端工具的学习曲线确实比图形界面更陡,但一旦熟悉,你会发现它提供了一种前所未有的编程体验:你只需要说,AI就会做。这种体验正在改变越来越多的开发者对编程的认知。

练习

入门题:安装Claude Code,创建一个测试项目,让Agent帮你创建一个简单的Python脚本:计算斐波那契数列的第n项,并生成测试用例。体验一下Agent自主工作的感觉。

对比题:用Claude Code和Cursor分别完成同一个任务(比如"为这个函数添加错误处理"),感受两种工具工作方式的差异。记录下来:哪个让你感觉更顺畅?为什么?

配置题:为你目前正在进行的一个项目创建CLAUDE.md文件。至少包含:项目简介、技术栈、代码规范、注意事项四部分。创建之后,让Agent执行一个任务,观察它是否遵循了你设定的规范。

进阶题:配置一个MCP服务器(推荐从GitHub开始),然后让Agent完成一个需要用到该服务器的任务。比如让它"查看仓库里最近的5个Issue,总结一下是什么类型的问题居多"。