首页 / Claude Code 入门教程 / CLI 命令行参考

Claude Code 入门教程

CLI 命令行参考

本教程共 34 篇 · 第 9 篇 · 更新于 2026-07-26 · 约 8 分钟阅读

Claude CodeClaude Code 入门教程CLI命令行脚本化管道

9. CLI 命令行参考

本节目标:掌握 claude 命令行的完整用法,包括基础命令、常用标志、打印模式、管道输入和输出格式,能在终端和脚本里灵活调用 Claude Code。

基础命令

Claude Code 的核心入口就是 claude 命令。下面是最常用的几种调用方式:

命令描述示例
claude启动交互式会话claude
claude "query"带初始提示启动交互式会话claude "explain this project"
claude -p "query"打印响应后退出(非交互模式)claude -p "explain this function"
cat file | claude -p "query"处理管道输入cat logs.txt | claude -p "explain"
claude -c继续当前目录最近的对话claude -c
claude -r "<session>" "query"按 ID 或名称恢复会话claude -r "auth-refactor" "Finish this PR"
claude update更新到最新版本claude update

最简单的就是直接打 claude,进入交互式会话。如果你想一进去就让 Claude 干活,可以带上初始提示。

Tip

如果你输错了子命令,Claude Code 会建议最接近的匹配。比如打 claude udpate,它会提示 Did you mean claude update?,不会直接报错。

其他常用子命令

除了 claude 本身,还有一些管理类子命令:

命令用途
claude doctor打印安装和配置诊断,不启动会话
claude mcp配置 MCP 服务器
claude plugin管理插件
claude agents打开 agent view 监控后台会话
claude auth login登录账户
claude auth logout注销账户
claude auth status查看认证状态
claude setup-token为 CI 和脚本生成长期令牌
claude install [version]安装或重新安装原生二进制文件

打印模式(-p)

-p(或 --print)是最重要的标志之一。它让 Claude Code 不进入交互式界面,而是直接打印响应然后退出。

claude -p "explain this function"

这看起来不起眼,但它是脚本化和自动化的基础。你可以把 Claude Code 嵌入到 shell 脚本、CI/CD 流水线、Makefile 里。

管道输入

-p 模式支持从 stdin 读取内容。你可以用管道把文件内容传给 Claude:

# 分析日志文件
cat logs.txt | claude -p "summarize the errors"

# 分析 git diff
git diff | claude -p "review this diff for bugs"

# 分析命令输出
kubectl get pods | claude -p "which pods are crashing?"

这种模式特别适合把 Claude Code 当成一个「智能管道过滤器」用——前一步的输出,经过 Claude 分析,变成下一步的输入。

限制轮次和预算

在脚本场景下,你可能想限制 Claude 的执行范围,防止它跑太久:

# 最多执行 3 轮
claude -p --max-turns 3 "fix the type errors"

# 最多花费 5 美元
claude -p --max-budget-usd 5.00 "refactor the auth module"

--max-turns 限制代理轮次,达到上限会报错退出。--max-budget-usd 限制 API 调用花费,达到金额就停。

输出格式

-p 模式支持三种输出格式,用 --output-format 指定:

格式用途示例
text纯文本(默认)claude -p "query"
jsonJSON 对象,便于编程解析claude -p "query" --output-format json
stream-json流式 JSON,逐条输出claude -p --output-format stream-json "query"

json 格式在脚本里最实用,可以直接用 jq 等工具解析:

# 提取 Claude 的回复文本
claude -p "list all TODO comments" --output-format json | jq '.result'

# 流式输出,实时看到每一步
claude -p --output-format stream-json --verbose "explain the architecture"
Note

stream-json 模式会逐条输出事件(工具调用、思考过程、文本块等),适合需要实时监控执行过程的场景。配合 --verbose 可以看到完整的逐轮输出。

结构化输出

如果你需要 Claude 返回符合特定 schema 的 JSON,可以用 --json-schema

claude -p --json-schema '{
  "type": "object",
  "properties": {
    "bugs": {"type": "array", "items": {"type": "string"}},
    "severity": {"type": "string", "enum": ["low", "medium", "high"]}
  }
}' "analyze this code for bugs"

Claude 会返回符合你定义的 JSON Schema 的结构化数据,方便后续程序处理。

常用标志分类

Claude Code 有大量命令行标志。这里按用途分类整理最常用的。

会话控制

标志描述
--continue, -c加载当前目录最近的对话
--resume, -r按 ID 或名称恢复会话
--fork-session恢复时创建新会话 ID
--session-id指定会话 ID(UUID)
--name, -n为会话设置显示名称
--no-session-persistence不保存会话到磁盘
# 继续上次的对话
claude -c

# 恢复指定会话
claude -r "auth-refactor"

# 给会话起个名字,方便后续找回
claude -n "feature-auth-work"

模型与推理

