命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
启动交互式会话
claudeclaudeclaude 是 Claude Code 的主 CLI 入口命令,由 Anthropic 官方提供。在终端输入 claude 并回车,即可启动一个交互式 REPL 会话(Interactive Session),在其中以自然语言与 Claude 对话、操作文件、执行代码、管理 MCP 服务等。
平台 / 订阅要求:
| 维度 | 说明 |
|---|---|
| 安装方式 | curl -fsSL https://claude.ai/install.sh | bash 或 npm/pip 等包管理器 |
| 认证 | 需先运行 claude auth login 绑定 Anthropic 账号 |
| 订阅 | 需要 Anthropic 账号。Auto Mode 在所有计划均可用(Team/Enterprise 需管理员先在 admin settings 中启用;模型需 Anthropic API 上的 Opus 4.6+/Sonnet 4.6,详见官方 permission-modes 文档),并非 Pro/Max 专属 |
| 平台 | macOS、Linux、WSL;Windows 原生支持通过 Windows Terminal |
| 会话存储 | 本地 ~/.claude/projects/<project>/<session-id>.jsonl,默认保留 30 天 |
claude
打开一个 REPL,逐轮对话。光标进入提示符后可直接输入自然语言请求、slash 命令、shell 前缀等。
claude "帮我梳理 src/auth 目录的结构"
会话启动后,该字符串作为第一条消息自动提交,无需手动输入。
# 短选项
claude -p "总结最近一次 git diff"
# 长选项
claude --print "总结最近一次 git diff"
# 结合 output-format
claude -p "列出所有 TODO" --output-format json
claude -p "实时分析日志" --output-format stream-json
输出到 stdout 后自动退出,不进入交互,适合脚本/CI 调用。
# 继续当前目录最近一次会话
claude --continue
claude -c
# 打开会话选择器(交互式挑选)
claude --resume
# 按名称或 session ID 恢复
claude --resume auth-refactor
claude -r "12345678-1234-1234-1234-123456789abc"
# 从关联 PR 恢复会话
claude --from-pr 446
# 启动时命名
claude -n auth-refactor
# 继续 + 分叉(不覆盖原会话)
claude --continue --fork-session
claude --resume auth-refactor --fork-session
claude --model opus
claude --model claude-sonnet-4-6
claude --model haiku
# 限制自主执行轮数,防止失控
claude --max-turns 10 "重构 src/api.ts"
# 启动时进入 plan 模式(只分析不执行)
claude --permission-mode plan
# 自动批准文件编辑
claude --permission-mode acceptEdits
# CI/CD 跳过所有确认(沙箱环境专用)
claude --permission-mode bypassPermissions
--safe-mode 与 --bare(姊妹标志)# 排障首选:禁用全部自定义,定位是哪项配置导致异常(v2.1.169+)
claude --safe-mode
--safe-mode(v2.1.169 起,设置 CLAUDE_CODE_SAFE_MODE)以「全部自定义禁用」启动,用于排查损坏的配置:CLAUDE.md、skills、plugins、hooks、MCP servers、自定义命令与 agents、output styles、workflows、自定义主题与键位、status line 与 file-suggestion 命令、LSP servers、auto-memory 均不加载。认证、模型选择、内置工具、权限仍正常工作——这正是它与 --bare 的区别(--bare 还会改变工具集)。Managed settings 策略仍生效(含策略配置的 hooks/status line/file-suggestion 命令);但 managed plugins/skills/CLAUDE.md 及策略 MCP servers 不加载。也可用于判断是否某项自定义触发了 Fable 5 的自动回退。
定位上,--safe-mode 应是排障首选、先于卸载:怀疑配置出问题时先用它隔离,而不是直接卸载组件。它与 --bare(精简模式,设置 CLAUDE_CODE_SIMPLE,跳过 hooks/skills/plugins/MCP/auto-memory/CLAUDE.md 的自动发现以加速脚本调用)是姊妹标志,禁用范围高度重叠;区别是 --bare 面向「脚本快速启动」、会限制工具集(仅 Bash/读/写),--safe-mode 面向「排障」、保留完整内置工具与权限。
来源:官方 cli-reference 已文档化
--safe-mode(标注 min-version 2.1.169)及--bare。注:该行为早期仅见于社区(GitHub issue #66376 仍 open),现官方 cli-reference 已正式收录。
# 允许 Claude 访问额外目录
claude --add-dir ../shared-lib --add-dir ../design-system
claude --allowedTools "Read,Edit,Bash(git:*)"
claude --disallowedTools "Bash(curl:*)"
# 替换默认 system prompt
claude --system-prompt "你是一个专注于安全审计的助手"
# 追加到默认 system prompt 之上(不覆盖)
claude --append-system-prompt "每次建议修改前先写一个回归测试"
# 从文件加载
claude --system-prompt-file ./my-system.txt
# 临时加载 MCP 服务配置文件
claude --mcp-config ./servers.json
# 严格模式:只使用指定配置,忽略其他来源
claude --mcp-config ./servers.json --strict-mcp-config
# 强制 Claude 输出符合 JSON schema 的结构
claude -p "分析这个文件的问题" \
--output-format json \
--json-schema '{"type":"object","properties":{"issues":{"type":"array","items":{"type":"string"}}}}'
# 在当前目录生成 CLAUDE.md
claude --init
claude update # 更新到最新版
claude doctor # 诊断安装/登录问题
claude mcp # 管理 MCP 服务
claude auth login # 登录
claude auth logout # 登出
| 快捷键 | 动作 |
|---|---|
Ctrl+C | 中断当前操作;无操作时第一次清空输入,第二次退出 |
Ctrl+D | 退出会话(EOF 信号) |
Esc | 中止 Claude 当前响应或工具调用,已完成的工作保留 |
Esc + Esc | 输入有内容时清空草稿;输入为空时打开 rewind 菜单(回滚检查点) |
Ctrl+L | 强制重绘终端屏幕(显示花屏时使用) |
Ctrl+O | 切换 transcript 查看器(展开工具调用详情) |
Ctrl+R | 逆向搜索命令历史 |
Ctrl+B | 将当前 bash 命令移入后台(tmux 用户按两次) |
Ctrl+T | 切换任务列表显示 |
Ctrl+X Ctrl+K | 终止所有后台 subagent(3 秒内按两次确认) |
Ctrl+G / Ctrl+X Ctrl+E | 在外部编辑器中编辑当前输入 |
| 快捷键 | 动作 |
|---|---|
Shift+Tab | 循环切换 permission 模式(default → acceptEdits → plan → ...) |
Option+P / Alt+P | 切换模型(不清空当前输入) |
Option+T / Alt+T | 切换 extended thinking 模式 |
Option+O / Alt+O | 切换 fast mode(Opus 快速输出) |
| 快捷键 | 动作 |
|---|---|
Ctrl+A / Ctrl+E | 跳到行首 / 行尾 |
Ctrl+K | 删除到行尾(存入剪切板) |
Ctrl+U | 删除到行首(存入剪切板) |
Ctrl+W | 删除前一个词 |
Ctrl+Y | 粘贴上次删除内容 |
Alt+B / Alt+F | 按词向前 / 向后移动光标 |
| 方法 | 快捷键 | 说明 |
|---|---|---|
| 反斜杠换行 | \ + Enter | 所有终端通用 |
| Shift+Enter | Shift+Enter | iTerm2/WezTerm/Ghostty/Kitty/Apple Terminal 原生支持 |
| Option+Enter | Option+Enter | 配置 Option 为 Meta 后可用(macOS) |
| Ctrl+J | Ctrl+J | 任何终端无需配置 |
| 前缀 | 行为 |
|---|---|
/ | 触发 slash 命令或 skill |
! | 进入 shell 模式,直接执行命令并将输出加入上下文 |
@ | 触发文件路径自动补全 |
# | 添加持久化 memory |
& | 发送任务到云端 agent |
!shell 命令自动响应(v2.1.186+):从 v2.1.186 起,!命令的输出落入 transcript 后,Claude 会自动对其响应——例如直接! npm test即可得到对失败的解释,无需再发第二条 prompt(该响应按普通 prompt 计费)。v2.1.186 之前,shell 模式只把输出加入上下文、不触发响应。若想恢复旧行为(只加上下文、不响应),在settings.json设置respondToBashCommands: false。官方原文:"As of v2.1.186, Claude responds to the command output automatically once it lands in the transcript ... set respondToBashCommands to false in settings.json"。
!bash 模式的两类自动补全:!shell 模式提供两种独立补全,别混为一谈——
- 历史命令补全(Tab):官方 interactive-mode 页明确 "Supports history-based autocomplete: type a partial command and press Tab to complete from previous
!commands in the current project"——输入命令前缀后按Tab,从当前项目里此前用过的!命令补全。- 实时文件路径补全(v2.1.193+):v2.1.193 给 bash 模式新增了实时文件路径补全(changelog "Added live file path autocomplete to bash mode (
!)"),在键入命令时即时补全文件路径,无需手敲完整路径。即:Tab 是"补历史命令",文件路径补全是"补路径片段",二者并存,而非对任意文件系统路径做 Tab 补全。来源:Claude Code interactive-mode 页 + changelog v2.1.193。
| 快捷键 | 动作 |
|---|---|
{ / } | 跳转到上/下一条用户 prompt |
Ctrl+E | 切换显示全部内容 |
[ | 写入终端原生 scrollback |
v | 在 $EDITOR 中打开会话 |
q / Ctrl+C / Esc | 退出查看器 |
/config 开启)开启后支持 NORMAL / INSERT / VISUAL 三种模式,h/j/k/l 移动、dd/cc 编辑、文本对象 iw/aw/i"等完整 vim 操作。运行 /config → Editor mode 启用。
| 文件路径 | 作用域 | 是否 git 追踪 |
|---|---|---|
~/.claude/settings.json | 全局用户级默认 | 否 |
.claude/settings.json | 项目级(团队共享) | 是 |
.claude/settings.local.json | 项目级个人覆盖 | 否(已加入 .gitignore) |
~/.claude/projects/<project>/<session-id>.jsonl
其中 <project> 由当前工作目录路径派生(官方 sessions 文档原文:"<project> is derived from your working directory path")。每行为一个 JSON 对象(消息、工具调用、元数据)。默认保留 30 天,可通过 cleanupPeriodDays 设置调整。
| 变量 | 作用 |
|---|---|
CLAUDE_CONFIG_DIR | 覆盖默认 ~/.claude 配置目录路径 |
CLAUDE_CODE_SKIP_PROMPT_HISTORY | 不写入 transcript 到磁盘 |
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS | 禁用后台任务功能 |
CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION | false 禁用 prompt 建议 |
CLAUDE_CODE_TASK_LIST_ID | 跨会话共享任务列表(指定 ~/.claude/tasks/ 下的目录名) |
CLAUDE_CODE_SAFE_MODE | 由 --safe-mode(v2.1.169+)设置:以全部自定义禁用启动,排障损坏配置(详见上文 7.5 节)。与 CLAUDE_CODE_SIMPLE(由 --bare 设置)为姊妹变量,禁用同组组件 |
CLAUDE_CODE_SIMPLE | 由 --bare 设置:精简模式,跳过 hooks/skills/plugins/MCP/auto-memory/CLAUDE.md 自动发现,加速脚本调用;工具集仅 Bash/读/写 |
# 交互式内运行
/export # 复制到剪贴板
/export ./transcript.txt # 写入文件
# 非交互模式扫描代码,输出结构化 JSON
claude -p "找出所有 SQL 注入漏洞" \
--output-format json \
--permission-mode bypassPermissions \
--max-turns 20
| 约束 | 原因 |
|---|---|
| 每会话 transcript 文件默认 30 天后清除 | 本地磁盘管理,可通过 cleanupPeriodDays 延长 |
| 后台任务输出超过 5 GB 时自动终止 | 防止磁盘耗尽 |
bypassPermissions 模式不能从未带启用标志启动的会话中途进入 | 安全限制,需用 --permission-mode bypassPermissions、--dangerously-skip-permissions 或 --allow-dangerously-skip-permissions 启动会话才能启用(官方 permission-modes 文档) |
Vim 模式不支持 Ctrl+V 块级可视模式 | 实现限制 |
macOS 的 Alt 快捷键(Alt+B/F/Y/P/T/O/M)需先配置 Option 为 Meta | 终端默认将 Option 用于字符输入 |
-p / --print 模式下 prompt suggestions 默认关闭 | 非交互场景无意义 |
/btw 侧边问答无工具访问权限 | 设计决策:仅查询已有上下文,不触发新 tool call |
--fork-session 不继承"本次会话允许"的权限审批 | 分叉是独立会话,权限从零开始 |
| 命令 / 模式 | 是否交互 | 会话持久化 | 适用场景 |
|---|---|---|---|
claude(无参数) | 是 | 是 | 日常开发对话、探索代码库 |
claude -p "..." | 否 | 否(默认) | 脚本调用、CI 集成、单次查询 |
claude --continue | 是 | 是 | 快速接续昨天的工作 |
claude --resume | 是(选择器) | 是 | 多任务并行、按名切换 |
claude --permission-mode plan | 是 | 是 | 只读分析、高风险变更前预览 |
claude -w | 是 | 是 | git worktree 隔离的并行实验 |
claude 进入 REPL,用自然语言驱动文件编辑、测试运行、git 操作,无需离开终端。-n 命名多个任务会话(claude -n feature-auth、claude -n bugfix-123),随时用 --resume 或 /resume 在上下文中切换,互不干扰。claude -p "..." --output-format json --permission-mode bypassPermissions 将 Claude 嵌入 pipeline,做代码审查、安全扫描、文档生成。claude --permission-mode plan "重构整个 API 层" 只读分析并输出执行计划,确认无误后再切换到普通模式执行。claude --add-dir ../design-system --add-dir ../shared-types 让一次会话横跨多个目录,统一协调依赖变更。Alt+P(切换模型)、Alt+T(extended thinking)等依赖 Option 作为 Meta 键。iTerm2 需进入 Settings → Profiles → Keys → 将 Left/Right Option 设为 "Esc+";Apple Terminal 需勾选"Use Option as Meta Key";VS Code 需添加 "terminal.integrated.macOptionIsMeta": true。--fork-session 分叉出独立会话后再并行操作。bypassPermissions 用于本地开发:这个模式会跳过所有权限提示,包括破坏性操作。官方建议仅在沙箱 CI 环境中使用;本地开发推荐用 acceptEdits 或 auto 模式代替(auto 模式有独立的安全分类器审查每个操作,默认阻止如 curl | bash、force push、直接推送到 main、生产部署/迁移、terraform destroy 等危险操作——见官方 permission-modes 的 "What the classifier blocks by default")。--output-format json 与 --print 未同时使用:--output-format 只在 --print(-p)非交互模式下生效,交互会话中设置无效。退出当前会话:
# 任选其一
Ctrl+D # EOF 信号,干净退出
Ctrl+C Ctrl+C # 先清空输入,再退出
更新版本:
claude update
卸载:
# 通过 npm 安装的
npm uninstall -g @anthropic-ai/claude-code
# 通过安装脚本安装的,删除二进制及配置
rm -rf ~/.claude
# 并从 PATH 中移除 claude 可执行文件所在目录