【AI Coding】Claude Code 入门(二):CLI 命令行模式 — 基础命令与高效操作

本篇深入讲解 Claude Code 的 CLI 命令行模式,包括所有核心命令、交互技巧、管道集成和实用场景。

一、CLI 模式概述

Claude Code 的 CLI 模式是它的核心交互方式。你在终端中直接与 AI 对话,它能读写文件、执行命令、理解整个项目上下文。

# 最基本的启动方式
claude

# 指定项目目录启动
cd ~/my-project && claude

# 直接发送一个 prompt(非交互式)
claude -p "解释这段代码的作用"

二、核心 CLI 参数

2.1 启动参数速查表

claude [options] [prompt]
参数 缩写 说明 示例
--print -p 非交互模式,输出结果后退出 claude -p "写一个快排"
--continue -c 继续上次对话 claude -c
--resume -r 恢复指定会话 claude -r <session-id>
--model 指定模型 claude --model opus
--effort 思考深度级别 claude --effort high
--version -v 查看版本号 claude -v

2.2 思考深度(Effort)控制

Claude Code 支持 5 个思考深度级别,适用于不同复杂度的任务:

# 快速回答,适合简单问题
claude --effort low

# 日常编程,平衡速度和质量(推荐默认)
claude --effort medium

# 复杂逻辑,深度分析
claude --effort high

# 极度复杂问题,最大推理能力
claude --effort xhigh

# 最高级别,用于最难的问题
claude --effort max

什么时候用什么级别?

级别 适用场景 响应速度
low 简单查询、格式化、命名建议 ⚡ 最快
medium 日常编码、bug 修复、代码审查 🚀 较快
high 架构设计、复杂重构、性能优化 🧠 较慢
xhigh / max 疑难杂症、安全审计、大规模重构 🐢 最慢

2.3 模型选择

# 使用 Opus(最强推理)
claude --model opus

# 使用 Sonnet(均衡)
claude --model sonnet

# 使用 Haiku(最快)
claude --model haiku

# 使用具体模型名称
claude --model qwen3.7-max

三、交互模式详解

3.1 基本对话

启动 claude 后进入交互模式,直接用自然语言描述你的需求:

> 帮我在 src/utils 目录下创建一个 date.ts 工具文件,包含格式化和计算日期差的函数

Claude 会:
1. 创建 src/utils/date.ts
2. 写入 formatDate() 和 dateDiff() 函数
3. 自动添加类型定义和 JSDoc 注释

3.2 核心交互命令(斜杠命令)

在交互模式中,以下以 / 开头的命令非常实用:

/model              # 查看/切换当前模型
/clear              # 清空当前对话上下文
/compact            # 压缩对话历史(上下文快满时使用)
/continue           # 继续未完成的回复
/help               # 查看所有可用命令
/memory             # 管理记忆(保存重要信息供后续使用)
/permissions        # 查看和管理权限设置
/review             # 发起代码审查
/init               # 生成 CLAUDE.md 项目配置文件

3.3 文件操作

Claude Code 能直接操作文件,你只需要用自然语言描述:

> 读取 src/main.ts 的内容,找出潜在的 bug
> 在 package.json 中添加 lodash 依赖
> 删除 src/temp 目录下所有 .tmp 文件
> 把 UserService.java 中的 findUser 方法重命名为 findById
> 给所有 public 方法添加单元测试

3.4 Git 操作

Claude Code 对 Git 有深度支持:

> 查看当前所有未提交的改动,生成 commit message
> 创建一个 feature 分支并完成 PR
> 帮我把最近 3 个 commit squash 成一个
> review 一下 main 分支和我当前分支的差异

3.5 权限管理

Claude Code 执行文件写入、命令运行等操作前会请求权限确认

Claude wants to run: npm install lodash
[Allow] [Deny] [Allow All]

# 选择 Allow:本次允许
# 选择 Allow All:永久允许此类操作(写入 settings.local.json)
# 选择 Deny:拒绝执行

预配置权限(避免反复确认):

// ~/.claude/settings.local.json
{
  "permissions": {
    "allow": [
      "Bash(git *)",
      "Bash(npm *)",
      "Bash(mvn *)",
      "Bash(docker *)",
      "Edit",
      "Write"
    ]
  }
}

四、非交互模式(Pipeline 集成)

4.1 基本用法

--print 参数让 Claude Code 成为命令行工具,可以嵌入脚本和 CI/CD:

# 直接输出结果
claude -p "用 Python 写一个快速排序"

# 结合管道使用
cat src/bug.py | claude -p "这段代码有什么 bug?"

# 代码审查
git diff | claude -p "review 这些改动,找出潜在问题"

# 生成 commit message
git diff --staged | claude -p "为这些改动生成一个简洁的 commit message"

