Claude Code 保姆级入门使用教程
目录
认识 Claude Code
Claude Code 是 Anthropic公司 基于 Claude 模型打造的终端 AI 编程 Agent。它不是简单的聊天机器人,而是一个可以直接操作你代码仓库的 AI智能体,他不仅是一个帮你写代码的大神,还可以帮你描述需求、审查结果等。
具体他有哪些能力:
- 理解整个代码库(多文件、多语言、多层依赖)
- 自主规划任务,跨文件编写和修改代码
- 执行 Shell 命令、运行测试、验证结果
- 处理 Git 工作流(commit / PR / merge conflict)
- 通过 MCP 协议连接数据库、API 等外部工具
与cursor、Trae这种AI IDE 不同,Claude Code 是一种CLI Agent,一般在终端命令行使用。为什么说一般,因为通过插件还可以再其他ide中使用,比如vs code。
总的来说呢,与其他AI Coding工具比,Claude Code 更适合大任务自动化。很多高阶开发者会同时使用Claude Code和 Cursor:Claude Code 负责大块任务,Cursor 负责精细打磨。
安装
参考上一篇文章:Claude Code + cc Switch 配置国产大模型 入门使用指南
文章详细介绍了安装和配置步骤,这里就不在赘述了。
工作模式
一共有4种工作权限模式:
| 模式 (Mode) | 核心特点 | 适用场景 |
|---|---|---|
default |
风险操作(如写文件、执行Shell命令)都需要你批准。 | 日常开发,兼顾效率与安全。 |
plan |
只分析,不执行。会先生成一份执行计划,等你确认后再动手。 | 复杂任务的预演、代码审查和架构决策。 |
auto |
由一个 LLM 分类器自动判断操作是否安全。 | 需要 Team 或 Enterprise 计划。 |
acceptEdits |
自动批准文件编辑,但Shell命令仍需确认。 | 大规模重构,减少频繁点击“确认”的干扰。 |
怎么切换:通过按 Shift+Tab 快捷键快速切换。也可以在对话中输入 /plan,直接进入计划模式。CLI 启动参数也可退指定:claude --permission-mode plan。
状态栏隐藏了怎么办:按一次 Shift+Tab,状态栏会闪现。
怎么看是哪种?在最下方会显示工作模式,如下图:
可能的坑:
- 当你描述一个稍微复杂需的求,可能它会自己调用 EnterPlanMode 工具进入计划模式。这时看到一个权限弹窗问"是否允许?"你要是允许后就会创建 plan 文件、会话会被标记。如果你确实不需要plan模式,可以在弹窗出现时点拒绝,然后口头告诉 Claude “先给方案,不用进计划模式”。或后续用 Shift+Tab 随时退出。
使用场景和模式推荐:
| 你的状态 / 任务类型 | 推荐模式 | 一句话理由 |
|---|---|---|
| 第一次接触这个项目 | Plan | 先摸清家底,再动手。 |
| 新功能开发(架构未定) | Plan → Default | 先规划,再执行。 |
| 日常小改动 | Default | 安全第一。 |
| 批量替换/大规模重构 | AcceptEdits | 省去反复点“确认”的麻烦。 |
| 跑测试 + 自动修复 | Auto | 无人值守闭环。 |
| 想先审阅再动手 | Plan | 只读模式最安全。 |
| 发现 Claude 在 Plan Mode 里无限分析 | 切回 Default | 手动干预,让它停止分析开始干活。 |
一些使用建议:
- 对于一些复杂的工作需求,最好先用 Plan Mode 理清架构 → 然后确认方案 → 最后切换 Auto 执行。
- 不要每次都用 Auto Mode,它虽然快,但你也失去了对每一处改动的审查机会。敏感项目建议保持 Default。
- 如果 Claude 犯错,修正后记得更新 CLAUDE.md,让这次错误成为“最后一次”。后面学习 CLAUDE.md。
快速入门一个案例
- 创建项目
也就是创建一个工作目录,即一个文件夹,这里我先创建一个 \greedy-snake
- 启动claude
进到工作目录,claude命令启动:
- 需求文档
假如现在有一个想法,做一个贪吃蛇的小游戏,让他先给我们出需求文档和技术架构,再去真正写代码,当然这个项目比较小,只是一个例子。
可以看到,我们一开始需求只是一句话,他会和我们确定一些细节,才能最终开始写需求文档,如技术平台、功能复杂度等。我们按上下键选择,然后enter确认选择即可。
这里技术平台我就选第一个web实现。
然后功能复杂度我们就先选基础经典版:
这里如果想重新选技术平台,可以按左右键。
文档范围选择精简功能版:
全部选择完之后,点击提交:
注意,这里claude会自己使用后plan模式做规划再写文档,plan完成或让我们退出plan模式:
但是注意看这里有个坑:我们刚刚是在目录E:\AiProjects\greedy-snake下,他怎么把计划写到/Users/jiangli/Codes/claude-code-practice 去了?这里我也一开始也没搞明白,搜了下说新建的文件夹无法识别为git仓库,识别到的 Git 仓库根目录了。需要git init。但是我git init了也不行。
然后我问他当前目录是什么:
让再次让他帮我写需求文档就行了:
有个快捷键可以学一下,就是终端输出的内容很多倍折叠了,要展开来的话使用 ctrl + o。
- 技术设计文档
接下来让他帮我写技术设计文档:
- plan模式使用
接着不让他直接写代码,而是下你使用plan模式,写出具体的实施计划。
接下来可以使用shift + tab 切换到plan,或者命令行使用 /plan 开头,告诉他使用plan,或者直接告诉他使用plan。我们使用第二种方式。
小技巧:当你打出一部分命令时,下面会有提示,有时候记不住可以根据他们的提示:
接着我们的需求:
接着会让我们确认
可以选择第二项,后面不用每次都确认了。
这样plan就写完了,可以退出plan模式。
- 开始写代码
接着就开始按计划写代码了:
开始按计划帮我们写代码了:
- 项目启动
claude code还可以帮我们启动项目:
选择yes:
接着我们在浏览器打开http://localhost:8080:
启动完成!
- 需求更改
claude可以直接基于项目修改需求。比如让他把蛇的头部改为圆形:
修改完让你确认:
确认后就可以了。
常用命令行和快捷键
CLI 终端命令
| 命令 | 简写 | 说明 |
|---|---|---|
| claude | 默认启动(交互模式) | |
| claude --model opus / sonnet / haiku | 启动时指定模型 | |
| claude --permission-mode plan | 以 Plan Mode 启动 | |
| claude --worktree feature-xxx | 在隔离 Worktree 中启动 | |
| claude --continue | claude -c | 继续最近一次对话 |
| claude --resume | claude --r | 选择历史对话恢复 |
| claude --from-pr 123 | 从指定 PR 恢复会话 | |
| claude --dangerously-skip-permissions | 跳过所有权限检查(仅限 CI/CD) | |
claude -p "指令" |
一次性执行指令,执行后退出 | |
claude --version |
查看版本 | |
claude update |
升级到最新版本 |
斜杠命令(会话内使用)
| 命令 | 说明 |
|---|---|
| /clear | 清空对话历史(切换任务前必须执行) |
| /compact [说明] | 压缩对话:/compact 保留数据库 schema 和 API 变更 |
| /context | 可视化查看上下文窗口使用情况 |
| /cost | 查看当前会话 token 用量 |
| /export | 将当前对话导出为文件 |
| /rename [名称] | 给当前会话命名,方便后续恢复 |
| /rewind | 打开回退菜单(同 Esc+Esc) |
| /plan | 直接进入规划模式 |
| /model [名称] | 切换模型 |
| /config | 打开设置界面 |
| /btw | 主任务运行时并行提问,不打断当前流程 |
| /export | 把当前对话导出为 Markdown |
| /permissions | 管理工具权限白名单 |
| /doctor | 运行健康检查 |
| /init | 分析当前项目,生成 CLAUDE.md 模板 |
| /memory | 查看 Claude 自动保存的项目记忆 |
| /hooks | 查看已配置的自动化钩子 |
| /mcp | 管理 MCP 服务器连接 |
| /agents | 管理 Subagents |
| /install-github-app | 安装 GitHub Actions 集成 |
| /bug | 向 Anthropic 报告 bug |
| /vim | 开启 Vim 键位绑定模式 |
| /exit | 退出 Claude Code |
键盘快捷键
| 快捷键 | 功能 |
|---|---|
| Shift + Tab | 切换模式 |
| Ctrl + C | 中断当前操作 |
| Ctrl + G | 用系统编辑器编写多行提示词,保存后发送 |
| Ctrl + B | 将运行中的任务切到后台(释放前台交互) |
| Alt + T | 切换 Extended Thinking(扩展思维模式) |
| Esc | 中断当前操作 |
| Esc + Esc | 打开回退菜单 |
| ↑ / ↓ 方向键 | 浏览历史输入记录 |
| ! + 命令 | 直接执行 Shell 命令 |
| @ + 文件名 | 引用文件加入上下文 |
CLAUDE文件
CLAUDE文件是什么
Claude Code每次对话开始时都会自动读取CLAUDE.md文件。这个文件不是说明书,它更像一份契约,告诉AI怎么去干活的约定。构建命令、目录结构、monorepo 结构、编码约定和团队规范,都很适合放在这里。
所以CLAUDE.md是非常重要的文件!Claude Code每次启动新会话,第一件事就是读这个文件,项目结构、代码风格、测试命令、常见陷阱,Claude都从这里了解。
一般项目中使用时,CLAUDE.md应该从小开始,后面允许Claude做错事,但是要记录到CLAUDE.md。正确做饭是不要想着预先就写一本完整手册,而是每次Claude犯错,就加一条规则。
在做大型项目时,在代码审查时可以在同事的PR上@.claude,让它自动把某条规则加到CLAUDE.md里。团队共享一个CLAUDE.md文件,check进git,每周都有人贡献。这个文件是活的,不是写完就放那不管的。
其实有几个地方可以写CLAUDE.md,他们是分级的,他们的作用范围一般是不同的:
| 文件位置 | 作用范围 | 适合存放的内容 |
|---|---|---|
| 项目根目录/CLAUDE.md | 当前项目,提交到 git | 技术栈、编码规范、常用命令、架构说明(团队共享) |
| 项目根目录/.claude/CLAUDE.md | 当前项目(更整洁) | 同上,推荐结构 |
| 子目录 /src/module/CLAUDE.md | 仅在该目录下工作时加载 | 模块特有的约定 |
| ~/.claude/CLAUDE.md | 全局,所有项目 | 个人习惯、语言偏好、通用工作流 |
所以我们一般写的话也就两个就差不多了。
一个是项目根目录/.claude/CLAUDE.md,写针对当前项目的一些规范架构,团队共享,推到git。
一个是~/.claude/CLAUDE.md,写一些通用的个人习惯,不推到git。
子目录的根据需要写,可能一些大型项目才需要。
怎么创建
- 使用命令行工具 /init ,在会话中执行,Claude 自动分析项目生成模板。生成后手动补充你最重要的规范。
- 手动创建对应的文件,自己写文件内容。
怎么写
一个通用性的原则是:Claude自己能从代码里读出来的,不要写;Claude猜不到的,必须写。
核心原则:只写"模型不知道但需要知道"的事。
而且不是写的越多越好,一般最好控制在几十行,最长也不要超过200行。
具体写哪些内容可以参考:
| ✅ 该写 (应该放在 CLAUDE.md 中的内容) | ❌ 不该写 (不应该放在 CLAUDE.md 中的内容) |
|---|---|
| 项目特殊约定(如"PR 必须关联 Issue") | 通用规范(如"用 camelCase") |
| 当前模型会犯的错(如"不要用 deprecated API") | 模型已经会的事 |
| 团队特有的流程(如"部署前跑回归测试") | 行业通用最佳实践 |
| 项目特有的坑(如"这个接口返回格式不标准") | 编程语言基础知识 |
| Claude 猜不到的 Bash 命令,如自定义构建脚本 | Claude 读代码就能知道的事(如「这是一个 React 项目」) |
| 与默认不同的代码风格偏好 | 标准语言规范(Claude 已经知道) |
| 测试命令和偏好的测试框架 | 详细 API 文档(给链接,不要全文粘贴) |
| 项目架构决策和背景 | 频繁变化的信息(每次都要改的东西不适合放这里) |
| 开发环境的坑(如特殊的环境变量) | 文件逐一描述(Claude 会自己看文件树) |
| 常见陷阱和修复方式 | 「写整洁代码」「遵循最佳实践」这种废话 |
一份简单的CLAUDE.md应该包含以下:
# 项目概述
项目目标、愿景、核心业务逻辑的简要说明
# 技术栈和环境
使用的语言、框架、版本、依赖管理方式、运行环境等
# 代码规范和风格
命名规范、代码风格、文件组织结构、导入顺序等
# 开发约定和模式
常用设计模式、架构约定、目录结构约定等
# 构建、测试和运行
构建命令、测试命令、运行命令、代码检查命令等
# 项目特定的注意事项
重要的业务规则、边界条件、特殊约定、已知问题等
# 协作偏好
回答风格偏好、沟通方式偏好、输出格式偏好等
以项目级的CLAUDE.md为例,假如我有一个Java后端的项目,下面给一个示例:
# 项目名称 — Claude 工作指南
> 本文档用于指导 Claude Code 在本项目中的行为。所有规则在会话启动时自动加载。
# 1. 项目概述
**项目目标**:[一句话描述,如:一个面向中小企业的订单管理系统]
**核心业务逻辑**:
- 用户认证与权限管理(RBAC)
- 商品 SKU 管理与库存扣减
- 订单创建、支付、履约全流程
- 消息通知(短信/邮件/站内信)
**愿景**:支撑日均 [XX] 万订单,系统可用性 99.95%
# 2. 技术栈和环境
| 类别 | 技术选型 | 版本 | 备注 |
|------|----------|------|------|
| 语言 | Java | 17 | 必须使用 LTS 版本 |
| 框架 | Spring Boot | 3.x | 已升级到 Jakarta EE |
| ORM | MyBatis Plus | 3.5.x | 使用 Lambda 式查询 |
| 数据库 | MySQL | 8.0 | 事务隔离级别 READ-COMMITTED |
| 缓存 | Redis | 7.x | 使用 Lettuce 客户端 |
| 消息队列 | RocketMQ | 5.x | 事务消息保证最终一致性 |
| 依赖管理 | Maven | 3.9+ | — |
| 运行环境 | JVM | 17 | 生产环境内存 4GB+ |
## 模块划分
order-service/
├── order-api/ # API 定义(DTO、Feign 接口)
├── order-common/ # 公共工具类、常量
├── order-service/ # 核心业务服务(启动入口)
└── order-task/ # 定时任务(独立部署)
# 3. 代码规范和风格
## 命名规范
| 类型 | 规范 | 示例 |
|------|------|------|
| 包名 | 全小写 | `com.example.order.service` |
| 类名 | PascalCase | `UserService`、`CreateOrderRequest` |
| 接口 | 无前缀 `I` | `PaymentProcessor`(而非 `IPaymentProcessor`) |
| 实现类 | 后缀 Impl | `PaymentProcessorImpl` |
| 方法/变量 | camelCase | `getUserById` |
| 常量 | UPPER_SNAKE_CASE | `MAX_RETRY_COUNT` |
| 枚举 | 全大写 | `OrderStatus.PENDING` |
| 数据库表名 | snake_case | `order_detail` |
| API 路径 | kebab-case | `/api/order-details` |
| JSON 字段 | camelCase | `userId` |
## 代码风格
- **缩进**:4 空格(禁止使用 Tab)
- **行宽**:120 字符(超行换行,运算符放行首)
- **注解风格**:方法注解与签名同行(`@Override` 单独一行)
# 4. 开发约定和模式
## 架构约定
| 层级 | 职责 | 禁止事项 |
|------|------|----------|
| **Controller** | 参数校验、调用 Service、返回 Result | 禁止编写业务逻辑、禁止直接操作数据库 |
| **Service** | 核心业务逻辑、事务管理 | 禁止直接操作 Mapper(通过 Service 调用) |
| **Mapper** | 数据访问、SQL 执行 | 禁止编写业务逻辑 |
## 统一响应格式
```java
public class Result<T> {
private Integer code; // 0 成功,其他失败
private String message;
private T data;
}
# 5. 构建、测试和运行
- 构建:mvn clean compile
- 打包:mvn clean package -DskipTests=true
- 单测:mvn test
# 6.禁止事项
- IMPORTANT: 不要修改 prisma/migrations/ 下的文件
- IMPORTANT: 所有数据库改动通过 Flyway Migration 文件
定期清空重写
Claude Code 之父建议每隔一段时间(比如一个月),把 CLAUDE.md 清空重写。
为什么要清空?
• 模型更新了,旧规则可能不再需要
• 项目演进了,旧约束可能已经过时
• 你对项目的理解加深了,旧配置可能有偏差
怎么清空?
• 把当前 CLAUDE.md 备份
• 从零开始,只写当前最痛的 3-5 个问题
• 用一周时间观察效果
• 根据实际表现逐步调整
清空检查清单:
• 这条规则,当前模型是否已经默认遵守?是 → 删
• 这条规则,最近一个月有没有触发过?没有 → 删
• 这条规则,是否和项目当前状态一致?不确定 → 删
• 这条规则,是否只是个人偏好?是 → 删
小结:ok,本章只是一个入门级的教程,想要用好Claude Code,还有很多要学。比如如何写好一个CLAUDE.md文件,如何使用skill,什么是Hooks、Subagents,怎么使用MCP,一个企业级大型项目如何维护.claude/ 文件下的目录等。敬请期待!
关注wx,同步更新!
更多推荐




所有评论(0)