编程入门
Claude Code 完整使用教程
安装 Claude Code 后,在项目根目录运行 claude 并按提示完成浏览器登录,就可以用自然语言把开发任务交给它:它会自行检索代码、修改文件、执行命令,而你负责界定任务范围、确认权限并审阅改动。
安装、认证、项目内工作流、权限与配置:一篇覆盖 Claude Code 从零到日常使用的完整教程。
开始之前
- Claude Pro、Max、Team、Enterprise 订阅,或 Claude Console 账号
- 一个用 Git 管理的代码项目
- 基本的终端操作能力(切换目录、执行命令、读报错)
环境要求
- 系统平台
- macOS 13.0+、Windows 10 1809+ / Windows Server 2019+、Ubuntu 20.04+ / Debian 10+ / Alpine Linux 3.19+
- 软件环境
- Bash、Zsh、PowerShell 或 CMD 任一终端、仅 npm 安装方式需要 Node.js 22 及以上
- 账号
- Claude 付费方案或 Claude Console(按用量计费)
- 网络
- 能稳定访问 api.anthropic.com、claude.ai、platform.claude.com 与 downloads.claude.ai
- 说明
- 硬件要求为 4 GB 以上内存与 x64 或 ARM64 处理器;原生 Windows 上建议同时安装 Git for Windows,否则 shell 工具会退回到 PowerShell。
快速步骤
安装命令行工具
用官方安装脚本安装,安装结束后关闭并重新打开终端,让新的可执行文件进入 PATH。
macOS、Linux 与 WSL 用 install.sh,Windows PowerShell 用 install.ps1,正文给出了完整命令。
验证安装
运行 claude --version,正常会输出类似 2.1.211 (Claude Code) 的版本号。
输出异常时运行 claude doctor,它只做只读诊断,不会启动会话。
登录账号
直接运行 claude,按提示在浏览器中完成登录;远程或容器环境里改用粘贴登录码的方式。
在项目根目录启动
先切换到仓库根目录再运行 claude,这样它才能检索到完整的项目结构。
先让它读,再让它改
第一条指令用来确认它理解得对,例如「这个项目是做什么的」「移动端导航的实现在哪」。
交付一个有边界的任务
说明目标、涉及范围与验收标准,而不是只说「优化一下」。
审阅改动并运行验证
逐个文件查看 diff,然后让它执行项目自己的测试或构建命令,用真实输出确认结果。
固化项目约定
运行 /init 生成 CLAUDE.md,再补上只有你知道、代码里看不出来的约定。
从安装、登录到在真实项目里改代码、跑测试、提交 Git,完整讲清 Claude Code 的使用流程,并说明权限模式、项目级 CLAUDE.md 配置与容易踩的几个坑。
Claude Code 是什么
它是一个跑在终端里的编程智能体:你用自然语言描述任务,它自己检索项目文件、编辑代码、执行命令、读取输出,直到任务完成。和代码补全类工具的区别在于介入位置——补全工具帮你写下一行,Claude Code 接管的是「查清楚、改完、验证过」这一整段。
除命令行外,同一个账号还可以在桌面应用、VS Code 与 JetBrains 插件、网页版以及 CI 集成中使用。本文讲的是命令行,也是功能最完整的入口。
开始之前
三件事缺一不可。
账号。 Pro、Max、Team、Enterprise 订阅,或使用预付额度的 Claude Console 账号。免费的 Claude.ai 方案不包含 Claude Code。企业还可以走 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。
运行环境。 macOS 13.0 及以上、Windows 10 1809 及以上、Ubuntu 20.04 / Debian 10 / Alpine 3.19 及以上,4 GB 以上内存。只有 npm 安装方式才要求 Node.js 22 及以上,原生安装不依赖机器上的 Node。
网络。 需要能访问 api.anthropic.com、claude.ai、claude.com、platform.claude.com 与 downloads.claude.ai。这几个域名任意一个被拦,表现都不一样:装不上、登不上,或者装好了发不出请求。
安装
macOS、Linux 与 WSL:
curl -fsSL https://claude.ai/install.sh | bash
Windows PowerShell:
irm https://claude.ai/install.ps1 | iex
Windows CMD:
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
分不清自己在哪个终端时看提示符:PowerShell 是 PS C:\,CMD 是没有 PS 的 C:\。在 PowerShell 里执行 CMD 那条命令会报 not a valid statement separator,反过来在 CMD 里执行 PowerShell 那条会报 irm is not recognized。
也可以用包管理器安装:
brew install --cask claude-code
winget install Anthropic.ClaudeCode
npm install -g @anthropic-ai/claude-code
三点需要注意。第一,npm 包装的是同一个原生二进制文件,不是「Node 版本」,安装后运行的 claude 不会调用你的 Node。第二,不要用 sudo 执行全局 npm 安装,会带来权限与安全问题。第三,安装方式决定更新方式:原生安装后台自动更新,Homebrew、WinGet 与 apt / dnf / apk 都需要手动升级。
安装完成后关闭并重新打开终端。这一步经常被跳过,也是「装完却找不到命令」最常见的原因。
更新
claude update
原生安装平时会自己在后台更新,这条命令只是让更新立刻生效。Homebrew 用 brew upgrade claude-code,WinGet 用 winget upgrade Anthropic.ClaudeCode。
验证与登录
先确认命令可用:
claude --version
正常会输出类似 2.1.211 (Claude Code) 的内容。想看更完整的诊断——安装是否健康、设置文件有没有语法错误、上一次自动更新的结果——运行:
claude doctor
它是只读的,不会启动会话,也不会改动任何配置。
然后直接运行 claude,首次启动会引导登录,在浏览器里完成认证即可。之后要换账号或重新认证,在会话里输入 /login。
几种容易卡住的登录场景:
- 浏览器没有自动打开。 在登录提示处按
c复制 OAuth 链接,粘贴到浏览器里打开。 - WSL2、SSH 或容器环境。 浏览器开在另一台机器上,回调回不来。登录后页面会给一串登录码,粘回终端提示处即可;粘贴不进去时改用
claude auth login,它从标准输入读取登录码。 - 提示登录码无效。 登录码过期或复制不全,重新走一遍并尽快完成。
在项目里启动
cd /path/to/your/project
claude
启动目录很关键。 它以当前目录为工作范围,在仓库根目录启动才能看到完整结构;在 src/components/ 里启动,它对项目全貌的判断就会缺一大块。确实需要访问其他目录时用 --add-dir 显式加入,而不是跑到更上层的目录去启动。
第一次进去,先让它读,不要急着让它改:
这个项目是做什么的?主要目录结构是怎样的?
移动端导航的实现在哪几个文件里?
如果它对项目的描述明显不对,通常不是模型的问题,而是启动目录错了。
让它修改代码
描述任务的方式直接决定结果质量。有效的描述包含三部分:目标、范围、验收标准。
不好的写法:
优化一下导航
可用的写法:
当前 Astro 项目的移动端导航在 430px 以下会把 logo 挤出容器。
请检查 src/components/layout/ 下的导航组件与相关样式,修复这个溢出,
不要改动桌面端断点的表现,改完运行 npm run build 确认构建通过。
第二种写法给了它可以自己判断「做完了没有」的依据。它会先定位相关文件、说明打算怎么改,然后执行修改。
一次只推进一个明确目标。跨模块的大改动拆成几步分别交付,出问题时更容易回退,审阅成本也低得多。
让它执行命令与验证
不要只看代码「像是对的」,让它跑项目自己的命令:
运行 npm run build,如果失败就修到通过
它会执行命令、读取输出、按报错继续修。这是它和纯对话式助手最大的差别——验证结果来自真实输出,而不是推测。
和 Git 一起用
Git 操作可以直接用自然语言表达:
我改了哪些文件?
新建一个分支 feature/mobile-nav
把当前改动提交,说明修复了移动端导航溢出
一个务实的习惯:动手前先建分支或提交一次检查点。让它工作在可回退的状态上,比事后逐行核对省事得多。
权限:它什么时候会问你
权限模式决定哪些动作不需要你确认。常用的几种:
| 模式 | 不询问即可执行 | 适合 |
|---|---|---|
Manual(配置值 default) | 只有读取 | 敏感项目、不熟悉的代码 |
acceptEdits | 读取、文件编辑与常见文件系统命令 | 你正在逐步审阅的迭代 |
plan | 读取,先出方案再动手 | 改动前先摸清代码库 |
auto | 几乎全部,由分类器代替人审核 | 长任务、减少打断 |
bypassPermissions | 全部 | 仅限隔离的容器或虚拟机 |
Pro、Max、Team 方案的交互式终端会话默认从 auto 模式开始,其他方案默认 Manual。会话中随时按 Shift+Tab 切换,也可以在启动时指定:
claude --permission-mode default
有几类动作任何模式都不会自动放行,包括被显式 ask 规则匹配的工具、需要用户交互的工具,以及针对关键路径的删除命令。
拿不准的时候用 Manual。多按几次确认,比事后从 Git 里捞回被覆盖的文件便宜。
项目级配置
CLAUDE.md
每次会话都是全新的上下文,CLAUDE.md 是让约定跨会话生效的方式。生成一份初始文件:
/init
它会分析代码库,写出构建命令、测试方式、目录约定等内容;文件已存在时不会覆盖,而是给出改进建议。
生成之后补上它自己看不出来的东西:为什么某个模块不能动、提交前必须跑什么、哪些目录是自动生成的。写作要点只有两条,具体和短:
- 写「使用 2 空格缩进」,不要写「格式化代码」
- 写「提交前运行
npm test」,不要写「测试你的改动」 - 单个文件控制在 200 行以内,太长会稀释效果
文件位置按作用范围区分:~/.claude/CLAUDE.md 是你个人所有项目通用的偏好;./CLAUDE.md 或 ./.claude/CLAUDE.md 是随仓库共享给团队的项目约定;./CLAUDE.local.md 是不进版本库的个人项目备注,记得加进 .gitignore。
仓库里已经有 AGENTS.md 时不必复制一份:在 CLAUDE.md 里写一行 @AGENTS.md 导入即可。
想确认哪些文件真的加载了,在会话里运行 /context,看 Memory files 一栏。
设置文件
.claude/settings.json 放项目级设置,~/.claude/settings.json 放个人设置,权限规则、环境变量、自动更新通道都在这里配置。和 CLAUDE.md 的区别很实际:设置由客户端强制执行,CLAUDE.md 只是写给模型看的上下文。真正要「禁止」某件事,用权限规则或 hook,不要指望在 CLAUDE.md 里写一句话。
一个真实的工作流
以一个普通的 Astro 项目为例,从发现问题到合并:
- 建分支。
git switch -c fix/mobile-nav,保证可回退。 - 在仓库根目录启动。 运行
claude。 - 先定位。 「移动端导航在 430px 以下溢出,相关实现在哪些文件?」确认它找对了地方再往下走。
- 给出有边界的任务。 说明症状、涉及目录、不能动的部分、验收标准。
- 审阅改动。 逐个文件看 diff,重点看它有没有顺手改了范围之外的东西。
- 让它验证。 「运行
npm run build」「在 320、375、430 三个宽度下检查是否还有横向溢出」。 - 提交。 让它生成 commit message,自己读一遍再确认。
- 沉淀。 如果这次纠正了它某个反复出错的习惯,把结论写进
CLAUDE.md,下次不用再说一遍。
会话与上下文管理
/clear:换一个不相关的任务时清空历史,比让它在旧上下文里继续更准。/compact:长任务中途压缩上下文,保留结论、丢掉过程。claude -c:继续当前目录最近一次会话。claude -r或/resume:挑一个历史会话恢复。claude -p加一句提问:一次性执行后退出,适合写进脚本。
安全注意事项
- 改动全部经过审阅。 把它的产出当成同事提交的 PR:读一遍、跑测试、有问题打回,而不是直接合并。
- 不要在有敏感数据的目录里启动。 它读到的文件内容会随请求发送给模型。含密钥、客户数据的目录用权限规则排除,或者根本不要放进工作目录。
bypassPermissions只在隔离环境里用。 容器或虚拟机之外开这个模式,等于把 shell 无条件交出去。- 别把密钥写进
CLAUDE.md。 那是会进版本库、也会进上下文的普通文本文件。
连不上、登不上怎么办
装好了却发不出请求、认证一直失败、请求超时——这些属于连接与认证问题,和用法无关,排查路径也完全不同。按服务状态、版本、认证方式、环境变量、代理、DNS、证书的顺序处理,见 Claude Code 连接失败与认证错误排查。
如果是 Claude 网页端或客户端打不开,那是另一类问题,见 Claude 连接失败与网络问题排查。
和 Anthropic API 的关系
Claude Code 是产品,Anthropic API 是接口。用订阅登录时不需要 API Key;用 Claude Console 账号登录时按用量从预付额度扣费,首次登录会自动在 Console 里建一个 Claude Code 工作区用于成本归集。
要把模型接进自己的应用,那是另一件事,见 Anthropic API 快速上手。
和 Codex 怎么选
两者定位接近,差别在生态与工作方式。想同时了解 Cursor 的定位,见 Claude Code vs Codex vs Cursor;想先把 Codex 用起来,见 Codex 完整使用教程。
参考资料
常见故障与解决方法
安装完成但提示 command not found 或 claude 不是内部命令
可能原因安装目录没有进入当前终端的 PATH,或终端仍在使用安装前的环境变量。
解决方法先关闭并重新打开终端;仍未解决时按官方安装排查文档检查 PATH,Windows 上还要确认没有被桌面版占用同名命令。
它的回答和项目实际情况对不上
可能原因启动目录不是仓库根目录,能读到的上下文不完整。
解决方法退回仓库根目录重新启动;确实需要跨目录时用 --add-dir 显式加入其他目录。
它没问过我就改了文件、跑了命令
可能原因会话处在 auto 模式,由分类器代替你审核动作。
解决方法按 Shift+Tab 切到 Manual 模式,或启动时加 --permission-mode default;敏感仓库建议默认使用 Manual。
CLAUDE.md 写了但明显没生效
可能原因文件位置不在加载范围内,或指令太笼统。
解决方法在会话里运行 /context,确认文件出现在 Memory files 列表中;把「格式化代码」这类描述改成「使用 2 空格缩进」这类可验证的指令。
长会话之后开始答非所问
可能原因上下文被无关内容占满。
解决方法换新任务前用 /clear 清空,长任务中途用 /compact 压缩;下次继续用 claude -c 或 /resume 恢复。
常见问题
Claude Code 有免费版吗?
没有。免费的 Claude.ai 方案不包含 Claude Code,需要 Pro、Max、Team、Enterprise 订阅,或使用预付额度的 Claude Console 账号;企业也可以通过 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 接入。
它会不会不问我就改文件、执行命令?
取决于权限模式。Pro、Max、Team 方案的交互式终端会话默认进入 auto 模式,由一个分类器代替你审核动作;其他方案默认是 Manual 模式,改文件、跑命令前会逐次询问。任何时候按 Shift+Tab 都能切换。
只能在终端里用吗?
不是。除命令行外,官方还提供桌面应用、VS Code 与 JetBrains 插件、网页版,以及 Slack、GitHub Actions、GitLab CI/CD 中的集成,账号与配置是同一套。
Windows 上必须先装 WSL 吗?
不必,原生 Windows 直接支持。区别在于 WSL 2 才支持 Bash 沙箱;原生 Windows 装了 Git for Windows 才能使用 Bash 工具,否则由 PowerShell 工具执行命令。
已经有 Anthropic API Key,可以直接用吗?
可以,对应 Claude Console 账号。但要注意优先级:环境里存在 ANTHROPIC_API_KEY 时,它会覆盖订阅的登录凭据,这也是「明明有订阅却提示组织被停用」的常见原因。
CLAUDE.md 和 AGENTS.md 是什么关系?
Claude Code 只读 CLAUDE.md。仓库里已经有 AGENTS.md 时,在 CLAUDE.md 里写一行 @AGENTS.md 把它导入即可,两个工具共用一份约定,不用重复维护。
怎么更新到新版本?
原生安装会在后台自动更新,想立刻更新就运行 claude update。Homebrew、WinGet 与 Linux 包管理器安装默认不自动更新,需要用对应的升级命令。
它读得到整个项目吗?会上传全部代码吗?
它按需读取文件,不会预先把整个仓库塞进上下文。但被读到的文件内容会随请求发送给模型,因此包含密钥、客户数据的目录应当通过权限规则排除,或者干脆不要放进工作目录。