一份面向中文开发者的 Claude Code 完全教程,从零基础到高级用法。
Claude Code 是 Anthropic 推出的 AI 编程智能体。它能读懂你的代码库、编辑文件、运行命令、操作 Git,并与你的开发工具深度集成。
它的核心工作方式是一个 智能体循环:Claude 不断收集上下文、执行操作、验证结果,循环往复直到任务完成。你随时可以打断并调整方向。
| 平台 | 安装方式 | 特点 |
|---|---|---|
| 终端 CLI | curl -fsSL https://claude.ai/install.sh | bash |
主力界面,支持 macOS/Linux/WSL |
| 桌面应用 | 从 claude.ai 下载 | 可视化 Diff、并行会话、定时任务 |
| VS Code 扩展 | 扩展商店搜索 "Claude Code" | 内联 Diff、@引用、计划审查 |
| JetBrains 插件 | JetBrains Marketplace 搜索 | 支持 IDEA、PyCharm、WebStorm 等 |
| Web 版 | 访问 claude.ai/code | 无需本地安装,云端运行 |
- macOS 13.0+ / Windows 10 1809+ / Ubuntu 20.04+
- 4 GB+ 内存
- 需要网络连接
- 支持 Bash、Zsh、PowerShell
需要 Claude Pro、Max、Team、Enterprise 或 Console 账号。也支持 Amazon Bedrock、Google Vertex AI 等第三方提供商。
macOS / Linux / WSL:
curl -fsSL https://claude.ai/install.sh | bashWindows PowerShell:
irm https://claude.ai/install.ps1 | iex# Homebrew (macOS)
brew install --cask claude-code
# WinGet (Windows)
winget install Anthropic.ClaudeCode
# npm
npm install -g @anthropic-ai/claude-codecd your-project
claude首次运行会引导你登录,按提示在浏览器中完成授权即可。
claude doctor这个命令会检查安装状态、认证、网络连接等,有问题会给出修复建议。
# 交互模式(最常用)
claude
# 带初始任务启动
claude "帮我看看这个项目的结构"
# 非交互模式:执行完就退出
claude -p "这个项目用了什么技术栈?"
# 继续上次对话
claude -c
# 选择历史对话恢复
claude -r| 命令 | 作用 |
|---|---|
claude |
启动交互模式 |
claude "任务" |
带任务启动 |
claude -p "查询" |
非交互模式,执行后退出 |
claude -c |
继续最近一次对话 |
claude -r |
恢复历史对话 |
claude --worktree feature-x |
在隔离的 git worktree 中启动 |
claude --model opus |
指定模型 |
claude doctor |
诊断安装问题 |
在会话中输入 / 可以看到所有可用命令:
| 命令 | 作用 |
|---|---|
/help |
显示帮助 |
/clear |
清空对话历史 |
/compact |
压缩对话,释放上下文空间 |
/model |
切换模型(Sonnet / Opus / Haiku) |
/plan |
进入计划模式 |
/memory |
查看和编辑记忆文件 |
/permissions |
管理权限规则 |
/mcp |
管理 MCP 服务器连接 |
/config |
打开设置面板 |
/init |
自动生成 CLAUDE.md |
/usage |
查看 token 用量和费用 |
/doctor |
诊断问题 |
| 技能 | 作用 |
|---|---|
/simplify |
审查代码质量,优化重复和低效代码 |
/review |
审查 Pull Request |
/security-review |
安全审查 |
/batch |
将大规模变更分解为并行任务 |
/loop |
定时循环执行任务 |
了解代码库:
这个项目是做什么的?
主入口文件在哪里?
解释一下目录结构
修改代码:
给用户注册表单添加输入验证
修复用户提交空表单的 bug
把认证模块重构为 async/await
Git 操作:
提交我的更改,写一个描述性的 commit message
创建一个新分支 feature/quickstart
帮我解决合并冲突
- 按 Esc:立即停止 Claude,当前工具调用被取消
- 直接输入修正内容按 Enter:不打断当前操作,Claude 会在本轮完成后读取你的新指令
CLAUDE.md 是 Claude 的 持久化指令文件,每次会话启动时自动加载。相当于给 AI 写的"项目说明书"。
文件位置与作用域(从宽到窄):
| 作用域 | 位置 | 共享范围 |
|---|---|---|
| 全局策略 | /etc/claude-code/CLAUDE.md |
所有用户(IT 部署) |
| 用户级 | ~/.claude/CLAUDE.md |
你自己的所有项目 |
| 项目级 | ./CLAUDE.md |
团队共享(提交到 Git) |
| 本地级 | ./CLAUDE.local.md |
仅自己,仅当前项目 |
最佳实践:
- 控制在 200 行以内
- 使用 Markdown 标题和列表
- 写具体、可验证的指令("使用 2 缩进" 而非 "格式化代码")
- 用
@path/to/file引入其他文件
快速生成:
/init
Claude 会自动分析你的代码库,生成一份初始 CLAUDE.md。
对大型项目,可以在 .claude/rules/ 中按路径组织规则:
---
paths:
- "src/api/**/*.ts"
---
# API 开发规则
- 所有 API 端点必须包含输入验证
- 使用标准错误响应格式设置按优先级从高到低:
- 全局策略 — IT 部署,不可覆盖
- 命令行参数 — 临时覆盖
- 本地 —
.claude/settings.local.json(不提交) - 项目 —
.claude/settings.json(提交到 Git) - 用户 —
~/.claude/settings.json(所有项目)
settings.json 示例:
{
"permissions": {
"allow": [
"Bash(npm run test *)",
"Bash(git diff *)"
],
"deny": [
"Read(./.env)"
]
},
"env": {
"DATABASE_URL": "postgres://localhost/mydb"
},
"model": "claude-sonnet-4-6"
}常用配置项:
permissions— 控制工具访问权限env— 环境变量model— 默认模型hooks— 生命周期钩子autoMemoryEnabled— 自动记忆开关editorMode— 编辑器模式(normal / vim)
按 Shift+Tab 在会话中切换:
| 模式 | 说明 |
|---|---|
default |
仅允许读取 |
acceptEdits |
允许读取和文件编辑 |
plan |
只读,Claude 先出计划再操作 |
auto |
全部允许(有后台安全检查) |
bypassPermissions |
全部允许(仅限容器/VM) |
MCP 是一个开放标准,让 Claude Code 连接外部数据源。通过 MCP,Claude 可以:
- 读取 Google Drive 中的设计文档
- 更新 Jira 工单
- 查询数据库
- 发送 Slack 消息
添加 MCP 服务器:
# 远程 HTTP 服务器
claude mcp add --transport http sentry https://sentry.example.com
# 本地 stdio 服务器
claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres postgres://localhost/mydb在会话中用 /mcp 管理连接。
两套互补的机制:
1. CLAUDE.md(你写的)
- 项目说明、编码规范、架构决策
- 每次会话自动加载
2. 自动记忆(Claude 自己写的)
- 构建命令、调试经验、架构模式
- 存储在
~/.claude/projects/<项目>/memory/ - 跨会话积累知识
隔离并行的 Claude 会话,互不干扰:
# 终端 1:开发新功能
claude --worktree feature-auth
# 终端 2:修 bug
claude --worktree bugfix-123每个 worktree 从默认分支创建,有独立的工作目录。
让 Claude 先研究、再提方案,不直接改代码:
Shift+Tab 两次 或 /plan 或 --permission-mode plan
计划完成后可以:
- 批准并自动执行
- 批准并逐个审查编辑
- 继续讨论调整方案
扩展 Claude 的能力。创建 SKILL.md 文件即可:
位置:
- 个人:
~/.claude/skills/<skill-name>/SKILL.md - 项目:
.claude/skills/<skill-name>/SKILL.md
示例:代码变更摘要技能
---
description: 总结未提交的变更并标记风险点。
---
## 当前变更
!`git diff HEAD`
## 指令
用两三个要点总结上面的变更,然后列出任何风险。子代理拥有独立的上下文窗口,不会占用主对话的空间。适合长时间的调研任务。
在 .claude/agents/ 中定义自定义子代理。
用 Python 或 TypeScript 编程调用 Claude Code 的能力:
# TypeScript
npm install @anthropic-ai/claude-agent-sdk
# Python
pip install claude-agent-sdkTypeScript 示例:
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({
prompt: "找到并修复 auth.ts 中的 bug",
options: { allowedTools: ["Read", "Edit", "Bash"] }
})) {
if ("result" in message) console.log(message.result);
}Python 示例:
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions
async def main():
async for message in query(
prompt="找到并修复 auth.py 中的 bug",
options=ClaudeAgentOptions(allowed_tools=["Read", "Edit", "Bash"]),
):
if hasattr(message, "result"):
print(message.result)
asyncio.run(main())# 基本查询
claude -p "认证模块做了什么?"
# 管道数据
cat build-error.txt | claude -p '解释根本原因' > output.txt
# JSON 输出
claude -p "总结这个项目" --output-format json
# 带 JSON Schema
claude -p "提取函数名" --output-format json \
--json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}}}'
# 自动批准工具
claude -p "运行测试并修复失败" --allowedTools "Bash,Read,Edit"
# 精简模式(跳过钩子、技能、MCP、CLAUDE.md)
claude --bare -p "总结这个文件" --allowedTools "Read"在特定生命周期点执行自定义命令。提供确定性控制,不依赖 LLM。
事件类型: SessionStart、PreToolUse、PostToolUse、Stop、Notification 等
示例:编辑文件后自动格式化
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\""
}
]
}
]
}
}示例:Claude 等待输入时发送通知
{
"hooks": {
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "notify-send 'Claude Code' '等待你的输入'"
}
]
}
]
}
}通过 ~/.claude/keybindings.json 自定义。会话中输入 /keybindings 打开。
默认快捷键:
| 快捷键 | 作用 |
|---|---|
| Enter | 发送消息 |
| Ctrl+J | 插入换行 |
| Esc | 取消当前输入 |
| Ctrl+C | 中断 |
| Ctrl+D | 退出 |
| Shift+Tab | 切换权限模式 |
| Ctrl+T | 切换任务列表 |
| Ctrl+R | 搜索命令历史 |
| Ctrl+L | 重绘屏幕 |
| Ctrl+G | 打开外部编辑器 |
| Meta+P | 选择模型 |
| Meta+O | 切换快速模式 |
| Meta+T | 切换扩展思考 |
/batch 技能将大规模变更分解为独立单元,每个在自己的 worktree 中运行,各自开 PR。
/loop:在 CLI 会话中循环执行(如/loop 5m /review)- 桌面定时任务:在本机运行
- Routines(Web/桌面):在 Anthropic 基础设施上运行
- 具体明确:"修复用户输入错误密码后看到空白页面的 bug" 远好于 "修复 bug"
- 给验证标准:提供测试用例、截图或预期输出
- 先探索、再计划、后编码:复杂问题用计划模式
- 委托而非命令:给上下文和方向,信任 Claude 处理细节
/context查看上下文占用/compact压缩对话(可指定焦点:/compact 聚焦 API 变更)- 用技能代替 CLAUDE.md 中的多步流程
- 长调研任务交给子代理
- CLAUDE.md 控制在 200 行内
# 了解新代码库
这个项目做什么?用了什么技术栈?
# 写测试
给 calculator 函数写单元测试
# 提交代码
提交我的更改,写一个描述性的 commit message
# 代码审查
审查我的更改并提出改进建议
# 管道集成
gh pr diff "$1" | claude -p --append-system-prompt "审查安全漏洞"- 不要在 CLAUDE.md 中放多步流程,用技能替代
- 不要依赖对话历史保存持久规则,写进 CLAUDE.md
- 不要在非隔离环境使用
bypassPermissions - 出问题先跑
/doctor - CI 脚本用
--bare模式避免本地配置干扰
Claude Code 是智能体,不是简单的代码补全。它能自主读代码、改文件、跑命令、操作 Git,完成复杂的多步任务。你只需要描述目标,它会自己规划和执行。
所有语言都支持。Claude Code 通过读取代码来理解,不依赖特定语言的解析器。
- 用
/usage查看当前用量 /compact压缩上下文减少 token- 简单任务用 Haiku,复杂任务用 Opus
- 用
-p非交互模式避免意外的长时间对话
- 代码在本地处理,不会上传到 Anthropic 训练模型
- 企业版支持数据驻留和合规控制
- 用权限模式控制 Claude 能做什么
- 项目级 CLAUDE.md 提交到 Git,团队共享
.claude/settings.json提交到 Git,统一权限- 每人可以用
CLAUDE.local.md覆盖个人偏好
本教程基于 Claude Code 2025 年最新版本编写。如有更新,请参考官方文档。