标志描述
--model指定模型(支持别名 sonnet/opus/haiku
--effort设置推理工作量(low/medium/high/xhigh/max
--fallback-model主模型不可用时自动切换
# 用 Opus 处理复杂任务
claude --model opus "refactor the entire auth system"

# 用低工作量跑简单任务,省时间
claude --effort low -p "what does this function do"

# 主模型过载时自动降级到 Sonnet
claude --fallback-model sonnet,haiku "fix the bug"

权限与安全

标志描述
--permission-mode指定权限模式启动
--allowedTools免权限提示的工具
--disallowedTools禁用的工具
--dangerously-skip-permissions跳过所有权限提示
--tools限制可用工具范围
# 以计划模式启动
claude --permission-mode plan

# 只允许读取和 git 查看操作
claude --allowedTools "Bash(git log *)" "Bash(git diff *)" "Read"

# 限制只用 Bash、Edit、Read 三个工具
claude --tools "Bash,Edit,Read"
Warning

--dangerously-skip-permissions 会跳过所有权限提示,Claude 可以直接执行任何操作。仅在你完全信任环境和代码的情况下使用,比如隔离的 CI 容器里。千万不要在日常开发中随手加这个标志。

上下文与配置

标志描述
--add-dir添加额外工作目录
--settings加载自定义 JSON 配置
--setting-sources指定加载的设置源
--append-system-prompt追加内容到默认系统提示
--system-prompt替换整个系统提示
# 添加额外目录
claude --add-dir ../apps ../lib

# 追加系统提示
claude --append-system-prompt "Always use TypeScript"

# 加载自定义配置
claude --settings ./settings.json

并行与后台

标志描述
--bg, --background作为后台代理启动
--worktree, -w在隔离的 git worktree 中启动
--exec运行 shell 命令作为后台作业
# 后台调查一个 flaky test
claude --bg "investigate the flaky test"

# 在隔离 worktree 里开发新功能
claude -w feature-auth

# 后台运行测试
claude --bg --exec 'pytest -x'

调试与诊断

标志描述
--debug启用调试模式
--debug-file调试日志写入指定文件
--verbose详细日志输出
--safe-mode禁用所有自定义,排查配置问题
--bare最小模式,跳过所有自动发现
# 调试 API 和 MCP 问题
claude --debug "api,mcp"

# 安全模式启动,排除自定义干扰
claude --safe-mode

# 最小模式,脚本化调用更快
claude --bare -p "query"

--safe-mode--bare 容易搞混:

Note
  • --safe-mode:禁用所有自定义(CLAUDE.md、skills、plugins、hooks、MCP 等),但保留内置工具和权限。用于排查自定义配置引起的问题。
  • --bare:跳过 hooks、skills、plugins、MCP、自动内存和 CLAUDE.md 的自动发现,启动更快。Claude 只能访问 Bash、文件读取和编辑。用于脚本化场景加速。

系统提示自定义

Claude Code 提供四个标志来控制系统提示,全部在交互和非交互模式下都有效:

标志行为适用场景
--system-prompt替换整个默认提示完全自定义 Claude 身份
--system-prompt-file从文件加载并替换团队共享提示模板
--append-system-prompt追加到默认提示保留默认功能,加额外规则
--append-system-prompt-file从文件追加批量加载额外规则
# 追加:保留默认行为,加上 TypeScript 要求
claude --append-system-prompt "Always use TypeScript"

# 替换:完全自定义身份
claude --system-prompt "You are a Python expert"

# 从文件加载团队共享提示
claude --system-prompt-file ./prompts/review.txt
Tip

简单的选择标准:如果 Claude 还应该是「编码助手」,只是多了些额外规则,用 --append-*。如果 Claude 要变成完全不同的角色,用 --system-prompt 替换。替换会删除默认的工具指导和安全指令,你需要自己负责。

脚本化使用模式

把上面这些标志组合起来,就能在脚本里灵活使用 Claude Code。

模式一:一次性查询

# 简单问答
claude -p "what does this project do?"

# 带模型和输出格式
claude -p --model sonnet --output-format json "list all TODOs" | jq '.result'

模式二:管道处理

# 分析 git diff
git diff main..feature | claude -p "review this diff for bugs"

# 分析错误日志
cat error.log | claude -p "what's causing these errors?"

# 分析命令输出
npm test 2>&1 | claude -p "which tests failed and why?"

模式三:CI/CD 集成

# 用长期令牌认证
claude auth login --email you@example.com

# 在 CI 里跑代码审查
claude -p --output-format json \
  --max-turns 5 \
  --max-budget-usd 2.00 \
  "review the changes in this PR" | jq '.result'

# 用结构化输出
claude -p --json-schema '{
  "type": "object",
  "properties": {
    "approved": {"type": "boolean"},
    "issues": {"type": "array", "items": {"type": "string"}}
  }
}' "check if this code is safe to merge"

模式四:后台任务

# 后台跑一个调查任务
claude --bg "investigate the flaky test in CI"

# 查看后台会话
claude agents

# 查看某个会话的输出
claude logs <session-id>

标志组合速查

日常最常用的标志组合:

# 交互模式 + 指定模型
claude --model opus

# 打印模式 + JSON 输出
claude -p --output-format json "query"

# 打印模式 + 继续上次
claude -c -p "check for type errors"

# 后台 + worktree
claude --bg -w feature-auth "implement the auth module"

# 安全模式排查问题
claude --safe-mode

# 裸模式加速脚本
claude --bare -p "query"
Tip

claude --help 不会列出所有标志,标志在帮助里看不到不代表不可用。遇到不确定的,直接试就行,Claude Code 会告诉你参数对不对。