⚡精通 Claude 第 10 课:CLI 完全参考

Claude Code CLI 不只是一个对话工具,它是你的瑞士军刀。本文覆盖所有核心命令、标志位(flags)的实际用法,以及 7 个真实工作流场景。学完能把它融入你的日常开发、CI/CD、和自动化脚本。

先搞懂架构

CLI 是 Claude Code 的核心入口,理解它的架构能帮你选对模式:

scss 复制代码
用户终端 → Claude Code CLI → API → 输出
                  ↓
         ┌────────┼────────┐
         ↓        ↓        ↓
      交互模式   打印模式   会话恢复
      (REPL)   (单次查询)  (继续对话)

三种运行模式:

模式 命令 特点
交互模式 claude 多轮对话、Tab 补全、历史记录、Slash Commands
打印模式 claude -p "query" 单次查询、脚本化、管道输入
会话恢复 claude -c-r <name> 继续之前的对话

选错了模式,你可能会在脚本里等一个交互提示------别问我怎么知道的。


核心命令速查

bash 复制代码
# 交互模式
claude                              # 启动
claude "解释这个项目"                  # 启动并带初始提示

# 打印模式
claude -p "查询"                      # 单次查询后退出
cat file.log | claude -p "分析这个"    # 管道输入

# 会话管理
claude -c                            # 继续上一个对话
claude -r "feature-auth" "继续实现"   # 恢复指定会话
claude --from-pr 42                  # 恢复关联某 PR 的会话

# 工具
claude update                        # 更新版本
claude mcp                           # 管理 MCP 服务器
claude mcp serve                     # 把 Claude 作为 MCP 服务器运行
claude agents                        # 列出所有子代理
claude auth login                    # 登录(支持 --sso)

标志位分类解析

模型选择

bash 复制代码
# 直接指定模型
claude --model opus "复杂任务"        # Opus 4.6,最强推理
claude --model sonnet "实现功能"      # 平衡速度和能力
claude --model haiku -p "格式化JSON"  # 快速任务

# 带备用模型(防止过载)
claude -p --model opus --fallback-model sonnet "分析架构"

# Opus 专属:思考努力程度
claude --effort high "架构评审"
# 可选值:low、medium、high、max
模型 上下文 适合场景
Opus 4.6 1M tokens 复杂分析、架构设计
Sonnet 4.6 1M tokens 日常开发
Haiku 4.5 1M tokens 简单格式化、快速查询

权限控制

这是 Claude Code 最实用的部分之一,熟练后能大幅减少交互提示:

bash 复制代码
# 只读模式 - 安全审计
claude --permission-mode plan --tools "Read,Grep,Glob" "审计安全漏洞"

# 限制可用工具
claude --tools "Read,Grep,Glob" -p "找所有 TODO"

# 白名单特定命令(不提示直接执行)
claude --allowedTools "Bash(git status:*)" "Bash(git log:*)" "继续"

# 黑名单危险操作
claude --disallowedTools "Bash(rm:*)" "Bash(git push --force:*)" "清理项目"

# 完全跳过权限检查(CI 环境谨慎使用)
claude --dangerously-skip-permissions "自动化任务"

权限模式选项:

模式 行为
plan 只读,不执行任何操作
auto 自动批准安全操作(需 --enable-auto-mode
ask 每次都询问(默认)

输出格式

bash 复制代码
# 纯文本(默认)
claude -p "解释这段代码"

# JSON - 便于程序处理
claude -p --output-format json "列出所有函数"

# 流式 JSON - 实时处理长输出
claude -p --output-format stream-json "生成报告"

# 带 Schema 验证的 JSON
claude -p --json-schema '{
  "type": "object",
  "properties": {
    "bugs": {"type": "array"}
  }
}' "找 bug"

结合 jq 使用:

bash 复制代码
# 提取特定字段
claude -p --output-format json "分析代码" | jq '.result'

# 过滤高严重性问题
claude -p --output-format json "列出安全问题" | jq -r '.issues[] | select(.severity=="high")'

# 条件判断
claude -p --output-format json "检查安全性" | jq 'if .secure then "SAFE" else "UNSAFE" end'

系统提示词

bash 复制代码
# 完全替换默认提示
claude --system-prompt "你是安全专家,专注于漏洞检测" "审计代码"

# 追加到默认提示(推荐)
claude --append-system-prompt "始终包含单元测试" "实现登录功能"

# 从文件加载(仅打印模式)
claude -p --system-prompt-file ./prompts/reviewer.txt "审查 PR"

会话管理

bash 复制代码
# 继续上一个会话
claude -c

# 恢复指定会话
claude -r "auth-refactor" "继续实现"

# 分叉会话 - 尝试另一种方案不丢失原对话
claude --resume auth-refactor --fork-session "试试 OAuth 方案"

# 指定会话 ID(UUID)
claude --session-id "550e8400-..." "继续"

工作目录

bash 复制代码
# 添加额外工作目录
claude --add-dir ../frontend ../backend "跨项目分析"

# 加载自定义设置
claude --settings ./config.json "复杂任务"

# 最小化模式(跳过所有 hooks、skills、插件)
claude --bare "快速查询"

实战案例

1. CI/CD 自动化代码审查

GitHub Actions 配置:

yaml 复制代码
name: AI Code Review

on: [pull_request]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code
      - name: Run Review
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          claude -p --output-format json \
            --max-turns 1 \
            "审查此 PR 的安全漏洞、性能问题、代码质量,输出 JSON 格式的 issues 数组" \
            > review.json

