Top 20 报错手册 | 最佳实践 | 分阶段验收 | 长期学习路线
现象:终端输入 claude 提示命令不存在
根因:npm 全局 bin 目录不在 PATH 中;或未安装
🔧 修复方案:
# 诊断
npm bin -g # 查看 npm bin 路径
echo $PATH | grep "$(npm bin -g)" # 检查是否在 PATH 中
# 修复(临时)
export PATH="$(npm bin -g):$PATH"
# 修复(永久)
echo "export PATH=\"$(npm bin -g):\$PATH\"" >> ~/.bashrc
source ~/.bashrc
# 如果未安装
npm install -g @anthropic-ai/claude-code
现象:安装时提示 Node.js < 18
🔧 修复方案:
# 检查当前版本
node --version
# 升级(NodeSource 方式)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
# 或使用 nvm
nvm install 20 && nvm use 20 && nvm alias default 20
现象:npm 全局安装时报 EACCES 权限错误
🔧 修复方案:
# 方案A:修复 npm 全局目录权限(推荐)
mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
npm install -g @anthropic-ai/claude-code
# 方案B:使用 sudo(不推荐,可能引发其他权限问题)
sudo npm install -g @anthropic-ai/claude-code
现象:执行 claude 命令时报认证失败
🔧 修复方案:
# 检查登录状态
claude whoami
# 重新登录
claude logout && claude login
# 检查 API 密钥格式(必须以 sk-ant-api03- 开头)
echo $ANTHROPIC_API_KEY | cut -c1-20
# 重新设置 API 密钥
export ANTHROPIC_API_KEY="sk-ant-api03-你的密钥"
# 确认设置成功
echo $ANTHROPIC_API_KEY
现象:长对话中 Claude 响应截断、报错、或"失忆"
🔧 修复方案:
# 方案1:压缩上下文(保留关键信息)
/compact
# 方案2:清空重来
/clear
# 方案3:新建会话
/exit
claude # 重新启动
# 预防:
# - 创建 .claudeignore 过滤无关文件
# - 控制单次会话范围,一个会话一个模块
# - 定期使用 /cost 检查 token 使用量
现象:npm install 超时或连接失败
🔧 修复方案:
# 切换到国内镜像
npm config set registry https://registry.npmmirror.com
# 或临时使用
npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com
# 增加超时时间
npm config set timeout 120000
# 清除缓存重试
npm cache clean --force
npm install -g @anthropic-ai/claude-code
现象:Claude 尝试执行操作时被权限系统拒绝
🔧 修复方案:
# 查看当前权限配置
cat ~/.claude/settings.json
# 手动添加允许规则
# 编辑 settings.json,在 permissions.allow 中添加对应规则
# 例如允许 npm test:
# "Bash(npm:test)"
# 或使用 /permissions 命令在交互模式中管理
现象:升级后执行 claude 报 Cannot find module
🔧 修复方案:
# 彻底重装
npm uninstall -g @anthropic-ai/claude-code
npm cache clean --force
npm install -g @anthropic-ai/claude-code
# 清理残留
sudo rm -f /usr/local/bin/claude /usr/bin/claude 2>/dev/null
claude --version
现象:Claude 看不到某些文件
🔧 修复方案:
# 检查是否在正确的目录启动
pwd
# 检查文件权限
ls -la <文件名>
# 检查 .claudeignore 或 .gitignore
cat .claudeignore 2>/dev/null
cat .gitignore 2>/dev/null
# 手动让 Claude 读取
/read <文件路径>
现象:Claude 修改文件时报错
🔧 修复方案:
# 检查父目录是否存在
ls -la "$(dirname <目标文件>)"
# 检查文件权限
ls -la <目标文件>
# 检查磁盘空间
df -h .
# 如果文件是只读的
chmod +w <目标文件>
现象:修改 ~/.bashrc 后 PATH 仍不生效
🔧 修复方案:
# 必须执行 source
source ~/.bashrc
# 或重新登录
exit # 退出 SSH
ssh user@server # 重新连接
# 如果使用 zsh,应该改 ~/.zshrc
echo $SHELL # 查看你用的什么 shell
# 确认配置已写入
grep "claude\|npm.*global" ~/.bashrc
现象:SSH 断开导致 Claude 任务中断
🔧 修复方案:
# 预防方案1:使用 tmux(推荐)
tmux new -s claude-session
claude
# Ctrl+B, D 分离
# tmux attach -t claude-session 重新连接
# 预防方案2:使用 screen
screen -S claude
claude
# Ctrl+A, D 分离
# screen -r claude 重新连接
# 预防方案3:使用 nohup(后台运行)
nohup claude -p "长任务描述" > task-output.txt 2>&1 &
现象:报 429 Too Many Requests
🔧 修复方案:
# 等待 30-60 秒后重试
# 减少并发请求
# 如果是 API 密钥模式,检查用量配额
# 升级 API plan 或切换到 Pro 订阅
现象:Claude 回复到一半突然截断
🔧 修复方案:
# 让 Claude 继续
/continue
# 或简写
/c
# 如果是 token 限制,先压缩上下文
/compact
# 然后重新提问
现象:Claude 做的修改与 git 状态冲突
🔧 修复方案:
# 查看当前 git 状态
git status
git diff
# 如果改动满意,提交
git add -A && git commit -m "changes by Claude"
# 如果改动不满意,回退
git checkout -- . # 回退所有未暂存的修改
git reset --hard HEAD # 完全回退到上次提交
# 预防:修改前创建分支
git checkout -b claude-experiment
现象:npm 安装后 claude 行为异常
🔧 修复方案:
# 清理并重装
npm uninstall -g @anthropic-ai/claude-code
rm -rf $(npm root -g)/@anthropic-ai/claude-code
npm cache clean --force
npm install -g @anthropic-ai/claude-code
现象:新创建的文件 Claude 看不到
🔧 修复方案:
# 使用 /add-dir 手动添加
/add-dir <目录路径>
# 或让 Claude 重新扫描
"请重新扫描当前目录的文件结构"
# 检查 .claudeignore 是否误过滤
cat .claudeignore
现象:Claude 误删或覆盖了重要文件
🔧 修复方案:
# 立即使用 /undo
/undo
# 使用 git 恢复
git checkout -- <文件名>
git log # 查看历史
# 使用 /checkpoint 恢复快照
/checkpoint --list
/checkpoint --restore <snapshot-id>
# 预防:在 settings.json 中限制 Write/Edit
# "deny": ["Write(**)", "Edit(**)"]
# 需要时再放开
现象:交互模式下输入异常、多行粘贴格式错乱
🔧 修复方案:
# 多行输入:用 Shift+Enter 换行
# 粘贴多行代码:用 ``` 包裹
# 特殊字符:用单引号包裹
# 如果交互界面卡死:
# Ctrl+C 中断当前操作
# Ctrl+D 退出
# 然后重新启动 claude
现象:WSL2 下安装后 claude 命令可用但行为异常
🔧 修复方案:
# WSL2 特别注意:
# 1. 不要在 /mnt/c/ 下操作项目(性能差,权限问题)
# 2. 项目放 ~/ 下(Linux 原生文件系统)
# 3. 确保 npm 安装在 WSL 内部(不要用 Windows 的 npm)
# WSL2 环境验证
echo $HOME # 应该是 /home/xxx 而不是 /mnt/c/...
df -h . # 确认用的不是 drvfs
which node # 应该在 /usr/ 或 ~/.nvm/ 下
| 实践 | 说明 |
|---|---|
| 在项目目录启动 | 始终在项目根目录执行 claude,不要在家目录或根目录 |
| 使用 CLAUDE.md | 为每个项目创建 CLAUDE.md,存储项目规范和关键决策 |
| 创建 .claudeignore | 排除 node_modules、dist、build 等大目录 |
| 一个会话一个模块 | 不要让 Claude 在同一会话中处理多个不相关的模块 |
| 修改前 git 分支 | 每次大规模修改前创建新分支:git checkout -b claude-wip |
| 定期 /compact | 长对话中每 20-30 轮做一次上下文压缩 |
| 精确描述需求 | 给出文件路径、函数名、具体行为,而非模糊描述 |
| 使用 /checkpoint | 重大修改前创建快照,方便回退 |
| 用 tmux/screen 保护会话 | 防止 SSH 断开导致任务丢失 |
| 审查 Claude 输出 | 永远不要盲目信任 Claude 的代码修改,必须审查 |
| 跟随项目风格 | 在 CLAUDE.md 中指定代码规范,保持一致性 |
| 用 -p 做脚本化 | 自动化任务用 claude -p 而非交互模式 |
| 禁止行为 | 原因 | 替代方案 |
|---|---|---|
| 在 / 根目录启动 claude | 暴露整个系统文件 | 始终在有明确边界的项目目录 |
| allow: ["*"] 全开权限 | 安全风险极高 | 精确配置每个权限项 |
| 把 API 密钥写在代码里 | 泄露风险 | 用环境变量或 ~/.bashrc |
| 不审查直接执行 Claude 的 shell 命令 | 可能执行危险操作 | 审查后再授权 |
| 在生产服务器不做备份就让 Claude 修改 | 不可逆损坏 | 先在测试环境验证 |
| 一个会话修改 20+ 个文件 | 上下文溢出、质量下降 | 分批处理,每批 3-5 个文件 |
| 盲目信任 Claude 的安全建议 | AI 可能有盲区 | 做独立安全评估 |
| 在 settings.json 中裸写密钥 | 可能被其他进程读取 | 用环境变量管理敏感信息 |
| npm install -g 后不验证 | 安装可能不完整 | 执行 claude --version 确认 |
| 多个 Claude 实例同时修改同一文件 | 产生冲突 | 一个文件同一时间只在一个会话中修改 |
安装与环境
claude: command not found 报错基础操作
claude -p 模式执行单次任务| claude -p)传入内容--version、--help、--print、--model 参数斜杠命令
/help、/clear、/exit/read、/edit、/write/cost 查看 token 消耗/commit 自动提交代码工作流
文件操作
工程能力
权限管理
高阶配置
性能优化
工具链联动
工程化
目标:能独立完成安装、启动、基础操作
目标:将 Claude CLI 融入日常编码流程
目标:用 Claude CLI 显著提升开发效率
目标:从 "使用工具" 升级到 "封装工具"
目标:用 Claude CLI 构建生产级 AI 应用
npm update -g @anthropic-ai/claude-code 保持最新