Claude Code 实战指南

Claude Code 是 Anthropic 推出的终端 AI 编程 Agent——直接在你的命令行里工作,能读整个仓库、改代码、跑命令、写测试、自主迭代。和 Codex 同属"AI 编程 Agent"热潮,是 2025 年以来技术圈最火的编程工具话题之一。本文从 Claude Code 特性讲起,覆盖安装登录、交互/非交互用法、权限与工具、claude.md 项目记忆、MCP 扩展、实战任务、与其它 Agent 对比、常见坑,全程带可运行命令。


一、Claude Code 是什么

1.1 核心定位

- 终端里的 AI 编程 Agent(不是 IDE 插件)
- 原生跑在 terminal,融入你的 git 工作流
- 能:读仓库、写代码、跑命令、改测试、自主修复
- 上下文感知:记住项目结构、你之前的偏好

场景:
- "这个测试为什么挂" → 它自己查、自己修
- "给接口加个功能" → 改代码 + 测试 + 跑通
- 代码审查、重构、迁移

1.2 与对话式 AI 的区别

聊天(Claude.ai):只能给建议,不能执行
Claude Code:真的动你的代码库、跑你的命令

二、安装与登录

2.1 安装

# 方式一:npm(推荐)
npm install -g @anthropic-ai/claude-code

# 方式二:官方脚本
curl -fsSL https://claude.ai/install.sh | bash

# 验证
claude --version

# Windows:用 WSL 或原生(支持 PowerShell)

2.2 登录

# 交互登录(浏览器授权 Claude 账号)
claude

# 用 API Key(生产/脚本)
export ANTHROPIC_API_KEY=sk-ant-xxxx

# 或订阅(Pro/Max 会员直接用)
注意:
- 免费额度有限,重活建议订阅
- 登录态存在本机配置目录

三、基本用法

3.1 启动交互

# 在项目根目录启动
cd /path/to/project
claude

# 然后直接输入任务:
# "检查当前 git 状态,看看有没有未提交的改动,帮我写个 commit message"
# "运行测试,修复失败的"

3.2 交互内常用命令

/help         帮助
/status       当前会话状态/用了多少上下文
/compact      压缩上下文(长会话)
/clear        清空会话
/model        切换模型
/init         生成 claude.md(项目记忆)
/install-mcp  添加 MCP 工具
/prompt       用提示词模板
/quit         退出

3.3 非交互(脚本/CI)

# 一次性任务
claude -p "给 UserService 增加删除用户方法并写测试"

# 带权限:允许读写和跑命令
claude -p "运行 mvn test,修复失败" --permission-mode acceptEdits

# 输出 markdown 结果
claude -p "审查 OrderController 的安全问题" --output-format json

四、权限与安全模型

4.1 权限模式

--permission-mode acceptEdits      允许改文件
--permission-mode acceptEdits deny  只改文件不跑命令
--permission-mode bypassPermissions 全放行(慎用)
--permission-mode plan             只规划不动手

默认:交互式逐个询问(命令/写文件都要 y/n)

4.2 权限规则

可以用 .claude/settings.json 配置:
- 放行某些命令(如 npm test)
- 永远拒绝某些命令(rm -rf)
- 允许写特定目录
// .claude/settings.json
{
  "permissions": {
    "allow": [
      "npm test",
      "npm run build",
      "git status",
      "git diff"
    ],
    "deny": [
      "rm -rf *",
      "git push --force"
    ]
  }
}

五、claude.md 项目记忆(核心)

5.1 是什么

claude.md = 项目级的"给 AI 看的 README"
告诉 Claude Code:项目怎么跑、什么规范、别踩什么坑

它会在每次会话自动加载 → 让 AI 更懂你的项目

5.2 内容建议

# claude.md

## 项目简介
订单微服务,Spring Boot 3 + MyBatis + MySQL

## 常用命令
- 构建:mvn clean package -DskipTests
- 测试:mvn test
- 启动:mvn spring-boot:run

## 架构约定
- 分层:controller/service/mapper,禁止跨层调用
- 统一返回 Result<T>,业务异常用 BizException
- 日志用 SLF4J + traceId

## 注意事项
- 不要改数据库表结构
- 金额用 BigDecimal,不要用 double
- 新接口必须加单元测试

## 目录说明
- src/main/java:业务代码
- src/main/resources:配置
- docs:设计文档

5.3 生成

# 让 Claude Code 自己生成
claude
/init
# 它会读项目,生成 claude.md
效果:
- 不用每次重复交代项目背景
- 代码风格/约束更一致
- 出错率显著下降

六、MCP 扩展

6.1 什么是 MCP

MCP = Model Context Protocol
让 Claude Code 能调用外部工具/数据源:
- 数据库查询
- 文件系统
- 浏览器
- 内部 API

例:加一个"查询订单"的 MCP,Claude 就能直接查库帮你分析

6.2 添加 MCP

claude
/install-mcp

