Claude 命令分类详解:CLI 子命令、标志、斜杠命令的完整对照
把 Claude Code 的命令按启动、交互、配置、信息、自动化等功能分类,给出代表命令、用途和典型使用场景的完整对照表。
Claude Code 看起来命令不多,实际上每个命令都有自己的职责。如果你按”语法形式”分类(CLI 命令、CLI 标志、斜杠命令),只能看到表层结构。要真正用得顺手,得按”功能用途”分类——你打算干什么,就知道找哪类命令。
这篇文章把 Claude Code 的命令按功能分成五类:启动类、交互类、配置类、信息类、自动化类。每类列出代表命令、用途、典型使用场景。最后给一张完整对照表方便你随时查阅。
命令分类的两个维度
Claude Code 的命令体系,可以从两个维度看:
第一个维度:语法形式
- CLI 子命令:
claude xxx(在终端里运行,比如claude mcp) - CLI 标志:
--xxx(附加参数,比如--model) - 斜杠命令:
/xxx(在对话里运行,比如/clear)
第二个维度:功能用途
- 启动类:决定 Claude Code 怎么启动
- 交互类:在对话过程中做控制
- 配置类:调整设置和环境
- 信息类:查询状态、帮助、版本等
- 自动化类:让 Claude Code 跑在脚本/CI 里
实际工作中我们更关心”我现在要干什么”,所以下面按功能分类讲。
第一类:启动类命令
这类命令决定 Claude Code 以什么方式启动、用什么模型、读什么上下文。
| 命令/标志 | 类型 | 用途 |
|---|---|---|
claude | CLI | 启动交互式 REPL |
claude "问题" | CLI | 带初始问题启动 |
claude -p "问题" | CLI 标志 | 非交互模式,执行后退出 |
claude -c | CLI 标志 | 继续上次对话 |
claude -r | CLI 标志 | 列出历史对话并恢复 |
claude --resume <id> | CLI 标志 | 恢复指定 ID 的对话 |
--model <name> | CLI 标志 | 指定模型 |
--system-prompt "..." | CLI 标志 | 替换系统提示 |
--append-system-prompt "..." | CLI 标志 | 追加系统提示 |
典型场景:
# 日常进入项目目录就直接启动
cd ~/projects/my-app
claude
# 想用 Opus 处理复杂重构
claude --model claude-opus-4-7
# 昨天聊到一半的对话接着聊
claude -c
# 给 Claude 加一段持久指令
claude --append-system-prompt "回答时所有代码都用 TypeScript,不要 JavaScript"
这类命令的共同点是:它们影响”这次对话从哪开始、按什么规则进行”。一旦启动后,这些参数就锁定了,要改就得退出重启。
第二类:交互类命令
进入 REPL 之后,对话过程中用的命令。基本都是斜杠命令。
| 斜杠命令 | 用途 |
|---|---|
/help | 列出所有可用斜杠命令 |
/clear | 清空当前对话历史 |
/compact | 压缩对话历史(保留要点,省 Token) |
/model | 切换当前模型 |
/init | 在项目里初始化 CLAUDE.md |
/review | 请求代码审查 |
/cost | 查看本次会话的 Token 用量和费用 |
/exit 或 Ctrl+D | 退出 REPL |
/bug | 提交 bug 报告给 Anthropic |
/login / /logout | 切换账号 |
典型场景:
> 写一个 React 表格组件
# Claude 写了一段代码
> /model
# 切到 Opus 让它帮我重构
> /cost
# 看看花了多少
> Total cost: $0.18
> Total duration: 3m 42s
> Total code changes: 142 lines added, 28 removed
> /compact
# 压缩一下上下文,准备聊新的话题
/compact 是一个非常有用的命令。它会让 Claude 把前面的长对话压缩成几句要点,再继续。比 /clear 完全清空更好——因为它保留了”我们已经讨论过什么、决定了什么”的关键信息。
第三类:配置类命令
调整 Claude Code 自身的配置:MCP 服务器、权限、Hook、订阅信息等。
| 命令 | 类型 | 用途 |
|---|---|---|
claude config | CLI 子命令 | 打开配置文件 |
claude mcp add <name> | CLI 子命令 | 添加 MCP 服务器 |
claude mcp list | CLI 子命令 | 列出已配置的 MCP |
claude mcp remove <name> | CLI 子命令 | 移除 MCP 服务器 |
/config | 斜杠命令 | 在对话内打开配置 |
/permissions | 斜杠命令 | 查看/修改权限规则 |
/hooks | 斜杠命令 | 查看/编辑 hooks |
--allowedTools "..." | CLI 标志 | 临时放行某些工具 |
--permission-mode <mode> | CLI 标志 | 设置权限模式 |
--dangerously-skip-permissions | CLI 标志 | 跳过所有权限确认 |
典型场景:
# 给项目加一个 GitHub MCP,让 Claude 能查 issue
claude mcp add github
# 看看现有 MCP 列表
claude mcp list
# 输出
# github stdio ✓ connected
# postgres stdio ✓ connected
# 在交互里想批量改文件,不想每次都点确认
> /permissions
# 把 Edit、Write 加进 allowList
注意 --dangerously-skip-permissions 这个标志非常危险,名字里就告诉你了。它会让 Claude 在没有任何确认的情况下执行所有工具调用,包括 rm -rf。只在沙箱、Docker 容器、CI 隔离环境下使用,绝对不要在你日常开发的机器上用。
第四类:信息类命令
查询状态、帮助、版本、文档相关。
| 命令 | 类型 | 用途 |
|---|---|---|
claude --version 或 -v | CLI 标志 | 查看版本 |
claude --help 或 -h | CLI 标志 | 查看 CLI 帮助 |
claude help <subcommand> | CLI 子命令 | 查看子命令帮助 |
claude doctor | CLI 子命令 | 诊断当前环境 |
/help | 斜杠命令 | 列出斜杠命令 |
/status | 斜杠命令 | 查看当前会话状态 |
/cost | 斜杠命令 | 查看用量 |
/release-notes | 斜杠命令 | 查看版本更新内容 |
典型场景:
# 升级前先看版本
claude --version
# 1.0.42
# 出问题了,先 doctor 一下
claude doctor
# Checking Node.js version... ✓ v20.10.0
# Checking authentication... ✓ Logged in as user@example.com
# Checking MCP servers... ✓ 2 servers responding
# Checking permissions... ✓ OK
# 在交互里查询状态
> /status
# Model: claude-opus-4-7
# Conversation: 12 messages, 18,432 tokens
# Cost: $0.14
# Cwd: /home/user/projects/my-app
claude doctor 在出问题时是第一个该跑的命令。它会自动检测 Node 版本、网络、登录状态、MCP 连接、权限文件等。比你一项一项排查快得多。
第五类:自动化类命令
让 Claude Code 在脚本、CI、Pipeline 里运行的命令组合。
| 标志 | 用途 |
|---|---|
-p "prompt" 或 --print | 非交互模式,打印结果后退出 |
--output-format text | 文本输出(默认) |
--output-format json | JSON 输出 |
--output-format stream-json | 流式 JSON 输出 |
--allowedTools "..." | 白名单工具 |
--disallowedTools "..." | 黑名单工具 |
--max-turns <n> | 限制工具调用次数 |
--input-format stream-json | 从 stdin 读取流式输入 |
--dangerously-skip-permissions | 跳过权限确认(危险) |
--verbose | 详细日志 |
典型场景:
# CI 里跑代码审查,结果写到文件
claude -p "审查 git diff 里的代码改动,列出问题" \
--output-format json \
--allowedTools "Bash(git diff)" \
> review.json
# 流式输出,前端实时拿到 token
claude -p "解释 main.go" \
--output-format stream-json | \
while IFS= read -r line; do
echo "$line" | jq -r '.delta // empty'
done
# pre-commit hook 里限制不让 Claude 改 .env 文件
claude -p "..." \
--disallowedTools "Edit(.env),Write(.env)" \
--max-turns 5
自动化场景里,--output-format json 和 --max-turns 是最实用的两个。前者让脚本能解析结果,后者防止 Claude 死循环消耗 Token。
完整命令对照表
下面这张表把 Claude Code 的主要命令都列在一起,方便你 Ctrl+F 搜索:
| 命令 | 类型 | 分类 | 用途 |
|---|---|---|---|
claude | CLI | 启动 | 启动 REPL |
claude "..." | CLI | 启动 | 带问题启动 |
claude -p "..." | 标志 | 自动化 | 非交互打印模式 |
claude -c | 标志 | 启动 | 继续上次对话 |
claude -r | 标志 | 启动 | 列表选择历史对话 |
claude --resume <id> | 标志 | 启动 | 恢复指定对话 |
claude update | CLI | 配置 | 升级 Claude Code |
claude doctor | CLI | 信息 | 环境诊断 |
claude config | CLI | 配置 | 编辑配置 |
claude mcp add/list/remove | CLI | 配置 | 管理 MCP 服务器 |
claude --version | 标志 | 信息 | 查看版本 |
claude --help | 标志 | 信息 | 查看帮助 |
--model <name> | 标志 | 启动 | 选模型 |
--system-prompt "..." | 标志 | 启动 | 替换系统提示 |
--append-system-prompt "..." | 标志 | 启动 | 追加系统提示 |
--allowedTools "..." | 标志 | 自动化/配置 | 工具白名单 |
--disallowedTools "..." | 标志 | 自动化/配置 | 工具黑名单 |
--permission-mode <m> | 标志 | 配置 | 权限模式 |
--dangerously-skip-permissions | 标志 | 自动化 | 跳过所有确认(危险) |
--output-format <f> | 标志 | 自动化 | 输出格式 |
--max-turns <n> | 标志 | 自动化 | 工具调用次数上限 |
--verbose | 标志 | 信息 | 详细日志 |
/help | 斜杠 | 信息 | 列出斜杠命令 |
/clear | 斜杠 | 交互 | 清空对话 |
/compact | 斜杠 | 交互 | 压缩对话 |
/model | 斜杠 | 交互 | 切换模型 |
/init | 斜杠 | 配置 | 初始化 CLAUDE.md |
/review | 斜杠 | 交互 | 代码审查 |
/cost | 斜杠 | 信息 | 查看费用 |
/status | 斜杠 | 信息 | 查看状态 |
/config | 斜杠 | 配置 | 编辑配置 |
/permissions | 斜杠 | 配置 | 编辑权限 |
/hooks | 斜杠 | 配置 | 编辑 hooks |
/release-notes | 斜杠 | 信息 | 版本更新 |
/login /logout | 斜杠 | 配置 | 账号切换 |
/bug | 斜杠 | 信息 | 提交 bug |
/exit | 斜杠 | 交互 | 退出 |
常见问题
Q: --allowedTools 和 /permissions 什么关系?
--allowedTools 是命令行临时参数,只对这次启动有效。/permissions 是修改持久化的配置(写到 .claude/settings.json 里),下次启动还有效。在脚本里用前者,在日常开发里用后者。
Q: 斜杠命令能在 -p 模式下用吗?
不能。-p 是单次执行的非交互模式,根本没有 REPL,自然没有斜杠命令。如果你需要在脚本里”切换模型”或”清空上下文”,应该用 CLI 标志(--model)或重新启动一次 Claude。
Q: claude config 和 /config 一样吗?
功能上一样——都是编辑同一个配置文件。区别只是入口:前者从终端进入,后者从对话内进入。底层是同一个 ~/.claude/settings.json(或项目里的 .claude/settings.json)。
Q: 我经常忘命令,有什么办法?
记住三个入口就行:
- 终端:
claude --help - 对话内:
/help - 任何地方:按 Tab 补全
不需要把所有命令都背下来。
快速参考:场景 → 命令
| 我想做的事 | 用什么 |
|---|---|
| 启动一次新对话 | claude |
| 续上次的 | claude -c |
| 写脚本里调用 Claude | claude -p "..." --output-format json |
| 切换模型 | 启动时 --model,对话中 /model |
| 查看花了多少钱 | /cost |
| 排查问题 | claude doctor |
| 升级 | claude update |
| 查版本 | claude --version |
| 不想每次确认 | --allowedTools 或 /permissions |
| CI 里跑 | -p + --output-format json + --allowedTools |
| 提交 bug | /bug |
按”我想做什么”找命令,比按字母顺序背命令快得多。