关键标志位组合:

  • --max-turns 1 限制执行轮次
  • --output-format json 结构化输出便于后续处理
  • 配合 Actions 的 secrets 管理 API Key

2. 日志分析自动化

bash 复制代码
# 实时分析错误日志
tail -1000 /var/log/app/error.log | claude -p "总结错误并建议修复方案"

# 发现可疑访问模式
cat access.log | claude -p "识别异常访问模式"

# Git 活动摘要
git log --oneline -50 | claude -p "总结近期开发活动"

管道模式让 CLI 成为日志处理管道的一环。


3. 批量代码处理

bash 复制代码
# 批量生成测试
for module in $(ls src/modules/); do
  claude -p "为 src/modules/$module 生成单元测试" > "tests/$module.test.ts"
done

# 批量代码审查
find src -name "*.py" -exec sh -c '
  echo "## $1" >> review.md
  cat "$1" | claude -p "简短代码审查" >> review.md
' _ {} \;

# 项目全面分析
for file in src/*.ts; do
  echo "=== $file ===" >> analysis.md
  claude -p --model haiku "总结此文件功能" >> analysis.md
done

haiku 模型速度快、成本低,适合批量处理简单任务。


4. 多会话并行开发

bash 复制代码
# 开启功能分支会话
claude -n "feature-auth" "实现用户认证功能"

# 在另一个终端继续其他功能
claude -n "feature-payments" "集成 Stripe 支付"

# 需要对比方案时,分叉会话
claude --resume feature-auth --fork-session "尝试 OAuth 方案"

# 随时切换
claude -r "feature-auth" "添加密码重置"

5. 安全审计工作流

bash 复制代码
# 只读模式审计
claude --permission-mode plan \
  --tools "Read,Grep,Glob" \
  "全面审计此代码库的安全漏洞"

# 禁止危险命令
claude --disallowedTools "Bash(rm:*)" "Bash(curl:*)" "Bash(wget:*)" \
  "清理并整理代码"

# 限制 Token 消耗
claude -p --max-budget-usd 2.00 "查找硬编码密钥"

6. 管道集成 JSON API

bash 复制代码
# 获取结构化分析结果
RESULT=$(claude -p --output-format json "返回 {secure: boolean, issues: []}" < code.py)

# 判断是否安全
if echo "$RESULT" | jq -e '.secure == false' > /dev/null; then
  echo "发现安全问题:"
  echo "$RESULT" | jq '.issues[]'
fi

7. 自定义子代理配置

bash 复制代码
# 定义临时代理
claude --agents '{
  "security-auditor": {
    "description": "安全审计专家",
    "prompt": "你是一个安全专家,专注于发现漏洞和提出修复建议。",
    "model": "opus"
  }
}' "审计 auth 模块"

保存为配置文件 ~/.claude/agents.json 后可以长期使用。


常见问题排查

问题 原因 解决方案
command not found 未安装或 PATH 问题 npm install -g @anthropic-ai/claude-code
认证失败 API Key 无效 export ANTHROPIC_API_KEY=your-key
会话找不到 会话过期或名称错误 claude -c 继续最近会话
JSON 输出格式错乱 没用 --output-format json 明确指定输出格式
权限一直弹窗 工具被限制 检查 --allowedTools 配置

环境变量速查

需要持久化配置时用到:

bash 复制代码
export ANTHROPIC_API_KEY=sk-...          # 认证
export ANTHROPIC_MODEL=opus              # 默认模型
export MAX_THINKING_TOKENS=20000         # 扩展思考预算
export CLAUDE_CODE_EFFORT_LEVEL=high     # 思考努力度
export CLAUDE_CODE_SIMPLE=1              # 最小化模式(同 --bare)
export CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 # 禁用自动 CLAUDE.md 更新

标志位组合速查表

场景 命令
快速单次查询 claude -p "问题"
管道处理 `cat file
限制执行轮次 claude -p --max-turns 3 "任务"
JSON 输出 claude -p --output-format json "查询"
安全审计 claude --permission-mode plan --tools "Read,Grep"
限制预算 claude -p --max-budget-usd 2.00 "任务"
多目录协作 claude --add-dir ../lib "分析"
自定义模型 claude --model opus --effort high "复杂任务"

延伸阅读


学完这一课,CLI 应该成为你日常工具箱的一部分了。下一步试试把这些命令融入你的 shell 脚本或 CI/CD pipeline,有问题随时交流。

相关推荐
youmiyoumiyoumi1 小时前
# 微信机器人客服系统搭建:从人工到智能的客服升级
人工智能
全栈人月1 小时前
如何用Obsidian搭建我的笔记框架
claude
Mr数据杨1 小时前
【CanMV K210】通信扩展 WiFi Socket TCP Client 通信
人工智能·硬件开发·canmv k210
dingzd951 小时前
Reddit验证资料测试之后跨境品牌如何提升社区运营可信度
大数据·人工智能·矩阵·新媒体运营·内容营销·跨境
JavaAgent架构师2 小时前
前端AI工程化(五):AI对话状态管理
前端·人工智能
aneasystone本尊2 小时前
给小龙虾上把锁:Sandbox 沙箱机制
人工智能
Σίσυφος19002 小时前
数据标准化(拟合的时候使用非常重要)
人工智能·算法
程序员码歌2 小时前
别再让 AI 自由发挥了:OpenSpec 才是团队协作不跑偏的关键
android·前端·人工智能
时光Autistic2 小时前
【安装教程】AI标注工具X-AnyLabeling安装配置
人工智能·python