雨天小六

Claude Code 常用命令指南:怎么用、什么时候用

· 更新于 2026-07-15 · 专栏:工具分享

#Claude Code#命令行#教程#效率工具

上一篇介绍了 Claude Code 的安装、认证和模型接入。这篇继续讲实际使用:常用命令有什么区别,哪些参数适合脚本,以及怎样减少误操作。

Claude Code 更新很快,命令是否可用还会受到版本、平台和账号套餐影响。在交互界面输入 /,看到的列表才是当前环境的准确信息。本文根据官方文档整理,更新至 2026 年 7 月。

先分清三种启动方式

交互模式

直接运行 claude,进入可以连续对话的终端界面:

claude

这种模式适合需要探索、修改和反复验证的任务。Claude Code 会保留当前会话的上下文,你可以根据每一步结果继续补充要求。

带着第一个问题启动

claude "解释这个项目的目录结构"

它仍会进入交互模式,只是提前发送了第一条消息。

非交互模式

使用 -p--print,让 Claude Code 完成一次任务后直接输出结果并退出:

claude -p "列出这个项目中所有公开的 API 路由"

非交互模式更适合脚本、CI 和结构化数据处理。任务需要频繁确认或修改多个文件时,交互模式通常更合适。

最常用的交互命令

进入交互模式后,在消息开头输入 / 即可调用命令。命令后面的文字会被当作参数,例如:

/compact 重点保留已经确认的接口设计和失败的测试结果

会话与上下文

命令作用适合什么时候用
/help显示帮助和可用命令不确定当前版本支持什么时
/clear [name]开始一个空白对话,旧会话仍可恢复完全切换到另一项任务时
/compact [instructions]总结当前对话并释放上下文空间长任务接近上下文上限时
/context [all]查看上下文由哪些内容占用想判断是什么消耗了窗口时
/resume [session]恢复之前的会话回到尚未完成的工作时
/branch [name]从当前节点分出一条新会话想尝试另一套方案又不丢原思路时
/rewind回到之前的检查点,或总结指定区段修改方向错误,需要撤回代码或对话时
/export [filename]导出当前对话需要归档、复盘或分享时

/clear/compact 很容易混淆:前者开启全新对话,后者保留当前任务的摘要并继续工作。

项目与记忆

命令作用使用提示
/init为项目生成初始 CLAUDE.md第一次在仓库中使用时
/memory管理 CLAUDE.md 和自动记忆查看或修改持久规则时
/add-dir <path>给当前会话增加一个可访问目录项目依赖同级仓库或共享目录时
/cd <path>将当前会话移动到另一个工作目录需要连同会话一起切换项目时
/ide管理 IDE 集成并查看连接状态VS Code 或 JetBrains 集成异常时
/mcp管理 MCP 服务连接和认证接入数据库、GitHub 等外部工具时
/plugin管理 Claude Code 插件安装、启用或禁用插件时
/skills查看可用技能想确认当前有哪些专项工作流时

/add-dir 只增加文件访问范围,不会把附加目录中的全部 .claude/ 配置自动加载进来。需要真正切换项目时,使用 /cd 更符合预期。

模型、状态与权限

命令作用使用提示
/status查看版本、模型、账号和连接状态排查认证或模型切换问题时
/usage查看会话费用、套餐用量和活动统计控制成本或分析消耗时
/cost/usage 的别名兼容原有使用习惯
/model [model]切换模型任务难度或成本要求变化时
/effort [level]调整模型推理强度当前模型支持不同推理档位时
/permissions管理允许、询问和禁止规则某类操作过于频繁或风险较高时
/plan [description]进入计划模式大改动前先分析方案、暂不修改代码时
/config打开设置界面调整主题、模型和其他偏好时

不同模型支持的推理档位并不相同。无法使用 /effort 时,先检查 /status/model,不要默认是配置出错。

查看与验证改动

