2026 最新 Claude Code 保姆级安装配置教程,国内开发者直接可用
前言
Claude Code 是 Anthropic 官方推出的终端原生 AI 编程助手,它将大语言模型的能力深度整合到命令行环境中,为开发者提供了一种全新的编程协作方式。与传统的 IDE 插件或 Web 端 AI 工具不同,Claude Code 直接在终端中运行,能够感知整个项目的上下文,执行文件操作、运行命令、查看输出,并与开发者进行多轮交互式协作。
Claude Code 核心能力
Claude Code 不仅仅是一个代码生成工具,它具备以下核心能力:
- 全项目上下文理解 - 自动扫描项目结构,理解代码依赖关系
- 智能文件操作 - 读取、创建、修改、删除文件,支持批量重构
- 命令执行与反馈 - 在终端中运行构建、测试、调试命令,并根据输出调整策略
- 多模态交互 - 支持对话式编程、命令式指令、代码审查等多种协作模式
- 安全可控 - 所有操作都需要用户确认,可随时中断或回滚
对比传统 IDE 插件的优势
| 特性 | Claude Code | 传统 IDE AI 插件 |
|---|---|---|
| 环境集成 | 终端原生,不依赖特定编辑器 | 绑定特定 IDE,跨编辑器体验不一致 |
| 操作权限 | 可执行系统命令、读写任意文件 | 通常受限,只能操作当前打开文件 |
| 项目感知 | 全局理解整个项目结构和依赖 | 仅能感知当前上下文窗口 |
| 协作模式 | 对话+命令混合,支持复杂工作流 | 主要是补全和问答模式 |
| 资源占用 | 轻量级 CLI 工具 | 较重,依赖 IDE 运行环境 |
典型使用场景
场景 1:新项目快速上手
- 接手陌生项目时,让 Claude Code 帮你快速梳理代码架构、理解关键模块、生成项目文档
场景 2:复杂 Bug 排查
- 遇到难以定位的问题时,让 AI 帮你复现问题、分析日志、定位根因、编写修复方案
场景 3:批量代码重构
- 需要统一代码风格、升级依赖版本、迁移 API 时,AI 可以批量处理数十个文件并保证一致性
场景 4:测试用例补充
- 为已有代码生成完整的单元测试、集成测试,提高测试覆盖率
场景 5:技术调研与原型验证
- 快速验证新技术方案、生成 PoC 代码、对比不同实现方式的优劣
一、系统前置要求与环境准备
1.1 系统要求
在安装前请确保满足以下最低要求:
| 组件 | 最低版本 | 推荐版本 | 说明 |
|---|---|---|---|
| Node.js | ≥ 18.0 | 20.x LTS | Claude Code 基于 Node.js 构建 |
| npm | ≥ 9.0 | 10.x | 包管理器,随 Node.js 自带 |
| 操作系统 | macOS 12+ / Ubuntu 20.04+ / Windows 10(WSL2) | - | 原生支持 Unix-like 系统 |
| 内存 | ≥ 4GB | ≥ 8GB | 大项目分析需要更多内存 |
| 磁盘 | ≥ 2GB 可用空间 | - | 安装包+缓存 |
1.2 Node.js 安装与版本验证
Ubuntu / Debian 系统
# 方式一:使用官方源(推荐)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt-get install -y nodejs
# 方式二:使用 nvm 管理多版本(开发环境推荐)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc # 或 source ~/.zshrc
nvm install 20
nvm use 20
nvm alias default 20
macOS 系统
# 使用 Homebrew 安装
brew install node@20
# 验证安装
node --version # 应输出 v20.x.x
npm --version # 应输出 10.x.x
# 如果版本不对,检查 PATH 配置
which node # 确认 node 路径
which npm # 确认 npm 路径
Windows 系统
- 访问 Node.js 官网 下载 LTS 版本
- 运行安装程序,务必勾选 “Automatically install the necessary tools”
- 安装完成后,打开 PowerShell 或 CMD 验证:
node --version
npm --version
1.3 版本验证与常见问题
验证 Node.js 环境:
# 检查版本(必须满足 ≥ 18.0)
node --version | awk -F'v' '{print $2}' | awk -F'.' '{if($1>=18) print "✅ Node.js 版本符合要求"; else print "❌ Node.js 版本过低,需要升级"}'
# 检查 npm 源配置(国内用户建议配置镜像)
npm config get registry
# 如使用官方源速度慢,可切换到淘宝镜像
npm config set registry https://registry.npmmirror.com
npm 安装失败常见处理:
| 错误类型 | 解决方案 |
|---|---|
| EACCES 权限错误 | 使用 sudo 或修复 npm 全局安装目录权限 |
| 网络超时 | 切换 npm 镜像源,或使用代理 npm install --proxy http://proxy:port |
| 磁盘空间不足 | 清理 ~/.npm 缓存,或指定缓存目录 |
| 节点版本不兼容 | 检查 Node.js 版本,或使用 --force 强制安装 |
权限问题修复示例:
# 修复全局安装目录权限
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
二、Claude Code 安装与基础配置
2.1 全局安装 Claude Code
使用 npm 进行全局安装:
# 标准安装
npm install -g @anthropic-ai/claude-code
# 安装失败时尝试强制安装
npm install -g @anthropic-ai/claude-code --force
# 验证安装结果
claude --version
# 如命令不生效,检查 PATH
which claude
echo $PATH
成功安装后,你将看到类似输出:
0.2.x
2.2 API 配置原理
Claude Code 通过环境变量读取配置,核心配置项包括:
| 环境变量 | 必填 | 说明 | 默认值 |
|---|---|---|---|
ANTHROPIC_AUTH_TOKEN |
✅ | API 认证令牌,通常以 sk- 开头 |
- |
ANTHROPIC_BASE_URL |
✅ | API 服务端点地址 | https://api.anthropic.com |
API_TIMEOUT_MS |
❌ | 请求超时时间(毫秒) | 120000 |
HTTP_PROXY |
❌ | HTTP 代理地址 | - |
HTTPS_PROXY |
❌ | HTTPS 代理地址 | - |
2.3 国内可用方案说明
由于网络环境限制,直接访问官方 API 可能存在困难。开发者可以通过以下几种方式解决:
方案一:API 转发服务
- 使用兼容 Anthropic API 协议的第三方转发服务
- 优点:无需额外配置,直接替换
ANTHROPIC_BASE_URL即可 - 注意:选择服务时需评估稳定性、安全性和成本
方案二:本地代理
- 配置系统代理或 HTTP_PROXY 环境变量
- 适合有稳定国际网络访问能力的用户
方案三:自部署代理
- 使用开源项目如
anthropic-proxy自行部署转发服务 - 适合对数据安全和可控性要求高的团队
配置原理:Claude Code 所有的 API 请求都会发送到 ANTHROPIC_BASE_URL 指定的地址,只要该地址兼容 Anthropic 的 REST API 协议,就能正常工作。
三、启动与初次配置
3.1 临时环境变量配置
Linux / macOS (Bash/Zsh):
# 进入你的项目目录
cd /path/to/your/project
# 设置环境变量
export ANTHROPIC_AUTH_TOKEN="sk-你的令牌"
export ANTHROPIC_BASE_URL="你的API地址"
export API_TIMEOUT_MS=300000
# 验证环境变量是否设置
echo $ANTHROPIC_AUTH_TOKEN | head -c 10 && echo "..."
echo $ANTHROPIC_BASE_URL
# 启动 Claude Code
claude
Windows PowerShell:
# 设置环境变量
$env:ANTHROPIC_AUTH_TOKEN = "sk-你的令牌"
$env:ANTHROPIC_BASE_URL = "你的API地址"
$env:API_TIMEOUT_MS = "300000"
# 启动
claude
Windows CMD:
set ANTHROPIC_AUTH_TOKEN=sk-你的令牌
set ANTHROPIC_BASE_URL=你的API地址
set API_TIMEOUT_MS=300000
claude
3.2 初次启动配置向导
首次启动时,Claude Code 会引导你完成基础配置:
╔══════════════════════════════════════════════════════════════╗
║ Welcome to Claude Code! Let's get setup. ║
╚══════════════════════════════════════════════════════════════╝
1. 选择终端主题
→ 使用方向键选择,按 Enter 确认
- Light / Dark / System
2. 安全须知确认
→ 阅读关于文件操作权限的说明
→ 按 'y' + Enter 确认理解
3. 终端功能配置
→ 是否启用命令自动执行(建议关闭,保持手动确认)
→ 是否启用 MCP 扩展功能
4. 工作目录信任
→ Claude Code 将拥有此目录的读写权限
→ 输入 'trust' 确认信任当前目录
完成以上步骤后,你将进入 Claude Code 的交互界面。
四、Claude Code 实战示例
示例 1:快速阅读并理解一个陌生项目
场景:你需要接手一个陌生的 Node.js 项目,希望快速理解项目架构。
对话流程:
你好!我刚接手了这个项目,帮我快速梳理一下项目结构和主要功能。
Claude Code 的操作与输出:
🔍 正在扫描项目结构...
📁 发现以下关键文件:
├── package.json # 项目依赖和脚本
├── src/
│ ├── index.js # 入口文件
│ ├── app.js # 核心应用逻辑
│ ├── routes/ # API 路由定义
│ ├── controllers/ # 业务控制器
│ ├── models/ # 数据模型
│ └── utils/ # 工具函数
├── tests/ # 测试用例
└── config/ # 配置文件
📝 正在分析 package.json...
{
"name": "user-management-api",
"version": "1.2.0",
"dependencies": {
"express": "^4.18.2",
"mongoose": "^7.5.0",
"jsonwebtoken": "^9.0.2"
},
"scripts": {
"start": "node src/index.js",
"test": "jest",
"dev": "nodemon src/index.js"
}
}
✅ 分析完成!这是一个:
基于 Express + MongoDB 的用户管理 RESTful API 服务
主要功能模块:
1. 用户认证(JWT)- src/controllers/authController.js
2. 用户 CRUD 操作 - src/controllers/userController.js
3. 数据模型定义 - src/models/User.js
4. 路由配置 - src/routes/*.js
需要我详细分析某个具体模块吗?
继续深入:
帮我分析一下认证模块的实现逻辑,看看有没有安全隐患。
Claude Code 会读取相关文件并进行深度代码审查,输出详细的分析报告。
示例 2:排查并修复一个具体的 BUG
场景:测试反馈用户登录接口在某些情况下返回 500 错误。
对话流程:
用户报告登录接口有 500 错误。日志显示:"TypeError: Cannot read property 'password' of null"。帮我定位并修复这个问题。
Claude Code 的操作:
🔍 搜索相关代码...
📄 找到登录控制器:src/controllers/authController.js
📝 读取登录方法代码:
async login(req, res) {
try {
const { email, password } = req.body;
const user = await User.findOne({ email });
// ❌ 问题在这里:没有检查 user 是否存在
const isMatch = await bcrypt.compare(password, user.password);
if (!isMatch) {
return res.status(401).json({ error: '密码错误' });
}
// ... 生成 token
} catch (err) {
console.error(err);
res.status(500).json({ error: '服务器错误' });
}
}
✅ 定位到问题:
当邮箱不存在时,User.findOne() 返回 null
后续访问 user.password 导致 TypeError
Claude Code 生成修复方案:
💡 建议修复方案:
1. 在查询后添加用户存在性检查
2. 返回更明确的错误信息
🔧 修复后的代码:
async login(req, res) {
try {
const { email, password } = req.body;
// 参数校验
if (!email || !password) {
return res.status(400).json({ error: '邮箱和密码不能为空' });
}
const user = await User.findOne({ email });
// ✅ 添加用户存在性检查
if (!user) {
return res.status(401).json({ error: '用户不存在或密码错误' });
}
const isMatch = await bcrypt.compare(password, user.password);
if (!isMatch) {
return res.status(401).json({ error: '用户不存在或密码错误' });
}
const token = jwt.sign({ userId: user._id }, process.env.JWT_SECRET, {
expiresIn: '7d'
});
res.json({ token, user: { id: user._id, email: user.email } });
} catch (err) {
console.error('登录错误:', err);
res.status(500).json({ error: '服务器内部错误' });
}
}
需要我自动应用这个修复吗?[Y/n]
输入 Y 后,Claude Code 会自动修改文件并运行测试验证修复效果。
示例 3:给现有代码补充单元测试
场景:需要为工具函数模块补充单元测试,提高测试覆盖率。
对话流程:
src/utils/validation.js 这个文件还没有测试用例,帮我生成完整的单元测试,使用 Jest 框架。
Claude Code 的操作:
📄 读取源文件:src/utils/validation.js
export const validateEmail = (email) => {
const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return regex.test(email);
};
export const validatePassword = (password) => {
// 至少 8 位,包含字母和数字
return /^(?=.*[A-Za-z])(?=.*\d).{8,}$/.test(password);
};
export const sanitizeUserInput = (input) => {
if (typeof input !== 'string') return '';
return input.trim().replace(/[<>]/g, '');
};
Claude Code 生成测试文件:
📝 生成测试文件:tests/utils/validation.test.js
const { validateEmail, validatePassword, sanitizeUserInput } = require('../../src/utils/validation');
describe('Validation Utilities', () => {
describe('validateEmail', () => {
it('should return true for valid emails', () => {
expect(validateEmail('user@example.com')).toBe(true);
expect(validateEmail('user.name+tag@domain.co.uk')).toBe(true);
});
it('should return false for invalid emails', () => {
expect(validateEmail('invalid')).toBe(false);
expect(validateEmail('@nodomain.com')).toBe(false);
expect(validateEmail('user@')).toBe(false);
expect(validateEmail('')).toBe(false);
expect(validateEmail(null)).toBe(false);
});
});
describe('validatePassword', () => {
it('should return true for valid passwords', () => {
expect(validatePassword('password123')).toBe(true);
expect(validatePassword('Abc12345')).toBe(true);
});
it('should return false for passwords too short', () => {
expect(validatePassword('abc123')).toBe(false);
});
it('should return false for passwords without numbers', () => {
expect(validatePassword('password')).toBe(false);
});
});
describe('sanitizeUserInput', () => {
it('should trim whitespace', () => {
expect(sanitizeUserInput(' hello ')).toBe('hello');
});
it('should remove XSS characters', () => {
expect(sanitizeUserInput('<script>alert(1)</script>'))
.toBe('scriptalert(1)/script');
});
it('should handle non-string inputs', () => {
expect(sanitizeUserInput(null)).toBe('');
expect(sanitizeUserInput(123)).toBe('');
expect(sanitizeUserInput(undefined)).toBe('');
});
});
});
✅ 测试文件已生成!
📊 测试覆盖率预期:100% 行覆盖
运行测试:npm test tests/utils/validation.test.js
五、高级配置与技巧
5.1 永久配置环境变量
每次启动都手动设置环境变量比较麻烦,建议将配置写入 Shell 配置文件。
Bash 用户 (~/.bashrc)
# 编辑配置文件
nano ~/.bashrc
# 在文件末尾添加
export ANTHROPIC_AUTH_TOKEN="sk-你的令牌"
export ANTHROPIC_BASE_URL="你的API地址"
export API_TIMEOUT_MS=300000
# 保存退出后生效
source ~/.bashrc
Zsh 用户 (~/.zshrc)
# 编辑配置文件
nano ~/.zshrc
# 添加配置
export ANTHROPIC_AUTH_TOKEN="sk-你的令牌"
export ANTHROPIC_BASE_URL="你的API地址"
export API_TIMEOUT_MS=300000
# 生效
source ~/.zshrc
Fish Shell (~/.config/fish/config.fish)
set -x ANTHROPIC_AUTH_TOKEN "sk-你的令牌"
set -x ANTHROPIC_BASE_URL "你的API地址"
set -x API_TIMEOUT_MS 300000
Windows 永久环境变量
# 以管理员身份运行 PowerShell
[Environment]::SetEnvironmentVariable(
"ANTHROPIC_AUTH_TOKEN",
"sk-你的令牌",
"User"
)
# 重启终端后生效
5.2 常用命令速查表
| 命令 | 说明 |
|---|---|
claude |
在当前目录启动 Claude Code |
claude /path/to/project |
指定工作目录启动 |
claude "帮我分析这个项目" |
直接传入指令,非交互模式 |
/help |
显示内置帮助 |
/clear |
清除当前对话历史 |
/reset |
重置会话状态(保留历史) |
/files |
列出已读取的文件 |
/memory |
查看 AI 记忆摘要 |
/undo |
撤销上一次文件修改 |
/diff |
显示最近一次修改的差异 |
Ctrl+C |
中断当前操作或退出 |
/exit 或 /quit |
退出 Claude Code |
5.3 与 Git 结合的工作流
Claude Code 可以完美融入 Git 工作流:
场景:为新功能创建分支并开发
我要开发一个新功能:用户头像上传。
1. 先创建 feature/avatar-upload 分支
2. 实现上传接口
3. 确保代码符合现有风格
Claude Code 会自动执行:
# 创建并切换分支
git checkout -b feature/avatar-upload
# ... 开发代码 ...
# 完成后建议提交信息
git add .
git commit -m "feat: 实现用户头像上传功能
- 添加 multer 中间件配置
- 实现 POST /api/users/avatar 接口
- 添加文件类型和大小校验
- 更新用户模型添加 avatarUrl 字段"
代码审查场景:
帮我审查一下这个 PR 的代码变更:
Claude Code 可以运行 git diff 查看变更,进行代码审查,并给出改进建议。
5.4 项目级配置文件
在项目根目录创建 .claude.toml 配置文件,Claude Code 会自动加载:
# .claude.toml
[general]
# 默认模型设置
model = "claude-3-sonnet-20240229"
temperature = 0.2
[files]
# Claude Code 会忽略的文件/目录
ignore = [
"node_modules",
".git",
"dist",
"build",
"*.log",
"coverage"
]
# Claude Code 应优先关注的目录
focus = [
"src",
"lib",
"packages"
]
[security]
# 命令执行确认级别:always / ask / never
confirm_commands = "ask"
# 禁止执行的命令模式
deny_commands = [
"rm -rf /",
"mkfs",
"dd if=",
":(){ :|:& };:"
]
[git]
# 自动 git add 修改的文件
auto_add = false
# 生成提交信息模板
commit_template = """{{type}}: {{description}}
{{detail}}
Ref: {{issue}}"""
六、常见问题与解决方案
Q1: 提示 “Invalid API Key · Please run /login”
症状:启动后显示 API Key 无效,无法正常使用。
可能原因及解决方案:
-
环境变量未生效
# 检查变量是否正确设置 echo $ANTHROPIC_AUTH_TOKEN echo $ANTHROPIC_BASE_URL # 如果是空的,重新执行 export 命令 # 或者检查 ~/.bashrc / ~/.zshrc 配置是否正确 -
令牌格式错误
- 确保令牌以
sk-开头 - 检查是否有多余的空格或换行符
- 重新生成令牌试试
- 确保令牌以
-
BASE_URL 配置错误
- 确认地址包含协议头(https://)
- 确认地址末尾没有
/v1(Claude Code 会自动追加)
Q2: 大项目扫描卡住或超时
症状:在大型项目(上万文件)中启动时长时间无响应。
解决方案:
-
创建 .claudeignore 文件
# .claudeignore node_modules .git dist build coverage *.min.js *.map -
使用聚焦模式
这个项目很大,先只关注 src/controllers 和 src/models 目录 -
分批处理
先帮我分析 API 路由部分,其他目录暂时不用看
Q3: 文件修改后出现乱码
症状:Claude Code 修改中文文件后出现乱码。
解决方案:
-
检查系统编码
# Linux/macOS locale # 确保 LC_ALL 是 UTF-8 # 临时设置 export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 -
文件编码转换
# 将 GBK 文件转为 UTF-8 iconv -f GBK -t UTF-8 oldfile.js > newfile.js -
在 Claude Code 中明确说明
这个项目的文件都是 UTF-8 编码,修改时请保持编码一致
Q4: 命令执行权限被拒绝
症状:Claude Code 执行命令时报 Permission denied。
解决方案:
-
检查文件权限
# 确保当前用户对项目目录有读写权限 ls -la # 如果需要,修改权限 chmod -R u+rw /path/to/project -
使用 sudo(谨慎)
执行这个命令需要 sudo 权限,请手动执行: sudo npm install -g some-package -
避免在系统目录工作
- 建议在用户目录
~/projects下工作 - 不要在
/root或系统目录下使用
- 建议在用户目录
七、总结与适用建议
Claude Code 优势总结
- 原生终端体验 - 不依赖特定 IDE,与现有开发工具链无缝集成
- 强大的项目感知 - 能够理解整个项目上下文,而非单个文件
- 安全可控 - 所有文件操作和命令执行都需要用户确认
- 灵活的协作模式 - 支持对话、命令、批量处理等多种工作方式
- 轻量高效 - 相比重量级 IDE 插件,资源占用极低
局限性与注意事项
- 学习曲线 - 命令行交互方式对新手不够友好,需要适应
- API 成本 - 分析大项目会消耗大量 token,需要关注成本
- 上下文限制 - 超大项目可能超出模型上下文窗口
- 代码质量 - AI 生成代码仍需人工审查,不能直接用于生产环境
- 网络依赖 - 需要稳定的 API 连接,离线无法使用
适用人群建议
强烈推荐使用:
- 独立开发者 / 小型团队 - 人手不足时,AI 是最好的搭档
- 全栈工程师 - 需要频繁切换技术栈,AI 能快速提供各领域支持
- 代码审查者 - 快速定位代码问题,提供改进建议
- 技术学习者 - 遇到不懂的代码,随时让 AI 解释和演示
谨慎评估使用:
- 对代码质量要求极高的核心系统 - AI 生成代码需经过严格审查
- 预算非常有限的个人项目 - 注意控制 API 调用成本
- 完全离线的开发环境 - 无法连接 API 时无法使用
最佳实践建议
- 从小任务开始 - 先用 Claude Code 解决简单问题,逐步适应工作方式
- 善用项目配置 - 为每个项目创建
.claude.toml和.claudeignore - 保持对话清晰 - 指令越具体,输出质量越高
- 人工验证不可少 - AI 生成的代码务必经过测试和审查
- 定期清理上下文 - 使用
/clear重置对话,避免历史上下文干扰
参考资源
说明:本文以技术中立原则编写,重点介绍工具本身的使用方法和最佳实践,文中提及的第三方服务仅作为配置示例,不构成具体产品推荐。开发者应根据自身需求评估和选择合适的 API 服务提供商。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)