4.2 输出格式控制

# 指定输出格式为 JSON
claude -p "列出项目中所有 TODO 注释" --output-format json

# 流式输出(实时显示)
claude -p "分析这个大型项目" --output-format stream-json

4.3 实用脚本场景

场景一:批量代码审查

#!/bin/bash
# review-all.sh - 审查所有未合并的 PR
for pr in $(gh pr list --state open --json number -q '.[].number'); do
  echo "=== PR #$pr ==="
  gh pr diff $pr | claude -p "审查这个 PR,只列出严重问题" --effort medium
done

场景二:自动生成文档

#!/bin/bash
# gen-docs.sh - 为所有 Java 类生成 Javadoc
find src/main/java -name "*.java" | while read file; do
  claude -p "为 $file 中的所有 public 方法生成 Javadoc,写入文件" \
    --effort medium
done

场景三:CI 集成

# .github/workflows/ai-review.yml
- name: AI Code Review
  run: |
    git diff origin/main...HEAD | \
    claude -p "审查这些改动,输出 markdown 格式的 review 报告" \
    > review-report.md

五、高级功能

5.1 多目录工作

# 允许 Claude 访问项目之外的目录
claude --add-dir ~/shared-lib ~/config-repo

# 在 Claude 中:
> 读取 ~/shared-lib 中的公共组件,在我的项目中复用

5.2 自定义系统提示

# 追加系统提示(覆盖默认行为)
claude --append-system-prompt "你是一名资深 Java 架构师,回答要简洁专业"

# 完全替换系统提示
claude --system-prompt "你是一个代码审查专家,只关注安全漏洞和性能问题"

5.3 自定义 Agent

# 定义多个角色
claude --agents '{
  "reviewer": {
    "description": "代码审查员",
    "prompt": "你是一名严格的代码审查员,关注代码质量和最佳实践"
  },
  "architect": {
    "description": "架构师",
    "prompt": "你是一名系统架构师,关注整体设计和可扩展性"
  }
}'

# 在交互模式中切换
> /agent reviewer
> 审查 src/service/UserService.java

5.4 MCP Server 集成

MCP(Model Context Protocol)让 Claude Code 连接外部工具:

# 查看已配置的 MCP Server
claude mcp list

# 添加 MCP Server
claude mcp add --transport stdio my-server -- node my-server.js

# 使用 MCP 工具(自动发现,直接在对话中使用)
> 打开浏览器访问 localhost:3000,截图并分析页面布局

5.5 Worktree 隔离开发

# 创建独立的 Git worktree 进行开发
claude --worktree feature-login

# Claude 在隔离的 worktree 中工作,不影响主分支
# 完成后可以 merge 或丢弃

5.6 会话管理

# 列出所有历史会话
claude -r

# 恢复特定会话
claude -r <session-id>

# 继续最近一次对话
claude -c

# 创建新的命名会话
claude --session-id $(uuidgen)

六、实用技巧汇总

6.1 快捷键

快捷键 功能
Enter 发送当前输入
Shift+Enter 换行(多行输入)
Ctrl+C 中断当前操作
Esc × 2 退出 Claude Code
Ctrl+L 清屏

6.2 上下文管理技巧

# 对话太长时,压缩历史
/compact

# 完全重置上下文
/clear

# 查看当前 token 使用情况
/status

# 保存重要信息到记忆(跨会话保留)
/memory add "本项目使用 Java 17 + Spring Boot 3.2 + MySQL 8.0"

6.3 高效 Prompt 模板

# 功能开发
> 在 src/service 中创建一个 OrderService,包含创建订单、查询订单、取消订单三个方法,
  使用 @Transactional 注解,参考现有的 UserService 的风格

# Bug 修复
> src/utils/parser.ts 在解析包含中文的 JSON 时会报错,帮我找出原因并修复

# 代码重构
> src/controller/UserController.java 太长了(800行),帮我按职责拆分成多个 Controller

# 测试生成
> 为 src/service/PaymentService.java 生成完整的单元测试,覆盖正常流程和异常流程

# 性能优化
> 分析 src/repository/OrderRepository.java 中的 N+1 查询问题,优化 SQL

七、常见命令速查

# 启动和基础操作
claude                    # 启动交互会话
claude -c                 # 继续上次对话
claude -p "问题"          # 一次性问答
claude --model opus       # 使用最强模型
claude --effort high      # 深度思考模式

# 会话管理
claude -r                 # 恢复历史会话
claude -r <id>            # 恢复指定会话

# 子命令
claude doctor             # 检查安装健康状态
claude update             # 更新到最新版本
claude mcp                # 管理 MCP Server
claude plugin             # 管理插件
claude auth               # 管理认证
claude project            # 管理项目配置

系列目录

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