上一篇介绍了 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 | 选择 text、json 或 stream-json |
--input-format | 选择 text 或 stream-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,避免把无关历史带进新工作。
评论
登录后即可评论