# 或配置文件 .mcp.json
{
  "mcpServers": {
    "my-db": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": { "POSTGRES_CONNECTION": "postgres://..." }
    }
  }
}
场景:
- 接入 PostgreSQL → AI 直接查表做数据分析
- 接入浏览器 → AI 打开页面截图验证
- 接入内部 API → AI 调接口排查

七、实战任务

7.1 修测试

claude -p "运行 mvn test,修复所有失败用例,
保持原有逻辑不变,确保全绿" --permission-mode acceptEdits

7.2 加特性

claude -p "给 OrderController 增加取消订单接口:
- 只允许本人取消
- 已支付/已发货不可取消,抛 BizException
- 加 3 个单元测试(成功、非本人、已支付)
跑 mvn test 确认通过"

7.3 迁移/重构

claude -p "把 UserService 拆成 UserQueryService(查询)和
UserCommandService(写操作),保持行为不变,
重构后跑全部测试"

7.4 代码审查

claude -p "审查 src/main 代码:
找出空指针风险、SQL 注入、越权、性能问题,
按严重程度输出报告并给出修复建议" \
  --permission-mode plan

八、与其它 Agent 对比

工具定位优势适用
Claude Code终端 Agent上下文强、MCP 生态、代码质量好本地深度开发
OpenAI Codex云端 Agent沙箱隔离、CI 集成好自动化/CI 修复
CursorIDE Agent界面友好、补全+Agent 混合日常手写为主
CopilotIDE 补全轻量、实时补全边写边补
选型建议:
- 深度重构/复杂 bug → Claude Code
- CI 自动化修复 → Codex 无头
- 日常编码辅助 → Cursor/Copilot

九、常见坑速查

现象原因解决
改错文件没先读项目claude.md + 明确范围
命令卡在确认权限太严acceptEdits / allowlist
忘了项目约束没记忆文件/init 生成 claude.md
上下文爆了会话太长/compact
乱删文件权限太宽deny 危险命令
跑偏主题任务描述模糊目标+范围+验收
MCP 不生效配置没加载检查 .mcp.json
测试没验证没让它跑描述里写"跑测试确认"

九、CLI 命令速查与效率技巧

9.1 常用命令速查

claude                      # 启动交互
claude -p "任务"            # 一次性任务
claude -p "任务" --output-format json   # 结构化输出
claude -p "任务" --permission-mode acceptEdits   # 允许改文件
claude --resume             # 恢复上次会话
claude --continue           # 继续上次会话
claude --model sonnet       # 切换模型
claude --print              # 只打印结果不交互
claude /init                # 生成 claude.md

9.2 会话管理技巧

- 长会话用 /compact 压缩上下文(防遗忘/超预算)
- 每完成一个任务 /clear,避免串味
- 关联 git:让它在分支上工作,便于回滚
- 复杂任务分步问:先"读代码总结",再"动手改"

9.3 与 IDE 联动的姿势

1. VS Code + Claude Code 终端并排
2. 写代码在 IDE,让 Claude Code 跑测试/查问题
3. 让 Claude Code 改完,IDE 里 git diff 审查
4. 不要同时开多个 Agent 改同一文件(冲突)

常见场景:
- Claude Code 生成 → 你 review → 手写补关键逻辑
- 让 Claude 先写测试 → 你实现 → Claude 再跑

十、自动化脚本与效率工具

10.1 批量跑任务脚本

#!/bin/bash
# 让 Claude Code 处理多个独立任务(分分支跑)
tasks=(
  "给 UserService 补单元测试"
  "审查 OrderController 安全问题"
  "重构 ConfigService 拆分配置"
)
for t in "${tasks[@]}"; do
  git checkout -b "ai-task-$RANDOM"
  claude -p "$t" --permission-mode acceptEdits \
    --output-format json >> claude-output.log
  git add . && git commit -m "AI: $t"
  git checkout main
done

10.2 输出解析(JSON)

# 结构化输出便于脚本处理
claude -p "统计 src 下 TODO 数量,返回 JSON" --output-format json
# {"todo_count": 12, "files": [...]}

10.3 效率建议

- 把重复任务存成提示词文件(/prompt)
- 长任务先让它出计划(plan 模式)再执行
- 团队共享 claude.md 模板(统一约束)
- 关键路径自己写,AI 做外围(测试/文档/样板)
- 每周复盘:哪些任务 AI 提效、哪些反而慢

本章小结

Claude Code 的实战主线:安装登录 → 交互(/help /init /compact)→ 权限模型(acceptEdits/bypass)→ claude.md 项目记忆 → MCP 扩展 → 实战四类任务 → 对比选型。核心心法:先 /init 让 AI 懂项目(claude.md 是灵魂)→ 权限默认收着(deny 危险命令、allow 常规命令)→ 任务描述写清验收标准 → 完成后 git diff review。Claude Code 强在"懂你的项目 + 能跑命令自主迭代",配合 MCP 能打通数据库/浏览器,是从"改代码"升级到"真正参与开发"的 Agent 工具。

第三篇讲 AI 编程助手选型与工作流。

(全文完)

Logo

更多推荐