第二章:Claude Code CLI 入门

Claude Code 是 Anthropic 官方推出的命令行 AI 编程助手,直接在终端中运行,能够读写文件、执行命令、理解整个代码库。本章介绍从零安装到完成第一个任务的完整流程。

2.1 安装与配置

前置要求

  • Node.js 18 或更高版本
  • npm 或 yarn 包管理器
  • Anthropic API Key(或通过 Claude.ai 订阅授权)

安装

bash
npm install -g @anthropic-ai/claude-code

配置 API Key

有两种方式提供认证:

bash
# 方式一:环境变量(推荐)
export ANTHROPIC_API_KEY="sk-ant-..."

# 写入 shell 配置文件永久生效
echo 'export ANTHROPIC_API_KEY="sk-ant-..."' >> ~/.zshrc

# 方式二:首次运行时交互式登录(适合个人订阅用户)
claude
⚠️
安全提示

不要将 API Key 硬编码到代码中或提交到 Git 仓库。建议使用 .env 文件并将其加入 .gitignore

验证安装

bash
claude --version
# claude 1.x.x

claude --help

2.2 三种使用模式

模式一:交互式 REPL

最常用的模式。直接在终端开启会话,支持多轮对话,Claude 可访问当前目录的所有文件。

bash
# 在项目目录下启动
cd my-project
claude

# 进入交互界面后直接输入任务
> 帮我分析 src/api/auth.ts 中的安全问题

模式二:单次 -p 命令

适合脚本自动化、一次性任务。通过 -p(print)参数传入 prompt,执行完毕后退出。

bash
# 执行单次任务
claude -p "列出 src 目录下所有超过 200 行的文件"

# 输出为 JSON 格式(便于脚本解析)
claude -p "统计项目中各语言的文件数量" --output-format json

# 指定工作目录
claude -p "生成项目的 README" --cwd /path/to/project

模式三:管道输入

通过标准输入传递内容,适合处理文件内容或命令输出。

bash
# 分析文件内容
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 精细配置权限

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 与 Esc 的区别

Ctrl+C 会立即终止正在执行的工具调用(如正在运行的 Bash 命令);Esc 是"软中断",Claude 会完成当前工具调用后停止继续,适合在不想丢失已完成工作的情况下叫停。

2.5 第一个任务:Hello World

通过一个完整的上手实验,体验 Claude Code 的核心工作流:

创建项目目录并启动
bash
mkdir hello-claude && cd hello-claude
claude
初始化 Node.js 项目

在交互界面中输入:

text
初始化一个 Node.js 项目,创建 package.json,然后创建 index.js,
内容是用 HTTP 模块启动一个服务器,监听 3000 端口,
访问根路径时返回 "Hello from Claude Code!"

Claude 会依次执行:npm init -y、创建 index.js,并展示代码内容供你确认。

运行并验证
text
运行这个服务器,然后用 curl 测试一下根路径

Claude 会执行 node index.js &,再运行 curl http://localhost:3000,你将看到响应结果。

扩展功能
text
给这个服务器添加一个 /time 路由,返回当前时间的 JSON 格式,
格式为 { "time": "2026-04-10T12:00:00Z", "timestamp": 1234567890 }

体验 Claude Code 直接修改文件并重启服务器的完整工作流。

你学到了什么

完成以上实验后,你已经掌握了 Claude Code 的核心工作流:用自然语言描述任务 → Claude 生成并执行代码 → 验证结果 → 迭代完善。接下来可以把这个流程应用到真实项目中。