
如果你经常找 AI 帮忙改代码一定对下面这套流程不陌生打开网页聊天窗口把报错信息粘过去等回复再把修好的代码复制回编辑器保存重跑一遍不行又回去继续问。一次小改动来回切五六个窗口。我第一次用 Claude Code 的时候最大的冲击是——它直接在终端里动手干活自己读文件、自己改代码、自己跑命令、再把结果拿回来判断全程不需要我复制粘贴。Claude Code 是 Claude 官方的命令行编程代理也是一个跑在终端里的 AI 助手。你从终端启动它、告诉它你想干什么它就能像一位熟悉项目的同事那样在你的项目目录里查资料、改文件、执行命令然后继续根据反馈干活。这篇保姆级实操入门教程我会从安装环境讲起带你完成登录和初始化然后通过读代码、改功能、查 Bug 三个场景把完整流程走一遍最后分享关于 CLAUDE.md、权限控制和模型切换的实战经验。无论你是第一次听说这个工具还是已经装好了但不清楚怎么用于真实项目这篇都能帮你快速上手。1. Claude Code 到底解决了什么问题从“聊天问答”到“动手干活”1.1 它不是聊天窗口而是一个能动手的“代理”网页版 Claude 更像一位“顾问”你给它看代码它给你建议但改动需要你手工完成。Claude Code 则更像一位坐在你旁边、有权访问项目文件的“实习生”它的工作方式是“感知—决策—行动—观察结果”的循环。比如你说“帮我把登录超时改成 30 分钟”它会先读相关代码确认超时配置在哪然后直接编辑文件再跑一次测试验证。整个过程你看到的不只是文字回复而是一连串工具调用记录读了哪个文件、改了哪个文件、执行了什么命令。这个区别决定了用法上的本质差异在网页版你得把“完整上下文”用文字喂给它在 Claude Code 里它自己会去项目里找上下文你只需要把目标说清楚。我见过不少人把网页聊天的那套习惯照搬过来——拼命把整个文件内容粘进去、反复交代背景——结果发现完全没必要因为工具本身就具备读取项目的权限。1.2 它适合谁、不适合谁适合的典型人群包括程序员日常开发改功能、查 Bug、补测试、做重构它能大幅减少“找代码”的时间接手陌生项目的人进入一个旧仓库让 AI 先梳理结构比人肉翻文件快得多需要写一次性脚本的人快速生成脚本、处理数据、写自动化工具改完即用以及想学习代码的人让它在自己项目里解释一段代码、标注关键逻辑比看教程更有针对性。不适合的情况也要说实话如果你完全不会看代码指望它一键产出整个商业项目风险很大。AI 改出来的代码可能有隐藏问题你至少要有能力审阅 Git diff、看懂报错、跑通测试否则改坏了都不知道怎么回滚。还有一类纯文字、纯图像需求用网页版或桌面版反而更顺手没必要专门上终端工具。1.3 它按“项目目录”工作而不是按“文件夹清单”工作Claude Code 的工作范围以你启动它的目录为边界。你在哪个目录里敲claude它就默认把哪个目录当“项目根目录”。同一个命令在 A 项目里启动它看的是 A 项目的代码在 B 项目里启动它看的是 B 项目。所有对话记录、生成的临时文件也都围绕这个目录展开。刚用的人最容易犯的错是在某个无关目录里启动然后问它“为什么看不到我的代码”——因为你的代码根本不在它眼皮底下。所以正确的习惯是先cd到项目根目录再启动。我自己的动作是先打开终端进入项目文件夹确认git status干净然后再敲claude。这一步虽然简单但能避免后面一大半的困惑。2. 环境准备与安装Node.js 版本、登录方式和 npm 安装的完整链路2.1 第一步确认 Node.js 环境Claude Code 通过 npm 分发需要机器上装好 Node.js。先打开终端执行node -v npm -v如果提示找不到命令说明你还没装 Node.js去官网下载当前 LTS 版本按常规流程装好即可。如果node -v显示的版本号低于 18建议先升级否则可能跑不起来。我自己固定用 LTS长期支持版不以尝鲜为目标稳定优先。版本不对就先升级再继续不用纠结。提示升级完 Node.js 后记得重新打开终端窗口让环境变量生效。用node -v能正常打出版本号说明这一步过去了。2.2 第二步用 npm 全局安装 Claude Code确认 Node 没问题后执行npm install -g anthropic-ai/claude-codemacOS 或 Linux 上如果提示权限不足出现 EACCES 之类的错误在前面加sudosudo npm install -g anthropic-ai/claude-codeWindows 用户一般不需要 sudo直接执行 npm 命令即可。安装完成后验证claude --version能打印出版本号就说明核心程序装好了。这里解释一下为什么要“全局安装”安装到全局后claude命令在任何目录下都能直接调用否则每次都要找到安装目录去启动非常别扭。这也是后面所有操作的前提。2.3 第三步账号登录——订阅用户和 API 用户两条路安装只是第一步真正能用还得完成登录。目前常见的有两种方式。订阅用户走浏览器授权直接在终端执行claude login会弹出浏览器页面登录你的 Claude 账号并授权回到终端后即可使用。这种方式在终端里继续对话时额度走你的订阅套餐。API 用户走密钥方式先在平台后台创建一个 API Key然后设置环境变量export ANTHROPIC_API_KEY你的API密钥设置完再执行claude启动。注意export只在当前终端会话内生效关掉窗口就要重新设置。想省事的话可以把这一行写进 shell 配置文件如~/.zshrc或~/.bashrc但要注意别把密钥提交到公开仓库里否则等于把你的账户额度送给别人用。两种方式怎么选如果你只是想日常写代码、改代码订阅套餐通常更省心不用关心每次消耗多少 token如果是把 Claude Code 接进自动化流程、按量调用那 API Key 形式更灵活。刚上手的同学我更建议先用自己已有的账号跑通一个最小流程别一上来就囤一堆 API 额度。2.4 第四步选一个干净的目录做试验场安装和登录都搞定后先别急着去动真正的生产项目。我强烈建议新建一个临时目录比如mkdir ~/claude-code-lab cd ~/claude-code-lab claude这一步的意义是在小范围、无风险的环境里先体验它的操作方式理解权限弹窗和工具调用长什么样。等熟悉了再进入真实项目。很多人一上来就在核心代码库乱试结果 AI 改了一堆文件后没法回滚体验很糟糕。耐心花十分钟在临时目录里“玩明白”后面能省你几个小时。3. 第一次启动 Claude先搞懂界面、指令与上下文管理3.1 启动后的界面输入框、模型信息和工具调用在项目目录里输入claude并回车你会看到一个交互式界面。核心是一个输入提示符你在那里打字跟 Claude 沟通。界面里通常还会显示当前使用的模型、会话状态这些信息。输入框默认是单行的需要换行时按ShiftEnter插入新行。第一次启动可以先打个招呼式的问题简单介绍一下当前目录下有什么以及这是个什么类型的项目。Claude Code 不会只凭印象回答。它会把当前目录文件列表看一遍你可以看到它执行的命令比如ls -la如果目录里有 README、配置文件它会主动去读然后给你一份有依据的总结。这一下你就能理解“代理”和“聊天机器人”的区别它的回答是建立在真实文件之上的不是猜的。看到 Claude 请求执行命令或修改文件时界面会停下来等你确认这就是权限机制。先不用管具体怎么配置只要记住“有弹窗就认真看一眼再决定允许或拒绝”就好。我见过不少新手看到弹窗就一路“允许”直到它把某个配置文件改乱了才追悔莫及。3.2 最常用的 Slash 指令一张表先背下来在输入框里输入/会弹出所有可用命令。下面这几条是日常使用频率最高的指令作用什么时候用/help查看全部命令和说明忘了用法时/init生成项目级 CLAUDE.md进入新项目时第一次做/status查看当前会话的上下文记忆与待办干到一半想确认进度/compact压缩当前对话上下文上下文快满、“健忘”时/clear清空当前会话并重新开始换任务时/model切换底层模型档位想更聪明或更快时/permissions查看和管理权限规则反复被弹窗烦到时/exit退出 Claude Code用完时有些版本里按CtrlC是打断当前正在执行的操作按CtrlD也可以退出界面。不同版本按钮文字可能有细微差别但核心逻辑是一样的/开头是内置指令普通文字是给 AI 的对话内容。刚开始记不住没关系遇到问题先敲/help它会把所有命令列给你看。3.3 上下文管理为什么它老记得前面说过的话又为什么会“失忆”Claude Code 在一次会话里会记住你们的整个对话历史包括它读取过的文件内容和执行过的命令结果。这份“记忆力”来自上下文窗口。窗口足够大能塞下很多文本但也不是无限大。当你干得太久、塞进去的内容太多时它会慢慢“失忆”——忘记最开始交代的约束或者开始重复问已经回答过的问题。这时候不要硬撑用/compact压缩历史它会把你认为重要的内容浓缩成摘要继续干活。代价是压缩会损失细节如果压缩后它理解偏了就/clear开个新会话重新交代一遍需求。我的经验是一个会话最好只干一件主题明确的事。改完 A 需求开新会话做 B 需求比在同一个会话里连续切换清爽得多也省上下文。刚开始你可能觉得“反正它能记住”于是什么任务都往同一个会话里塞到后面就会发现回答质量直线下降原因就在这里。3.4 进一个新项目先跑 /init 建立项目记忆进入一个真实项目后我建议你做的第一件事是执行/init它会扫描项目里的代码结构、配置文件、已有文档总结出一个精简的项目说明写进项目根目录下的CLAUDE.md文件。这个文件相当于“项目的入职手册”之后每次在这个目录启动 Claude Code它都会读取这份文件来理解项目背景和约定。下一章会专门讲 CLAUDE.md 怎么写这里先记住/init等于给了 AI 一张项目地图之后所有对话都会被这张地图约束和引导。我每次接手一个陌生仓库第一件事永远是/init比看文档快也比自己猜目录结构靠谱。4. 干第一个活用三个真实场景走通读代码、改代码、查 Bug 全流程4.1 场景一接手陌生项目让 Claude 当“带路党”假设你刚拿到一个老仓库目录几百个文件完全不知道从哪看起。别自己点开一个个文件了直接跟 Claude Code 说我刚接手这个项目完全不了解它的结构。请你先梳理一下 1. 这个项目用什么框架、什么语言 2. 入口文件在哪里 3. 核心模块有哪些各自负责什么 4. 如何启动、如何跑测试 先不要修改任何代码只做分析。它会执行一系列只读操作列出目录、读取配置文件、翻看关键模块最后给你一份结构化的项目概览。这里面值得注意的细节是“先不要修改任何代码”这句话——在 Claude Code 里明确标注只读边界非常有用它能防止 AI 在分析过程中忍不住“帮”你改东西。拿到概览后你可以继续追问任何一行选中某个模块问“这个函数是干什么的谁在调用它”它都能基于项目内容回答比自己用 grep 一点点排查快得多。前阵子我接手一个老项目就是用这种方式在两小时内摸清了原本预计要花一整天的框架结构。4.2 场景二改一个具体功能从定位到落地修改读项目只是热身真正体现价值的是改代码。我以一个常见需求举例给一个 Python Web 项目的接口增加参数校验。在 /api/items 这个接口里给 name 字段加两个校验 1. 必填不能为空 2. 长度不超过 50 个字符 改完请告诉我改了哪几个文件、改动了什么并运行项目相关的测试验证。Claude Code 会先找到接口定义的位置阅读相关代码然后提出编辑方案。编辑文件时界面上会显示 diff改动前后对比确认无误后它会征询你的同意再落盘。如果你感觉不对可以直接说“不要改重新想一个方案”。这种“先看 diff 再落盘”的机制很大程度上避免了 AI 乱改的风险。这类任务的要点是需求要尽量具体。字段名、校验规则、验收标准跑测试都写清楚它一次成功的概率就高。如果你只说“帮我加个校验”它可能加一个和你项目风格不一致的实现还得返工。4.3 场景三把报错丢给它让它自己查日志、改代码、再验证排查 Bug 是 Claude Code 最能给我“省脑力”的场景。以前我遇到报错要自己猜原因、打日志、翻代码现在流程变成了我刚刚运行了启动命令报了这个错把完整报错贴进去。请你排查原因 给出修复方案如果方案明确就直接修改代码然后重新运行验证。它会做的动作包括读取报错相关的源码、查看项目配置文件、检查依赖版本、必要时执行一些诊断命令定位根因后动手修改改完再跑一次启动命令确认问题消失。整个过程是一个闭环迭代而不是像网页聊天那样给你一段可能相关的回答。这里我想强调一个习惯贴报错的时候要贴完整不要只贴最后一行“Error: xxx”。AI 排除干扰信息的能力很强给它完整信息它才能判断是语法问题、依赖冲突还是配置错误。只给结论不给上下文等于让医生只看检查结果编号、看不到检查单本身效果差很远。4.4 让“过程”更可控先订计划、再动手、最后验证新手最容易头疼的是 AI 改过头。除了需求写清楚之外还有一个非常实用的技巧在让它动手之前先让它交一份计划。先别改代码。你先告诉我你打算改哪几个文件、每个文件做什么调整、 预计影响哪些功能。我确认之后再执行。这么做有三个好处一是逼着它先想清楚再动手减少误改二是你能在“计划阶段”就纠正方向避免白干三是计划本身就是一份可复现的改动说明方便事后 review。等对工具熟悉了你可以训练自己每次都先要求“计划—确认—执行—测试”四步走。Claude Code 用久了你会发现真正值钱的不是它替你打字而是它帮你把任务拆解成可执行的步骤。5. CLAUDE.md 与权限系统让 AI 记得住规矩、守得住边界5.1 CLAUDE.md项目的“入职手册”比你想的更实用前文说过/init会自动生成 CLAUDE.md这里展开讲讲怎么用好它。CLAUDE.md 的本质是“项目记忆”每次会话启动时Claude Code 都会读取这个文件把里面的约定当成行为准则。这就像给一个新人发入职手册——你不希望他每次都要问你“测试命令是什么”“代码风格什么样”“哪些目录不能动”。一份好用的 CLAUDE.md 大致包含这些内容项目简介一句话说清项目是干什么的常用命令包括启动、测试、构建、部署省得 AI 每次瞎猜代码约定比如命名风格、接口返回格式、目录组织方式重要依赖和框架以及禁止事项比如“不要修改迁移历史文件”“不要动 vendor 目录”。下面是一个示例可以直接参考# 项目记忆某库存管理 Demo ## 项目简介 一个基于 Flask SQLite 的简易库存管理系统提供 REST 接口和单页管理界面。 ## 常用命令 - 安装依赖pip install -r requirements.txt - 启动服务flask run --port 5000 - 运行测试pytest ## 代码约定 - 接口统一返回 { code: 0, data: ..., msg: ok } - 新增接口需要同时更新 api_docs.md - 数据库模型放在 models/ 目录视图逻辑放在 routes/ 目录 ## 禁止事项 - 不要修改 migrations/ 目录下的历史迁移文件 - 不要用全局变量保存业务状态 - 不要在提交前删除注释这个文件不是一次写完就完事的。项目演进到一定阶段我会把新的约定顺手追加进去接口文档位置变了、测试命令改了、新增了核心目录都及时更新。CLAUDE.md 越贴近项目现状AI 的表现越稳定。另外如果你的个人习惯是稳定的比如“所有 Python 项目都用 pytest 跑测试”“提交信息用中文”可以放在用户级配置文件里通常在~/.claude/CLAUDE.md这样对所有项目生效。项目级的放项目根目录用户级的放用户目录两者不冲突配合起来效果最好。5.2 权限机制弹窗出来时你其实有三个选择Claude Code 为了保证安全不是所有操作都能直接执行。当它想执行有副作用的操作时写文件、执行命令、删除文件会停下来征求你的同意。界面上通常给你几个选项大意是“这次允许”“这次拒绝”“以后这类操作都允许”。具体按钮文字不同版本略有差异但逻辑是通用的。初学者第一反应往往是全部点“允许”省事。我的建议是分清楚操作类型再做决定。只读类操作读文件、列出目录、搜索代码基本无风险可以放心允许写文件类操作创建、修改、删除文件要留意 diff确认改动合理命令类操作安装依赖、执行构建、跑测试、清理文件里高风险的命令比如删除目录、重置版本控制、清空数据库一定要先看命令内容再决定。如果你信任 Claude Code 的判断又被弹窗烦得不行可以用启动参数跳过权限确认claude --dangerously-skip-permissions这个参数名字本身就提示了风险跳过所有权限检查相当于把项目的“写操作钥匙”全交给 AI。我只建议在沙箱环境、CI 自动化、或者已经提交和备份过的项目里用不建议在核心生产代码上开着它干活。5.3 权限相关的坑写了文件不代表能跑命令给了命令也不代表能改所有文件权限机制是分门别类的。你允许了“编辑文件”不代表允许了“执行任意命令”反过来允许了“运行测试”也不代表允许“删除源代码目录”。这种细粒度设计是为了防止某一个环节失守导致全盘皆输。实际使用中我遇到过的情况是AI 跑一个很长的操作链中间某一步需要删除临时文件结果因为权限没放行而中断。此时不用急着全局放行可以先在对话里跟它说“临时文件可以清理但不要动任何源码”它多半会重新组织操作只请求必要的权限。笼统地放行所有命令才是真正危险的开始。6. 效率进阶模型切换、会话续聊与批量执行6.1 用 /model 换模型什么时候用哪一档Claude Code 底层可以选用不同规格的模型日常用/model就能切换。不同档位的差别大致是更强的那一档理解力最深、写代码更仔细但响应慢、资源消耗大均衡的那一档是性价比之选日常开发大多数时候用它轻量档响应快、消耗小适合简单总结、批量脚本这类小任务。场景我常用的模型档位重构复杂模块、设计架构方案、疑难 Bug强档日常改功能、写测试、审查代码均衡档批量处理、简单问答、格式整理轻量档不需要每次都手动切会话做到一半发现当前档位不太行直接/model换掉就能继续对话。如果你希望新对话默认用某个模型可以把偏好写进 CLAUDE.md 或用户配置文件里。这个细节很多人不知道但确实能让不同任务都跑在合适的“档位”上既不浪费资源也不耽误速度。6.2 非交互模式claude -p 和一条命令完成一次任务交互模式适合“持续对话干活”但有些时候你只是想快速问一个问题或者把 AI 接进自己的脚本里。这时用非交互模式更合适claude -p 用一句话总结 CHANGELOG.md 最近三个版本的重点变化-p是非交互模式print 模式执行完直接输出结果并退出终端不会进入聊天界面。这个能力很适合放在 shell 脚本里做自动化比如每次提交前自动让它审查一下改动。claude -p 请审查当前 git diff指出潜在问题并按严重程度排序 --dangerously-skip-permissions我在脚本里用--dangerously-skip-permissions是因为自动化环境里没人手动点弹窗。但你如果是在本地跑我还是建议保留权限确认亲眼看到命令内容再放行。非交互模式和交互模式其实是同一套能力的两面复杂的交互式任务放在会话里慢慢磨简单任务一条命令直接出结果效率完全不同。此外还有两个常用参数--continue简写-c接着上一轮会话继续问--resume简写-r从历史会话列表里挑一个恢复。这正好对应交互模式里的“上下文管理”思路很多任务你不想重开续上就完了。6.3 会话管理什么时候清空、什么时候续聊会话管理是我觉得最影响体验、却最容易被忽略的一环。经验法则很简单换任务就/clear新任务最好从干净的上下文开始避免上一个任务的命令、文件和结论污染判断任务没做完但上下文快满了就/compact中途退出终端了回来用claude --continue接着干。还有一个细节Claude Code 默认会把对话记录保存在本地你可以用claude --resume查看历史会话并选择恢复。如果你不想留下记录可以定期清理历史文件。会话管理听起来不酷但它直接决定 AI 回答质量的稳定性。我用了一段时间后最大的体会是保持会话“短而聚焦”比任何参数调优都管用。7. 我踩过的坑和保姆级避坑清单7.1 坑一不给范围让 AI 在庞大仓库里大海捞针有一次接手一个巨型前端项目我让 Claude Code“看一下登录页面的代码分析为什么登录慢”结果它在几百个文件里翻来翻去耗费了大量上下文。后来我发现直接在输入框里用把关键文件加入上下文效率完全不一样src/components/LoginForm.jsx 这个登录页面的性能瓶颈可能在哪输入后可以弹出文件补全选中文件就把内容注入上下文。这样 AI 不用盲目翻仓库你也不用担心它找错文件。这个操作我和身边几个同事验证过属于用过就回不去的技巧。7.2 坑二让它“自由发挥”改代码结果改了不该改的部分AI 有个毛病你让它改 A 功能它顺手“优化”了旁边的 B 模块。这听起来是热心但在一套严谨的项目里就是灾难。解决办法前面提过第一CLAUDE.md 里写清楚禁止擅自改动哪些区域第二每次让它先给计划第三改动落盘前认真看 diff发现无关改动就直接说“把 B 模块的改动撤销只保留 A 功能相关的”。就算真出了意外也别慌只要你有版本控制用git diff查看改动、用git checkout恢复即可。所以我在让 Claude Code 做较大改动之前都会先确认版本控制状态是干净的。改出问题能一键回滚这句话请刻在心里。7.3 坑三上下文塞太满后半程开始“老年痴呆”对话进行到很后面Claude Code 突然表现得像是失忆了忘记你最开始说的是什么、重复问你已经回答过的问题、甚至把两个需求搞混。这不是它变笨了是上下文窗口快满了早期信息被压缩或丢弃。解决办法是不要硬撑/compact压缩历史或者干脆/clear开新会话。我还养成了一个习惯重要的约束条件在对话中途会重复确认一遍比如“记住我们只在 Python 3.11 环境下开发不要引入新的依赖框架”。对长任务来说关键约束说三遍不丢人。上下文管理不是锦上添花而是保证 AI 后半程不掉链子的核心手段。7.4 坑四权限给得太随便让 AI 执行危险命令有一次我在调试数据库脚本AI 想帮我清理临时数据请求执行一条删除命令。我当时没细看就点了允许结果它把测试表的数据清了虽然能恢复但白白浪费了半天时间。打那以后凡是看到删除、重置、强制推送这类高危命令我都会先停下来读一遍命令行再决定允许还是拒绝。常见的高危操作包括但不限于rm -rf、git reset --hard、git push --force、清空数据库、批量替换文件内容。处理方式很简单在 CLAUDE.md 里明确写上这些命令需要人工确认或者在权限配置里对这些命令保持“每次询问”不要设成“总是允许”。权限这件事宁可多弹几次窗也别一失手造成不可逆的损失。7.5 我的几个使用习惯整理成清单给你最后把我自己稳定使用的流程整理一下你可以直接拿去用新项目第一次使用先/init生成 CLAUDE.md并根据项目实际情况补写禁止事项。每项任务开始前用一句话说清目标、范围和验收标准必要的话加一句“先只分析不要改文件”。让 AI 输出计划再动手计划确认后执行。较大改动前确认版本控制状态干净有兜底再动手。每次改动后让 AI 跑相关测试而不是只改代码不验证。一个会话只干一件事换任务就/clear。高危命令永远人工确认不全局放行。按照这套方式用了一段时间之后我的体验是 Claude Code 并不是“把 AI 接进终端”这么简单它本质上改变了我在项目里推进任务的节奏从“我自己查找、自己改、自己验证”变成了“我定目标、AI 执行、我审查结果”。刚开始上手有点不习惯但一旦建立起流程你会发现它能替你省下的远不止复制粘贴那几秒钟。