AI 与工具·

Claude Code 进阶使用指南

本篇目录34 节
本文档基于 Claude Code 官方文档(code.claude.com/docs)核实整理,整理日期 2026-07-29。每节末尾附来源链接,可点击查看最新版本。

1. CLI 命令与常用 Flags

1.1 启动方式

方式
命令
说明
交互模式
claude
启动交互式会话
交互 + 初始提示
claude "query"
启动会话并附加初始提示
无头模式
claude -p "query"
执行后退出,返回结果
管道输入
cat file.txt | claude -p "query"
从 stdin 读取,处理后退出
继续最近会话
claude -c / claude --continue
继续最近对话
恢复指定会话
claude -r "session-id" / claude --resume
恢复指定会话或显示选择器

1.2 核心 Flags

会话管理
Flag
短形式
说明
--continue
-c
加载最近对话
--resume
-r
按 ID 或名称恢复会话
--name
-n
设置会话显示名称
--session-id
—
使用特定 UUID 会话
--fork-session
—
恢复时创建新会话 ID,不覆盖原会话
输入 / 输出
Flag
说明
--print / -p
非交互模式,打印结果后退出
--output-format
text / json / stream-json
--input-format
text / stream-json
--json-schema
用 JSON Schema 约束结构化输出
--verbose
详细日志
模型与推理深度
Flag
说明
有效值
--model
指定模型
完整模型名或别名 opus / sonnet / haiku
--effort
推理努力级别
low / medium / high / xhigh / max
--fallback-model
主模型不可用时的备用模型
逗号分隔模型名
权限与安全
Flag
说明
--permission-mode
default / acceptEdits / plan / auto / dontAsk / bypassPermissions
--dangerously-skip-permissions
跳过所有权限提示,等同 bypassPermissions,仅在完全信任输入时使用
--allowedTools
无需提示即可执行的工具,支持前缀匹配,如 "Bash(git diff *),Read"
--disallowedTools
禁用指定工具
--tools
限制可用的内置工具集
流控制与自动化
Flag
说明
--max-turns
限制 agent 轮次(无头模式常用)
--max-budget-usd
最大支出限制,超过即停止
--bare
跳过 hooks / skills / MCP / CLAUDE.md 等自动发现,用于 CI 可重现执行
--mcp-config
指定 MCP 配置文件或 JSON
--strict-mcp-config
只用指定的 MCP 配置,忽略自动发现
工作树与并行
Flag
说明
--worktree / -w
创建或进入隔离 git worktree
--tmux
为工作树创建 tmux 会话
--background / --bg
启动后台会话

1.3 实用组合示例

# 无头 + 限定工具 + 限制轮次:一次性修复任务 claude -p "Find and fix type errors in src/" \ --allowedTools "Bash,Read,Edit" \ --max-turns 5 # 无头 + JSON 输出 + 成本追踪 claude -p "Analyze this codebase" \ --output-format json | jq '.total_cost_usd' # 工作树隔离 + 计划模式:大改动前先出方案 claude --worktree feature-x --permission-mode plan # 管道处理日志 cat error.log | claude -p "解释这个报错的根因"

2. 交互模式进阶

2.1 常用内置斜杠命令

命令
说明
/init
生成或改进项目 CLAUDE.md
/clear
清空上下文开始新对话(保留项目记忆)
/compact [说明]
总结压缩上下文,可附压缩侧重点
/context
可视化当前上下文占用
/memory
编辑 CLAUDE.md 与自动记忆
/model [name]
切换模型
/effort [level]
设置推理努力级别
/plan
切换到计划模式
/rewind
回滚代码与对话到检查点
/resume
会话选择器
/fork
复制当前对话到新后台会话
/diff
交互式差异查看器
/code-review [--fix]
审查当前差异,可自动应用修复
/security-review
检查差异中的安全问题
/usage / /cost
查看 token 使用与成本
/permissions
管理批准规则
/mcp
MCP 服务器管理
/hooks
查看 hook 配置
/doctor
环境诊断
/export [文件名]
导出对话为纯文本
/add-dir <path>
添加额外工作目录
/config
打开设置界面

2.2 键盘与输入技巧

