第二章:Claude Code CLI 入门
Claude Code 是 Anthropic 官方推出的命令行 AI 编程助手,直接在终端中运行,能够读写文件、执行命令、理解整个代码库。本章介绍从零安装到完成第一个任务的完整流程。
2.1 安装与配置
前置要求
- Node.js 18 或更高版本
- npm 或 yarn 包管理器
- Anthropic API Key(或通过 Claude.ai 订阅授权)
安装
npm install -g @anthropic-ai/claude-code
配置 API Key
有两种方式提供认证:
# 方式一:环境变量(推荐)
export ANTHROPIC_API_KEY="sk-ant-..."
# 写入 shell 配置文件永久生效
echo 'export ANTHROPIC_API_KEY="sk-ant-..."' >> ~/.zshrc
# 方式二:首次运行时交互式登录(适合个人订阅用户)
claude
不要将 API Key 硬编码到代码中或提交到 Git 仓库。建议使用 .env 文件并将其加入 .gitignore。
验证安装
claude --version
# claude 1.x.x
claude --help
2.2 三种使用模式
模式一:交互式 REPL
最常用的模式。直接在终端开启会话,支持多轮对话,Claude 可访问当前目录的所有文件。
# 在项目目录下启动
cd my-project
claude
# 进入交互界面后直接输入任务
> 帮我分析 src/api/auth.ts 中的安全问题
模式二:单次 -p 命令
适合脚本自动化、一次性任务。通过 -p(print)参数传入 prompt,执行完毕后退出。
# 执行单次任务
claude -p "列出 src 目录下所有超过 200 行的文件"
# 输出为 JSON 格式(便于脚本解析)
claude -p "统计项目中各语言的文件数量" --output-format json
# 指定工作目录
claude -p "生成项目的 README" --cwd /path/to/project
模式三:管道输入
通过标准输入传递内容,适合处理文件内容或命令输出。
# 分析文件内容
cat error.log | claude -p "分析这些错误日志,找出根本原因"
# 代码审查
git diff HEAD~1 | claude -p "审查这次提交的代码变更"
# 组合使用
cat package.json | claude -p "基于这个 package.json 生成项目的技术栈说明文档"
| 模式 | 适用场景 | 是否保持上下文 |
|---|---|---|
| 交互式 REPL | 日常开发、多轮对话 | ✅ 是 |
| 单次 -p 命令 | 脚本自动化、CI/CD | ❌ 否 |
| 管道输入 | 处理文件/命令输出 | ❌ 否 |
2.3 权限模式
Claude Code 在执行写文件、运行命令等操作时会请求用户确认。可通过权限模式控制确认频率:
| 模式 | 启动方式 | 行为 | 适用场景 |
|---|---|---|---|
| default | claude |
每次危险操作前询问确认 | 日常使用(推荐) |
| auto-approve | claude --dangerously-skip-permissions |
自动批准所有操作,不询问 | 受信任的自动化脚本 |
| manual | settings.json 配置 | 精细控制每类工具的权限 | 生产环境、敏感项目 |
通过 settings.json 精细配置权限
{
"permissions": {
"allow": [
"Read(**)",
"Write(src/**)",
"Bash(npm run *)",
"Bash(git status)",
"Bash(git diff *)"
],
"deny": [
"Bash(rm -rf *)",
"Bash(git push *)"
]
}
}
在项目 .claude/settings.json 中配置仅限该项目的权限,在 ~/.claude/settings.json 中配置全局默认权限。项目级配置优先级更高,可覆盖全局配置。
2.4 快捷键速查
在交互式 REPL 模式下,以下快捷键可显著提升操作效率:
| 快捷键 | 功能 |
|---|---|
| Enter | 发送当前消息 |
| Shift + Enter | 消息内换行(多行输入) |
| ↑ / ↓ | 浏览历史消息 |
| Ctrl + C | 中断当前生成 / 取消操作 |
| Ctrl + C × 2 | 退出 Claude Code |
| Esc | 软中断(保留上下文,取消当前步骤) |
| Esc × 2 | 编辑上一条消息 |
| Ctrl + R | 搜索历史命令 |
| Ctrl + L | 清屏(不清除上下文) |
| Tab | 自动补全文件路径 |
Ctrl+C 会立即终止正在执行的工具调用(如正在运行的 Bash 命令);Esc 是"软中断",Claude 会完成当前工具调用后停止继续,适合在不想丢失已完成工作的情况下叫停。
2.5 第一个任务:Hello World
通过一个完整的上手实验,体验 Claude Code 的核心工作流:
mkdir hello-claude && cd hello-claude
claude
在交互界面中输入:
初始化一个 Node.js 项目,创建 package.json,然后创建 index.js,
内容是用 HTTP 模块启动一个服务器,监听 3000 端口,
访问根路径时返回 "Hello from Claude Code!"
Claude 会依次执行:npm init -y、创建 index.js,并展示代码内容供你确认。
运行这个服务器,然后用 curl 测试一下根路径
Claude 会执行 node index.js &,再运行 curl http://localhost:3000,你将看到响应结果。
给这个服务器添加一个 /time 路由,返回当前时间的 JSON 格式,
格式为 { "time": "2026-04-10T12:00:00Z", "timestamp": 1234567890 }
体验 Claude Code 直接修改文件并重启服务器的完整工作流。
完成以上实验后,你已经掌握了 Claude Code 的核心工作流:用自然语言描述任务 → Claude 生成并执行代码 → 验证结果 → 迭代完善。接下来可以把这个流程应用到真实项目中。