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可能会:
- 用文件读取工具,打开现有的路由文件和模型文件
- 用搜索工具,查找项目中已有的认证相关代码
- 用编辑工具,创建或修改相关文件
- 用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会:
- 理解需求:分析你描述的任务目标
- 探索代码:读取相关文件,理解现有结构
- 制定计划:列出需要创建或修改的文件,说明每一步的目的
- 等待确认:你审核计划,可以提出修改意见
- 执行计划:确认后才开始实际修改代码
你可以在输入时显式要求进入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,总结一下是什么类型的问题居多"。