学习目标:从完全不了解Claude Code到独立完成安装、认证、配置,并构建第一个可运行的AI辅助编程项目。 适用人群:零基础开发者、从其他AI工具转过来的程序员、想系统入门Claude Code的技术人员。 预计用时:60-90分钟(含环境安装)。
Claude Code是Anthropic官方推出的终端AI编程代理。它不是一个IDE插件,不是一个网页聊天框,而是一个直接运行在你的终端里、能读写你本地文件、执行Shell命令、与Git深度集成的命令行工具。
与GitHub Copilot的"行内补全"模式、Cursor的"编辑器内嵌"模式不同,Claude Code采用了Agent模式——你给出一个目标,它自主规划步骤、读取文件、编写代码、运行测试、修复错误,形成一个完整的执行闭环。
graph LR
A[你输入目标] --> B[Claude Code<br/>规划执行步骤]
B --> C[读取文件]
B --> D[编写/修改代码]
B --> E[运行命令]
B --> F[运行测试]
C --> G[检查结果]
D --> G
E --> G
F --> G
G -->|有问题| B
G -->|完成| H[交付结果]
| 维度 | GitHub Copilot | Cursor | Claude Code |
|---|---|---|---|
| 运行环境 | IDE内嵌 | 独立IDE | 终端CLI |
| 交互方式 | 行内补全/聊天 | 聊天/内联编辑 | 对话式Agent |
| 文件操作 | 受限 | 中等 | 完全读写 |
| Shell执行 | 不支持 | 受限 | 完整支持 |
| Git集成 | 基础 | 中等 | 深度(自动commit/diff) |
| 自定义能力 | 有限 | 中等 | 极强(CLAUDE.md/Skills/MCP) |
| 学习曲线 | 低 | 中 | 中高(但上限极高) |
一句话总结:如果你需要一个"坐在你旁边、能直接操作电脑的AI程序员",Claude Code就是目前最接近这个概念的工具。
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | macOS 12+、Ubuntu 20.04+、Windows 10+ (WSL2) | macOS 14+、Ubuntu 22.04+ |
| Node.js | v18.0+ | v20 LTS |
| 内存 | 4GB RAM | 8GB+ RAM |
| 网络 | 稳定的互联网连接 | 低延迟连接 |
| Git | 2.0+ | 最新版 |
macOS(推荐用Homebrew):
# 安装Homebrew(如果没有)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装Node.js
brew install node
# 验证安装
node --version # 应输出 v20.x.x 或更高
npm --version # 应输出 10.x.x 或更高
Linux(Ubuntu/Debian):
# 使用NodeSource安装Node.js 20 LTS
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
# 验证
node --version
npm --version
Windows(必须通过WSL2):
# 在PowerShell(管理员)中安装WSL2
wsl --install
# 重启后,打开WSL终端(Ubuntu),然后执行Linux安装步骤
Windows用户注意:Claude Code不原生支持Windows。你必须先安装WSL2(Windows Subsystem for Linux),在WSL2的Ubuntu环境中运行Claude Code。这是目前唯一的官方方案,不要尝试在PowerShell或CMD中直接安装。
# macOS
brew install git
# Linux
sudo apt-get install git
# 验证
git --version # 应输出 git version 2.x.x
# 初始配置(必须)
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
npm install -g @anthropic-ai/claude-code
安装完成后验证:
claude --version
# 应输出类似:Claude Code v1.x.x
Claude Code支持多种认证方式,根据你的账户类型选择:
graph TD
A[开始认证] --> B{你有哪种账户?}
B -->|Claude Pro/Max订阅| C[OAuth登录<br/>claude login]
B -->|Anthropic API Key| D[环境变量<br/>ANTHROPIC_API_KEY]
B -->|企业账户| E[SSO/Azure/Bedrock]
C --> F[✅ 可以开始使用]
D --> F
E --> F
claude login
执行后会打开浏览器,登录你的Claude账户并授权。完成后终端显示认证成功。
# 1. 在 console.anthropic.com 创建API Key
# 2. 设置环境变量
# macOS/Linux(临时)
export ANTHROPIC_API_KEY="sk-ant-api03-xxxxx"
# macOS/Linux(永久,写入shell配置文件)
echo 'export ANTHROPIC_API_KEY="sk-ant-api03-xxxxx"' >> ~/.zshrc
source ~/.zshrc
# 验证
claude --version
.gitignore,永远不要提交到代码仓库# Azure OpenAI
export CLAUDE_CODE_USE_BEDROCKETC=1
# AWS Bedrock
export CLAUDE_CODE_USE_BEDROCK=1
# 具体配置参考企业内部文档
# 创建一个测试目录
mkdir ~/claude-hello && cd ~/claude-hello
# 初始化Git(强烈推荐)
git init
# 启动Claude Code
claude
你将看到Claude Code的交互式界面:
╭──────────────────────────────────────╮
│ Claude Code │
│ Model: claude-sonnet-4-6-20250514 │
│ Context: /home/user/claude-hello │
╰──────────────────────────────────────╯
>
在 > 提示符下输入你的第一条指令:
> 你好,请简单介绍你自己,并告诉我你能做什么
如果Claude正常回复,恭喜你——安装成功!
输入 /exit 或按 Ctrl+C 退出。
graph TB
subgraph "交互模式(Interactive)"
A1[输入 claude] --> A2[进入REPL对话]
A2 --> A3[多轮连续对话]
A3 --> A4[上下文保持]
end
subgraph "单次模式(One-shot)"
B1[claude -p '任务描述'] --> B2[执行一次]
B2 --> B3[输出结果并退出]
end
交互模式(日常使用主力):
cd your-project
claude
# 进入交互式对话
单次模式(脚本/自动化用):
claude -p "列出当前目录下所有TypeScript文件并统计代码行数"
在交互模式中,以下命令用 / 开头,是Claude Code的内置快捷操作:
| 命令 | 功能 | 使用频率 |
|---|---|---|
/help |
查看所有可用命令 | 首次必用 |
/init |
自动生成CLAUDE.md项目说明文件 | 每个项目一次 |
/compact |
压缩对话上下文,释放token空间 | 经常用 |
/clear |
清空当前对话历史 | 中等 |
/model |
切换模型(Sonnet/Opus/Haiku) | 按需 |
/permissions |
管理工具权限 | 按需 |
/cost |
查看本次会话的token消耗 | 定期查看 |
/review |
让Claude审查代码变更 | 提交前用 |
/bug |
提交Bug报告 | 偶尔 |
/exit |
退出Claude Code | 结束时 |
| 快捷键 | 功能 |
|---|---|
Enter |
发送消息(在普通模式下) |
Shift+Enter |
换行(不发送) |
Ctrl+C |
中断当前操作/退出 |
Escape |
取消当前输入/取消工具调用确认 |
↑/↓ |
浏览历史输入 |
Tab |
自动补全文件路径 |
Claude Code每次执行写操作(修改文件、运行Shell命令)前都会征求你的确认。这是它的核心安全机制。
┌─ Claude wants to edit src/index.ts ─────────────────────┐
│ │
│ + import express from 'express'; │
│ + const app = express(); │
│ │
│ Allow? (y/n/always) │
└──────────────────────────────────────────────────────────┘
你可以选择: - y:允许这一次 - n:拒绝 - always:对此类操作永远允许(加入信任列表)
新手建议:初期每个操作都手动确认(按y/n),这样能理解Claude Code在做什么。熟练后可以用
/permissions或settings.json配置信任规则。
CLAUDE.md是Claude Code最核心的配置机制。它就像一份给AI看的项目README,每次启动Claude Code时自动加载。
cd your-project
claude
在Claude Code交互界面中输入:
> /init
Claude会自动扫描你的项目结构,生成一份初始的 CLAUDE.md 文件。内容通常包括:
- 项目描述
- 技术栈
- 目录结构说明
- 构建和测试命令
- 代码风格约定
如果你刚开始一个全新项目,可以手动创建:
# CLAUDE.md
## 项目概述
一个使用Express.js + TypeScript构建的RESTful API服务。
## 技术栈
- Runtime: Node.js 20 LTS
- Language: TypeScript 5.x
- Framework: Express.js 4.x
- Database: SQLite (开发环境)
- Testing: Vitest
## 常用命令
- `npm run dev` — 启动开发服务器
- `npm run build` — 编译TypeScript
- `npm test` — 运行测试
- `npm run lint` — 代码检查
## 代码风格
- 使用ESLint + Prettier
- 缩进:2空格
- 命名:camelCase(变量/函数),PascalCase(类/接口)
- 注释:英文注释
## 目录结构
- `src/` — 源代码
- `src/routes/` — 路由定义
- `src/models/` — 数据模型
- `src/middleware/` — 中间件
- `tests/` — 测试文件
## 重要规则
- 所有新代码必须有对应的测试
- API端点必须包含输入验证
- 错误处理使用统一的中介层
- 不要使用any类型
graph TD
A["~/.claude/CLAUDE.md<br/>(全局,所有项目生效)"] --> B["项目根目录/CLAUDE.md<br/>(项目级,核心)"]
B --> C["子目录/CLAUDE.md<br/>(目录级,局部覆盖)"]
style A fill:#e8f4fd,stroke:#2196F3
style B fill:#fff3e0,stroke:#FF9800
style C fill:#e8f5e9,stroke:#4CAF50
~/.claude/CLAUDE.md):放你个人的通用偏好,比如"默认用中文回复"现在让我们用Claude Code从零开始构建一个完整的Express.js RESTful API项目。这个项目包含CRUD操作、数据验证和测试。
# 创建项目目录
mkdir ~/task-api && cd ~/task-api
# 初始化Git
git init
# 初始化Node.js项目
npm init -y
启动Claude Code:
claude
在Claude Code交互界面中输入:
> /init
Claude会分析当前项目(此时只有package.json),生成一份基础CLAUDE.md。
然后输入你的开发需求:
> 我想用Express.js + TypeScript构建一个任务管理API。
> 功能包括:
> 1. 创建任务(POST /tasks)
> 2. 获取所有任务(GET /tasks)
> 3. 获取单个任务(GET /tasks/:id)
> 4. 更新任务(PUT /tasks/:id)
> 5. 删除任务(DELETE /tasks/:id)
>
> 技术要求:
> - TypeScript
> - Express.js
> - 内存存储(使用Map)
> - 输入验证
> - 错误处理中间件
> - Vitest测试
>
> 请先安装依赖,然后创建项目结构。
Claude Code会依次执行以下操作(每步需要你确认):
Step 1: 安装依赖
$ npm install express
$ npm install -D typescript @types/express @types/node vitest tsx
Step 2: 创建目录结构
src/
├── index.ts # 入口文件
├── routes/
│ └── tasks.ts # 任务路由
├── models/
│ └── task.ts # 任务模型
├── middleware/
│ └── errorHandler.ts # 错误处理
└── types/
└── index.ts # 类型定义
Step 3: 编写代码文件
Step 4: 创建测试文件
Step 5: 更新package.json scripts
你会看到Claude Code逐个请求权限来创建文件、安装依赖。每个操作都有diff展示,你可以审查后按 y 确认。
以下是Claude Code可能会生成的核心文件:
src/types/index.ts:
export interface Task {
id: string;
title: string;
description?: string;
completed: boolean;
createdAt: Date;
updatedAt: Date;
}
export interface CreateTaskInput {
title: string;
description?: string;
}
export interface UpdateTaskInput {
title?: string;
description?: string;
completed?: boolean;
}
src/models/task.ts:
import { Task, CreateTaskInput, UpdateTaskInput } from '../types';
const tasks = new Map<string, Task>();
export function findAll(): Task[] {
return Array.from(tasks.values());
}
export function findById(id: string): Task | undefined {
return tasks.get(id);
}
export function create(input: CreateTaskInput): Task {
const task: Task = {
id: crypto.randomUUID(),
title: input.title,
description: input.description,
completed: false,
createdAt: new Date(),
updatedAt: new Date(),
};
tasks.set(task.id, task);
return task;
}
export function update(id: string, input: UpdateTaskInput): Task | undefined {
const task = tasks.get(id);
if (!task) return undefined;
Object.assign(task, { ...input, updatedAt: new Date() });
return task;
}
export function remove(id: string): boolean {
return tasks.delete(id);
}
Claude Code生成的代码通常包含完整的测试。继续在对话中输入:
> 请运行测试,确保所有测试通过
Claude Code会执行:
npm test
预期输出类似:
✓ models/task > create > 应该创建新任务
✓ models/task > findAll > 应该返回所有任务
✓ models/task > findById > 应该根据ID查找任务
✓ models/task > update > 应该更新任务属性
✓ models/task > remove > 应该删除任务
Test Files 1 passed (1)
Tests 5 passed (5)
然后启动开发服务器:
> 请启动开发服务器,并测试所有API端点
Claude Code会运行 npm run dev 并用 curl 测试各个端点。
> 请帮我提交这次的代码,commit message用中文
Claude Code会:
1. 运行 git status 查看变更
2. 运行 git diff 审查内容
3. 执行 git add 和 git commit
Claude Code最大的优势是迭代式开发。你可以继续提出新需求:
> 请给任务添加优先级字段(high/medium/low),
> 并添加按优先级筛选的查询参数 ?priority=high
Claude Code会: 1. 修改类型定义,添加priority字段 2. 修改创建逻辑,接受priority参数 3. 修改查询逻辑,支持筛选 4. 添加新测试 5. 运行测试验证
每次只需要你确认操作,Claude Code完成所有编码工作。
| 方式 | 月费 | 适用场景 | 预算可控性 |
|---|---|---|---|
| Claude Pro | $20/月 | 轻度使用,学习阶段 | 固定费用 |
| Claude Max | $100-200/月 | 日常开发主力 | 固定费用 |
| API Key | 按token计费 | 重度/自动化使用 | 需主动监控 |
技巧一:使用 /compact 压缩上下文
> /compact
当对话变长时,上下文token消耗会急剧增加。每完成一个大任务后执行 /compact,Claude会将历史对话压缩为摘要,大幅减少token消耗。
技巧二:合理选择模型
> /model
技巧三:用CLAUDE.md减少重复解释
把项目规范写进CLAUDE.md,避免每次对话都重新描述项目背景。
技巧四:查看实时费用
> /cost
随时查看当前会话的token消耗和费用。
技巧五:设置费用上限
# 在settings.json中设置每日/每月费用上限
claude config set --global maxCostPerDay 10 # 每天最多$10
claude config set --global maxCostPerMonth 200 # 每月最多$200
| 问题 | 原因 | 解决方案 |
|---|---|---|
npm ERR! EACCES |
npm全局目录权限不足 | 使用 nvm 管理Node.js,或 sudo npm install -g |
command not found: claude |
PATH未包含npm全局目录 | 运行 npm config get prefix,将其加入PATH |
| Node版本过低 | 版本<18 | 升级Node.js:nvm install 20 && nvm use 20 |
| 问题 | 原因 | 解决方案 |
|---|---|---|
Authentication failed |
API Key无效或过期 | 检查Key是否正确,是否有多余空格 |
Rate limit exceeded |
调用频率过高 | 等待几秒后重试,或升级套餐 |
claude login浏览器未打开 |
终端环境不支持 | 手动复制终端中显示的URL到浏览器 |
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Claude响应越来越慢 | 上下文过长 | 执行 /compact 压缩上下文 |
| Claude修改了不该改的文件 | 权限过于宽松 | 用 /permissions 限制文件访问范围 |
| Claude忘记之前的指令 | 上下文溢出被截断 | 把关键规则写入CLAUDE.md |
| 工具调用被拒绝 | 权限设置过严 | 检查 .claude/settings.json 的allowedTools |
# 如果WSL中无法打开浏览器进行OAuth认证
# 使用API Key方式代替
export ANTHROPIC_API_KEY="sk-ant-api03-xxxxx"
# 如果文件系统性能差
# 把项目放在WSL原生文件系统中(~/projects/)
# 而不是Windows挂载路径(/mnt/c/)
graph TD
A[✅ 完成本教程<br/>安装+首个项目] --> B[掌握CLAUDE.md<br/>编写高质量项目说明]
B --> C[学习Slash命令<br/>/init /compact /review]
C --> D[配置Settings<br/>权限/模型/费用控制]
D --> E[创建自定义命令<br/>.claude/commands/]
E --> F[接入MCP服务器<br/>扩展工具能力]
F --> G[开发Skills<br/>构建可复用工作流]
G --> H[Agent模式<br/>-p自动化/Hooks]
style A fill:#4CAF50,color:#fff
style B fill:#4CAF50,color:#fff
style C fill:#4CAF50,color:#fff
style D fill:#FF9800,color:#fff
style E fill:#FF9800,color:#fff
style F fill:#2196F3,color:#fff
style G fill:#2196F3,color:#fff
style H fill:#9C27B0,color:#fff
本周建议练习:
1. 用Claude Code创建2-3个不同类型的项目(API、CLI工具、前端页面)
2. 尝试修改CLAUDE.md,观察Claude行为的变化
3. 练习用 /compact 管理长对话
4. 尝试让Claude Code修复一个你手动引入的Bug
推荐学习顺序: 1. 本教程(入门) → 掌握安装和基本操作 2. CLAUDE.md深入 → 学会精确控制Claude的行为 3. 自定义命令 → 把重复操作封装为Slash命令 4. MCP服务器 → 连接外部工具(数据库、API、浏览器) 5. Skills开发 → 构建可共享的自动化工作流
用一个完整的开发者日常场景串联所有知识点:
sequenceDiagram
participant D as 开发者
participant CC as Claude Code
participant F as 文件系统
participant G as Git
D->>CC: cd project && claude
CC->>F: 读取CLAUDE.md
F-->>CC: 项目规范加载完成
D->>CC: "添加用户注册API"
CC->>F: 读取现有代码
CC->>CC: 规划实现步骤
CC->>D: 请求权限:创建 src/routes/auth.ts
D->>CC: y (允许)
CC->>F: 写入文件
CC->>D: 请求权限:创建 tests/auth.test.ts
D->>CC: y (允许)
CC->>F: 写入测试文件
CC->>D: 请求权限:运行 npm test
D->>CC: y (允许)
CC->>F: 执行测试命令
F-->>CC: 5/5 测试通过
CC->>D: 完成!所有测试通过
D->>CC: "提交代码"
CC->>G: git add + git commit
G-->>CC: 提交成功
D->>CC: /cost
CC->>D: 本次会话消耗 15K tokens
D->>CC: /exit
让我们用一个更轻量的例子来巩固——创建一个命令行待办事项工具。
mkdir ~/todo-cli && cd ~/todo-cli
npm init -y
git init
claude
在Claude Code中输入:
> 请创建一个Node.js CLI待办事项工具,要求:
> 1. 使用TypeScript
> 2. 命令格式:todo add "买牛奶"、todo list、todo done 1、todo delete 1
> 3. 数据存储在 ~/.todo.json
> 4. 支持彩色终端输出
> 5. 安装所有依赖并确保可以运行
Claude Code会自动:
1. 安装 commander、chalk、typescript 等依赖
2. 创建 src/index.ts 入口文件
3. 创建命令处理模块
4. 配置 package.json 的 bin 字段
5. 运行 npm link 让 todo 命令全局可用
完成后你可以直接在终端中使用:
todo add "学习Claude Code"
todo add "写一篇教程"
todo list
# 输出:
# 1. ☐ 学习Claude Code
# 2. ☐ 写一篇教程
todo done 1
todo list
# 输出:
# 1. ✅ 学习Claude Code
# 2. ☐ 写一篇教程
整个过程你只需要审查并确认Claude Code的操作——从零到一个可用的CLI工具,大约5分钟。
| 训练营类型 | 适配度 | 建议时长 | 说明 |
|---|---|---|---|
| 企业新员工入职 | ★★★★★ | 2小时 | 含实操环节,帮助新团队统一工具链 |
| AI编程入门班 | ★★★★★ | 3小时 | 从安装到首个项目,系统覆盖基础 |
| 在校生技能培训 | ★★★★☆ | 2-3小时 | 需提前安装Node.js环境 |
| 高级开发者快速上手 | ★★★☆☆ | 1小时 | 重点讲解Agent模式和权限配置 |
| 线上自学课程 | ★★★★★ | 自定进度 | 可拆分为6个15分钟的章节 |
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