操作
说明
!<command>
直接在会话内执行 bash 命令,输出进入上下文
#<note>
添加记忆备注(写入自动记忆)
@<filepath>
引用文件,缩小问题空间
Esc
中断当前生成
Shift+Tab
循环切换权限模式
Ctrl+R
搜索命令历史
Ctrl+G
用外部编辑器编辑当前输入
Ctrl+V
粘贴图像
Ctrl+T
切换待办列表显示
Ctrl+O
切换详细转录
Tab
补全命令、文件路径
Vim 模式:/config 中 Editor mode 设为 vim;用 vimInsertModeRemaps 可配置如 jj 映射 Escape。

3. 记忆体系(CLAUDE.md)

3.1 层级与加载顺序(优先级从低到高)

优先级
作用域
位置
1
用户全局
~/.claude/CLAUDE.md
2
项目
./CLAUDE.md(随 git 提交,团队共享)
3
项目本地
./CLAUDE.local.md(gitignored,个人私有)
4
嵌套目录
<subdir>/CLAUDE.md(读到该目录文件时按需加载)
5
项目规则
./.claude/rules/*.md(支持路径作用域)
6
用户规则
~/.claude/rules/*.md
7
托管策略
IT 管理下发,不可排除

3.2 Import 语法

@README.md # 相对路径 @~/.claude/shared-rules.md # 主目录展开
  • 最大递归 4 层;代码块和反引号内的 @ 视为字面量
  • 项目目录之外的导入首次加载需确认

3.3 自动记忆

  • 存储位置:~/.claude/projects/<project>/memory/,MEMORY.md 为索引
  • 每次会话只加载索引前 200 行或 25 KB(先到为准),主题文件按需读取
  • 用 /memory 管理,或设置 autoMemoryEnabled: false 关闭

4. Skills(自定义斜杠命令)

  • 自定义命令已合并进 Skills;.claude/commands/ 仍向后兼容,但推荐用 Skills
  • 位置:.claude/skills/<name>/SKILL.md(项目级)或 ~/.claude/skills/(用户级),可带支持脚本和子目录
--- name: deploy description: 何时触发的说明,Claude 据此自动调用 model: haiku # 可选,专用模型 tools: ["Read", "Bash"] # 可选,限制工具 invocation: user # auto 自动触发 / user 仅手动 / never 禁用 --- 技能正文:具体指令与流程...

5. Subagents(子代理)

  • 位置:.claude/agents/<name>.md 或 ~/.claude/agents/
  • Claude 遇到匹配 description 的任务时自动派发;子代理有独立上下文、工具集与权限,完成后只把摘要带回主会话
  • 典型场景:探索性搜索(隔离上下文污染)、代码审查、并行实现
--- name: code-reviewer description: 审查代码改动时使用 model: sonnet tools: ["Read", "Bash"] isolation: worktree # 可选,独立工作树防止文件冲突 --- 代理系统提示...

6. Hooks(钩子)

6.1 常用事件

事件
触发时机
exit 2 行为
PreToolUse
工具执行前
阻止该工具调用
PostToolUse
工具成功后
不阻止,stderr 反馈给 Claude
UserPromptSubmit
用户提交提示前
阻止该提示处理
Stop
Claude 准备结束响应时
阻止停止,强制继续
SessionStart / SessionEnd
会话开始 / 结束
不可阻止
SubagentStop
子代理完成
可阻止
PreCompact / PostCompact
上下文压缩前后
—
PermissionRequest
需要权限决策时
拒绝权限
Notification
Claude 发送通知时
—

6.2 配置格式(settings.json)

{ "hooks": { "PreToolUse": [ { "matcher": "Bash|Edit|Write", "hooks": [ { "type": "command", "command": "/path/to/check.sh" } ] } ] } }
  • matcher 支持精确名(Bash)、多选(Bash|Edit)、正则(mcp__.*__write.*)、全部(*)
  • hook 类型:command(本地脚本)与 http(POST 到远程 URL)
  • 输入通过 stdin 传 JSON(含 session_id、tool_name、tool_input 等)

6.3 Exit code 语义

Exit code
含义
0
成功,解析 stdout 中的 JSON
2
阻止性错误,stderr 内容作为原因
其他
非阻止错误,继续执行
提示:CLAUDE.md 里的规则是「建议」,Claude 可能遗忘;hooks 是「硬约束」,由 harness 强制执行。硬性纪律(如禁止 push main、提交前必须 lint)应沉淀为 hooks。

7. MCP(Model Context Protocol)

7.1 常用命令

claude mcp add <name> stdio -- node /path/to/server.js # 本地 stdio claude mcp add <name> http https://example.com/mcp # 远程 HTTP claude mcp add <name> sse https://example.com/sse # 远程 SSE claude mcp list # 列出服务器 claude mcp login <name> # OAuth 认证 claude mcp remove <name> # 移除

7.2 作用域

Scope
位置
共享方式
local
~/.claude.json
个人所有项目
project
.mcp.json(随 git 提交)
团队共享
managed
服务器下发
IT 管理

7.3 .mcp.json 示例

{ "mcpServers": { "github": { "type": "stdio", "command": "node", "args": ["/path/to/github-mcp/index.js"], "env": { "GITHUB_TOKEN": "$GITHUB_TOKEN" } }, "remote-api": { "type": "sse", "url": "https://api.example.com/mcp" } } }

8. 设置与权限(settings.json)

8.1 层级优先级(从低到高)

  1. ~/.claude/settings.json(用户全局)
  1. .claude/settings.json(项目,git 提交)
  1. .claude/settings.local.json(项目本地,gitignored)
  1. --settings 参数
  1. 托管设置(IT 下发,最高)
CLI flags(--model 等)临时覆盖当次调用。

8.2 权限规则语法

{ "permissions": { "allow": [ "Bash(npm run lint)", "Bash(npm run test *)", "Read(~/.zshrc)" ], "deny": [ "Bash(curl *)", "Read(./.env)", "Read(./.env.*)" ] } }
  • Bash 规则用前缀匹配(* 通配参数);文件规则支持 glob(Edit(src/**))
  • deny 优先于 allow;敏感文件(.env、密钥)建议显式 deny
  • MCP 工具可整体匹配:mcp__github__*

9. 无头模式与自动化

9.1 Print mode 脚本化

# 结构化输出 claude -p "Extract all function names" \ --output-format json \ --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}}}' # 流式输出(适合接入其他程序) claude -p "Explain" --output-format stream-json --include-partial-messages # 批量并行任务 for f in $(cat files.txt); do claude -p "迁移 $f" --allowedTools "Edit,Bash" & done
JSON 输出包含 structured_output、session_id、total_cost_usd 等字段,方便脚本消费。

9.2 Bare mode(CI 推荐)

--bare 跳过 hooks、skills、MCP 自动发现、auto memory、CLAUDE.md 加载,保证 CI 中行为可重现;需要的配置用 --settings / --mcp-config / --append-system-prompt 显式传入。

9.3 GitHub Actions

在 Claude Code 交互模式运行 /install-github-app 一键安装,或手动配置:
jobs: review: runs-on: ubuntu-latest steps: - uses: anthropics/claude-code-action@v1 with: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} prompt: "Review this PR for security issues" claude_args: "--max-turns 5 --model claude-sonnet-5"

10. 其他进阶技巧

10.1 Worktree 并行开发

claude -w feature-auth # 创建或进入隔离工作树 claude -w feature-auth --tmux # 配合 tmux
  • 多个功能互不干扰,可同时开多个 Claude 会话并行开发
  • gitignored 但构建必需的文件(如 .env、嵌入资源)可通过 .worktreeinclude 声明自动复制
  • settings.json 中 worktree.baseRef 控制基于远程默认分支(fresh)还是当前 HEAD

10.2 Plan mode

大改动前用 /plan 或 --permission-mode plan:先只读探索并产出方案,批准后再动手,避免方向错了浪费轮次。

10.3 成本控制

  • /cost 查看当前会话花费;--max-budget-usd 给无头任务设硬上限
  • 模型选择:简单任务用 Haiku,日常用 Sonnet,复杂推理和审查用 Opus
  • 上下文优化:/context 看占用、/compact 主动压缩、不相关任务之间 /clear

10.4 会话管理

claude -n "auth-refactor" # 命名当前会话 claude --resume "auth-refactor" # 按名称恢复 claude --resume abc123 --fork-session # 恢复并分叉,不影响原会话

附:官方文档索引

主题
URL
文档地图
CLI 参考
交互模式
记忆系统
Skills
Subagents
Hooks
MCP
设置
权限
无头模式
GitHub Actions
Worktrees
Agent SDK

评论加载中…