命令作用使用提示
/diff打开交互式 diff 查看器提交前检查所有未提交修改时
/code-review审查当前改动,可按参数调整强度查找正确性问题和清理机会时
/security-review检查当前分支改动中的安全风险涉及认证、输入处理或数据访问时
/doctor检查安装和配置,并给出修复选项Claude Code 本身运行异常时
/tasks查看和管理后台任务同时运行多个子任务时
/background将当前会话转入后台运行长任务占用终端时

claude doctor 和交互界面的 /doctor 也有区别:前者从终端输出只读诊断,后者可以在会话中进一步分析问题,并在确认后应用修复。

七个常见使用场景

场景一:理解陌生项目

cd 项目目录
claude

进入后可以这样问:

先不要修改文件。请梳理项目的入口、主要模块、数据流和测试方式,结论附上对应文件路径。

“先不要修改文件”和“附上文件路径”能让结果更容易核对。对于大型项目,可以先让它给出阅读顺序,再逐个模块深入。

场景二:定位并修复 bug

用户登录后偶尔返回 500。先分析 auth.ts 及相关调用链,给出最可能的原因和复现方法;确认原因后再修改,并运行相关测试。

这个提示把任务拆成了分析、复现、修改和验证四步,比单纯说“修一下登录 bug”更稳。

修改完成后运行 /diff,重点检查它是否改动了无关文件,以及异常处理有没有被悄悄删除。

场景三:开发新功能

例如给 Astro 博客增加客户端搜索:

为这个 Astro 博客增加客户端搜索,使用 fuse.js。搜索框放在导航栏,支持按标题、摘要和标签检索。先说明实现方案和需要修改的文件,得到确认后再动手。

需求中最好同时写明技术选择、交互位置、搜索范围和开始修改前的确认点。

场景四:重构代码

重构 userService.ts 中的 handleLogin:拆分职责,但保持公开接口和现有行为不变。先补足关键测试,再进行重构。

重构任务最重要的不是“每个函数不超过多少行”,而是明确哪些行为不能变化,并用测试保护这些行为。

场景五:补测试

为 src/utils/format.ts 编写 Vitest 单元测试。覆盖正常输入、空值、边界值和错误输入;不要为了让测试通过而修改生产代码。

如果确实发现生产代码有问题,让 Claude Code 单独报告,再决定是否扩大修改范围。

场景六:代码审查

可以直接用自然语言:

只读审查 src/pages/api/ 下的代码,按严重程度列出安全、性能和逻辑问题。每条问题附文件位置、触发条件和修改建议。

也可以使用内置命令:

/code-review
/security-review

场景七:生成项目文档

根据当前仓库编写 README,包含安装方式、常用命令、目录结构、环境变量和部署步骤。无法从代码确认的内容请标记为“待确认”,不要猜测。

“无法确认时明确标记”可以显著减少文档中看似合理、实际并不存在的内容。

非交互模式常用参数

下面这些参数适合脚本和自动化任务:

# 基础用法
claude -p "解释这个项目的作用"

# 使用稳定别名指定模型
claude -p "检查这段代码" --model sonnet

# 限制最多执行三轮
claude -p "运行测试并分析失败原因" --max-turns 3

# 输出 JSON
claude -p "列出所有公开函数" --output-format json

# 追加任务规则,同时保留 Claude Code 默认系统提示词
claude -p "审查当前改动" --append-system-prompt "只报告能够复现的问题"

# 增加一个可访问目录
claude --add-dir ../shared-lib

# 从最近一次会话继续
claude --continue

# 按名称或 ID 恢复会话
claude --resume auth-refactor

参数速查

参数作用
-p--print非交互执行,输出结果后退出
--model指定本次会话使用的模型
--max-turns限制非交互模式的最大代理轮数
--max-budget-usd设置非交互任务的费用上限
--output-format选择 textjsonstream-json
--input-format选择 textstream-json 输入
--json-schema要求最终结果符合给定 JSON Schema
--add-dir增加允许读写的工作目录
--permission-mode指定会话启动时的权限模式
--allowedTools让匹配的工具调用不再弹出确认
--disallowedTools禁止指定工具或匹配的调用
--tools限制模型实际能够使用的内置工具集合
--append-system-prompt在默认系统提示词之后追加规则
--system-prompt完整替换默认系统提示词
--continue-c继续当前目录最近的会话
--resume-r按名称或 ID 恢复指定会话
--worktree-w在隔离的 Git worktree 中启动任务
--verbose显示更详细的运行日志

