【AI Coding】Claude Code 入门(二):CLI 命令行模式 — 基础命令与高效操作
·
【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 # 管理项目配置
系列目录
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)