--allowedTools 不等于限制工具

这是最容易误解的参数之一。

claude -p "运行测试" --allowedTools "Bash(npm test)" "Read"

这表示匹配的 npm test 和读取操作可以不经确认直接执行,但不代表其他工具从模型上下文中消失。

如果要真正限制可用工具,使用:

claude -p "分析项目" --tools "Read,Glob,Grep"

如果要明确禁止某类操作,可以使用:

claude -p "检查项目" --disallowedTools "Edit" "Bash(rm *)"

配置文件怎么分层

Claude Code 的常见配置位置如下:

范围文件适合存放什么
用户级~/.claude/settings.json个人偏好、跨项目工具和全局权限
项目级.claude/settings.json需要提交到仓库、与团队共享的配置
本地项目级.claude/settings.local.json只对自己生效、不提交仓库的配置

一个更安全的权限示例:

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test *)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  }
}

白名单只应该放范围明确、结果可逆的命令。不要为了少点几次确认,就把任意 shell 命令全部放开。

CLAUDE.md 和自动记忆有什么区别

Claude Code 有两套互补的长期上下文:

  • CLAUDE.md:由你维护的明确规则,例如构建命令、编码规范和架构约束
  • 自动记忆:Claude Code 根据纠正和工作过程自行保存的项目经验

项目根目录的 CLAUDE.md 可以提交到仓库,与团队共享;~/.claude/CLAUDE.md 则是个人的全局规则。自动记忆默认开启,存放在用户目录下,并且只在本机生效。

运行 /memory 可以查看当前加载了哪些记忆文件、编辑 CLAUDE.md,也可以开关自动记忆。

适合写进 CLAUDE.md 的内容包括:

  • 正确的安装、构建和测试命令
  • 项目特有的编码规范
  • 不容易从代码中推断出的架构决策
  • 明确禁止的依赖或实现方式

目录树、依赖列表等可以从仓库直接得出的内容,不必大段重复写入,否则只会占用上下文。

配合管道和脚本

Claude Code 可以直接处理标准输入:

# 分析日志
cat error.log | claude -p "分析错误原因,按可能性排序"

# 根据 diff 生成提交说明
git diff --cached | claude -p "根据这些改动写一条中文提交说明"

# 根据提交记录生成 changelog
git log --oneline v1.0..HEAD | claude -p "生成中文 changelog,按功能分类"

在脚本中使用时,优先选择结构化输出,并设置轮数或预算上限。不要在缺少隔离环境和人工审查的 CI 中使用 --dangerously-skip-permissions

几点实用经验

说明目标、范围和验证方式

“帮我看看这个项目”过于宽泛。更好的说法是:

找出处理用户登录的文件,解释调用链,不要修改代码。结论附文件路径和行号。

目标决定做什么,范围决定不要碰什么,验证方式决定怎样判断完成。

陌生项目先读后改

先让 Claude Code 分析入口、依赖和测试,再开始修改。对于风险较高的任务,可以先用 /plan,确认方案后再执行。

大任务拆成可验证的小步骤

一次重写整个系统,出了问题很难定位。将任务拆成接口、实现、迁移和测试,每一步都检查结果,返工成本更低。

始终检查 diff 和测试

AI 能完成操作,不代表结果天然正确。提交前至少运行 /diff,再执行与改动相关的测试、类型检查或构建。

主动保护敏感文件

permissions.deny 中禁止读取 .env、密钥和凭据文件。接入第三方模型时,还要考虑代码和工具输出是否会经过外部服务。

长任务及时管理上下文

/context 查看窗口占用,用 /compact 保留关键结论。任务已经完全切换时再用 /clear,避免把无关历史带进新工作。

参考资料

评论


← 返回文章列表