news 2026/10/1 23:18:43

Claude Code 实战:从安装到完成第一次代码修改

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Claude Code 实战:从安装到完成第一次代码修改

Claude Code 最近被问得很多,原因是它跟普通聊天式 AI 不太一样:它真的会从终端里接手你的项目目录,帮你读文件、改文件、跑命令,直到把一次代码修改闭环掉。这篇就围绕三个关键词来写:安装、起手、第一次修改代码。我会按我自己在真实项目里验证过的路径,带你把整个流程走一遍。适合刚接触命令行的新手,也适合一直用 VSCode、想尝鲜 CLI 工作流的老手。我尽量少说废话,把依赖环境、认证方式、实测步骤和踩过的坑都写出来,你看完至少能自己装好一个能工作的 Claude Code,并且用它完成一次看得见差异的代码修改。

我最近在一个 Python 小工具上实际试了 Claude Code,发现只要把它和 Git 配合使用,整个修改闭环非常顺,但中途也确实有几个隐蔽的坑。下面开工。

1. 安装前,先把思路理顺

1.1 Claude Code 到底是什么

Claude Code 是 Anthropic 官方的命令行编程代理,本质上是一个安装在本地终端里的程序,不是网页对话框。你输入claude启动之后,它会读取当前项目目录里的文件,理解代码结构,然后按照你的指令生成修改方案、直接编辑文件,甚至帮你执行验证命令。

这个定位决定了它的工作方式:它围绕“当前目录”设计,而不是围绕单个文件设计。所以它最适合接载真实项目,尤其在 Git 仓库里表现最好。初次上手的人最容易犯的错,是把它当聊天窗口用,丢一句话“帮我把这段代码优化一下”就等结果。这样当然也能得到答案,但 Claude Code 真正的价值在于它会对照整个项目的上下文去改,而不是对着你贴上来的片段空谈。

换句话说,你要把它看作一个能直接碰代码库的合作者,而不是一个问答机器人。你得先让它理解项目,再给明确任务,它会给你一个可执行、可验证的修改方案。

1.2 基础环境就三样

安装 Claude Code 的硬件门槛极低,普通电脑都能跑,但软件依赖需要先理清:

  • Node.js 环境
  • npm 包管理器
  • 一个可用的账号凭证

官方包名是@anthropic-ai/claude-code,通过 npm 安装到全局目录。Node.js 建议 18 以上,版本太老会报引擎不兼容,后续升级也容易出问题。如果你完全没装过 Node,就去装官方 LTS 版本,装完后在 PowerShell 或者终端里执行node -v检查。

Git 不是 Claude Code 安装的必要条件,但我强烈建议在项目里使用 Git。因为 Claude Code 的每次改动都是真实写入文件的,你不记录差异,等它改完就很难分辨哪里是被 AI 动过的。正确习惯是:先git init,再让 Claude Code 动手。这样改完用git diff一眼就能看到它动了什么,不合意还能一键回退。

1.3 两种认证方式怎么选

Claude Code 的登录验证有两种主流方式:

  • 订阅型账号登录:如果你有 Claude 的 Pro 或 Max 订阅,启动claude后按提示完成浏览器授权,就能直接使用订阅额度,不需要额外准备 API Key。
  • API Key 方式:在 Anthropic 控制台创建 API Key,设置环境变量ANTHROPIC_API_KEY,按 token 用量计费,适合自动化场景和需要精确控制成本的人。

我的建议是第一次做入门验证时用 API Key。原因很现实:订阅登录在某些环境下会有弹窗和账号组织策略限制,而 API Key 只需要配置一行环境变量,出错时定位链路很短。如果你已经有 Claude 订阅,直接登录当然也可以,省去额外计费流程。

还有一点要提前想清楚:你是想用官方 Claude 模型,还是想接第三方模型?如果只是想快速体验改代码,默认官方模型就好。如果看了社区方案想接本地模型,那要理解 Claude Code 默认走 Anthropic API 兼容协议,外部模型需要额外配置环境变量,我放到后面第 5.5 节细说。新手阶段不建议一上来就折腾第三方接入,那会把“安装问题”和“模型问题”搅在一起,排查难度直接翻倍。

2. 安装步骤:从零到能跑

2.1 先确认 Node.js 和 npm

打开终端。macOS 和 Linux 用默认 shell,Windows 用 PowerShell 或 Windows Terminal。先核实基础环境:

node -v npm -v

如果提示命令找不到,说明没装 Node.js,或者装了但没进 PATH。安装 Node 官方 LTS 版本后,记得新开一个终端窗口再验证,因为 PATH 环境变量不会在已经打开的窗口里自动刷新。我在这里踩过坑:安装一路顺利,回到旧窗口依然提示找不到 node,实际上只是没重启终端。

版本太老的话,直接升级到 18+,别想着凑合。npm 版本太老会影响后续claude update,所以尽量保持较新状态。

2.2 用 npm 全局安装

在终端执行:

npm install -g @anthropic-ai/claude-code

-g代表全局安装,这样才能在任意目录直接执行claude命令。如果不加这个参数,命令会躺在当前项目的node_modules/.bin里,换个目录就用不了,体验很割裂。

安装完成后检查:

claude --version

能输出版本号就说明装好了。如果你看到类似claude 不是内部或外部命令的报错,十有八九是 npm 全局目录没进 PATH,具体排查方法在第 5.1 节。

2.3 首次启动和登录

在项目目录下执行:

claude

第一次启动会做几件事:检查版本更新、提示阅读并同意安全策略、请求授权使用当前目录、进入登录环节。如果走订阅登录,终端会给出一个浏览器授权链接,同意之后回到终端就能开始对话。

如果走 API Key 方式,先设置环境变量:

# Windows PowerShell 临时设置 $env:ANTHROPIC_API_KEY="sk-你的key" # macOS / Linux 临时设置 export ANTHROPIC_API_KEY="sk-你的key"

Windows 想永久设置可以用setx ANTHROPIC_API_KEY "sk-你的key",但要记住setx写入的是用户级环境变量,必须新开终端才生效。

启动后你会进入交互界面。第一句话不用急着干活,可以先打个招呼,也可以直接开始任务。另外推荐一个诊断命令claude doctor,它会检查配置、网络连通性、认证状态,遇到“为什么连不上”之类的问题,先跑一遍基本能定位方向。

2.4 目录信任和安全底线

Claude Code 会读取当前目录,并且在你允许的前提下执行命令。它不是沙盒,不会自动隔离危险操作。所以对陌生目录要保持警惕:如果这个文件夹是你自己的项目,正常使用没问题;如果刚从别人仓库拉下来,建议先翻一遍代码再让它动手。

首次进入某个目录时,Claude Code 会请求“信任”。你可以只信任自己清楚的目录,不用把整个 home 目录都填进去。后面习惯之后,还可以通过权限管理命令查看历史授权,随时撤销不信任的路径。

3. 完成第一次真实代码修改

3.1 准备一个最小可复现项目

为了把流程讲透,我在本地建了一个很小的 Python 脚本demo_app.py。它读取 CSV 文件,把内容转成 JSON,再打印统计信息和完整数据。逻辑不算复杂,但足够演示一次真实修改。

# demo_app.py import csv import json import sys def load_csv(path): rows = [] with open(path, newline="", encoding="utf-8") as f: reader = csv.DictReader(f) for row in reader: rows.append(row) return rows def summarize(rows): if not rows: return "empty" return f"{len(rows)} rows, {len(rows[0])} fields" def main(): path = sys.argv[1] if len(sys.argv) > 1 else "data.csv" rows = load_csv(path) print(summarize(rows)) print(json.dumps(rows, ensure_ascii=False, indent=2)) if __name__ == "__main__": main()

这个脚本能跑,但明显有改进空间:参数靠sys.argv[1]取,没有帮助提示;文件不存在时直接抛异常;JSON 只能打印到标准输出,不能写文件。第一次动手,我们做一个有边界的小改造:新增--input和--output参数,支持指定输入文件和输出文件。

开工前先把项目变成 Git 仓库:

git init git add demo_app.py git commit -m "baseline"

保证工作区干净。这样 Claude Code 改完,差异就清清楚楚。

3.2 第一句话要宽,让它建立上下文

进入交互界面后,我第一句话不会直接喊“给我改代码”,而是先让它看项目:

先看一遍当前项目里的代码文件,然后告诉我: 1. 这个脚本的核心流程是什么; 2. 你发现了哪些明显的问题; 3. 如果要加参数解析,当前代码哪些地方会被影响?

为什么要这样开场?因为 Claude Code 需要依靠对话中的文件扫描来建立上下文。第一句话越宽泛,它扫描的范围越全。等真正做局部修改时,它已经了解文件结构,搜索成本低,改起来也稳。

实际表现是它会列出扫描到的文件,并回答上面几个问题。它会请求读取文件或运行命令,这些请求会逐个征求你的同意,不用一次性全放行。看到cat demo_app.py这种无害命令就允许,看到危险操作再拒绝。

这里有一条安全底线:当它请求运行命令时,一定要过脑子。比如执行cat、ls没问题;如果在一个陌生目录请求删除文件或下载远程脚本,请直接拒绝。这个确认机制是保护你的最后一道闸。

3.3 第二个回合给出明确修改任务

建立上下文之后,再提出具体修改需求:

帮我完成以下修改,只动 demo_app.py,不要动其他文件: 1. 使用 argparse 新增 --input 和 --output 两个参数; 2. --input 指定输入 CSV 路径,默认 data.csv; 3. --output 指定输出 JSON 路径,如果不提供则把结果打印到标准输出; 4. 保持原有统计打印逻辑不变; 5. 处理文件不存在的情况,给出友好报错。 改完之后把启动命令的示例格式写出来。

这组要求看起来啰嗦,但它价值巨大:范围、行为、边界、验证方式都明确了。Claude Code 的强项是执行明确任务,而不是猜你心里想的是什么。如果你只丢一句“让程序支持参数”,它很可能给出一版你不能接受的方案,然后你们开始来回拉扯,浪费时间。

执行过程中,它会生成修改块,并让你确认。不同版本交互略有差异,有的显示 diff 后按 y 应用,有的在编辑面板里接受。无论哪种,思路一样:先审,再确认。第一次用,哪怕只改两行也建议先看完 diff 再回车。

3.4 运行验证,别只听它说“已完成”

修改完成后,我一般不会立刻信它“已经完成”,而是让它自己跑验证。可以在对话里继续提需求:

请运行 python demo_app.py --help 确认参数解析正常,再运行带 --input 的命令验证输出。

执行之后,再让它把结果写入文件,并检查文件内容。实测下来,这类小任务通常一次通过,但我也见过它把sys.argv[1]的旧逻辑没删干净,导致参数冲突。所以验证必须人工看结果,不能只看“0 errors”。

完整闭环大概是这样的节奏:

你: 请运行新脚本的 --help 看参数是否正确 Claude Code: 已执行,输出里包含 --input 和 --output 两个选项 你: 用样例数据跑一遍,并把结果写到 out.json Claude Code: 已执行,out.json 已生成 你: out.json 里的行数和代码里的统计一致吗? Claude Code: 一致,行数都是 3

这套来回就是一次代码修改的完整流程:提目标、改代码、运行验证、纠正、确认。第一次使用不建议尝试大重构,从小改动开始,你会慢慢建立对这个工具能力边界的感知。

3.5 用 git diff 做人肉审查,然后提交

最后一步,人工审阅变更:

git diff demo_app.py

你会看到类似删除sys.argv、导入argparse、新增parse_args()之类的改动。如果你懂 Python,就自己读一遍;如果不太懂,可以让 Claude Code 用中文解释每一处 diff。但请记得,它的解释也可能是一种合理化的自我辩护,必须和 diff 内容对得上,不能盲信。

确认无误后提交:

git add demo_app.py git commit -m "refactor: 增加命令行参数解析和输出文件支持"

为什么要强调 Git?因为 Claude Code 本质上是快速生成补丁的工具。没有版本控制时,你根本不知道它改了谁、改哪里;有了 Git,你随时能回到修改前。无论多赶,我都会先建 Git 仓库再让它动手。

4. 让它真正进入日常开发工作流

4.1 在 VSCode 里配合使用

很多人不习惯单独开终端,喜欢在 VSCode 里干活。最简单的办法是打开 VSCode 项目文件夹,按 Ctrl +打开集成终端,然后直接输入claude`。VSCode 的集成终端默认就在当前项目目录,Claude Code 会自动把整个工作区当作上下文,配合文件树使用非常顺。

如果你想要图形界面,也可以在扩展市场里搜 Claude Code 相关插件。但要提醒一句:第三方插件质量参差不齐,有的只是套了个壳,有的在网络层多做一层封装,出了问题反而更难排查。我的习惯是把 CLI 当作主要入口,插件只作为可选加速。

还有一种进阶玩法:在.vscode/tasks.json里配置一个自定义终端任务,绑定快捷键,一键启动 claude。这个属于可选项,入门阶段知道有这条路就行。

4.2 用项目说明文件管理规则

Claude Code 支持项目级自定义规则,通常放在CLAUDE.md文件里。你可以在里面写清楚:项目结构、不要碰的目录、测试命令、代码风格。每次对话开始,Claude Code 会自动读取这份文件作为默认约束。

我常用的模板大概是:

# 项目规则 - 后端代码在 src/ 下,测试在 tests/ 下 - 禁止修改 migrations/ 目录 - 运行测试:pytest tests/ - 错误信息使用中文,代码注释保持简洁

加上这份文件之后,它改出来的代码会明显更“懂规矩”。第一次使用不用写太复杂,三五条就够,后续遇到它反复犯同一个错,再把对应规则补进去。

4.3 几个值得记住的斜杠命令

进入 Claude Code 交互界面后,输入/就能看到命令列表。初学阶段先记这几个:

命令作用
/help显示帮助和命令列表
/clear清空当前对话上下文,重新开始
/compact压缩长对话摘要,节省上下文,继续当前任务
/init生成或更新 CLAUDE.md 项目规则
/status查看会话状态和上下文占用
/cost查看本次会话花费(API 模式)

不同版本的命令会有些变化,以你本机/help显示为准。我常用的节奏是:任务中途发现上下文太长、回答开始遗忘早期结论,就执行一次/compact;任务结束后执行/clear,避免上一个任务的记忆污染下一个任务。

4.4 长会话和上下文管理

在 API 计费或者订阅限额下,上下文管理是使用 Claude Code 的核心技能。项目扫描、文件读写都会很快消耗上下文窗口。如果它开始“失忆”,不要继续发消息叠加,而是执行/compact压缩上下文。

开发时我强烈建议拆任务:不要让它一口气改 10 个文件,而是两三个文件作为一个小任务,任务之间用/clear断开。实测下来,上下文干净的会话,代码修改准确率高很多。连续多任务互相干扰的对话模式下,输出质量肉眼可见地下降。

5. 常见问题速查:我踩过的坑都在这里

5.1 “claude 不是内部或外部命令”

这个报错排第一。原因基本是 npm 全局目录没加进 PATH。处理路径:

npm config get prefix

以输出结果为基础,把对应的 bin 或 Scripts 目录加进系统环境变量。Windows 通常是C:\Users\<用户名>\AppData\Roaming\npm,macOS 和 Linux 常见/usr/local或用户目录下的.npm-global。之后新开终端,再验证claude --version。

还有一个隐蔽情况:如果你用 nvm 管理 Node 版本,全局包只装在某个特定版本里,切换到别的 Node 版本就会找不到 claude。这时要么切回原来的版本,要么在当前版本重新npm install -g @anthropic-ai/claude-code。

5.2 认证失败或组织策略限制

如果提示Your organization has disabled Claude subscription access for Claude Code,说明当前登录账号被组织管理员在后台关闭了 Claude Code 开关。可能是公司统一配置,也可能是你登录的是组织账号而不是个人账号。处理办法:

  • 确认当前登录身份是个人账号还是组织账号;
  • 如果是组织账号,要么找管理员开启开关,要么换成个人账号重新登录;
  • 这个限制一时解决不了的话,直接用 API Key 方式接入,因为 API 计费走 API 凭证,和订阅开关是两套体系。

如果报的是invalid api key,那就重新生成一个 key,再检查环境变量是否有旧值残留。注意 PowerShell 里$env:设置只对当前窗口有效,重启终端就丢失了,别到时候以为 key 被重置。

5.3 网络或连接问题

请求超时通常来自两个来源:本机网络不通,或者终端进程被企业网络出网策略拦住了。在公司网络环境时,需要按企业给的网络配置方式处理;在个人网络时,要检查防火墙有没有拦截 Node 进程。你可以用claude doctor先看诊断结果。

如果代码修改到一半网络断开,对话框会卡住。此时退出再重新进入,用claude --continue恢复上次对话。网络恢复后通常能接着跑,不用从零开始。不过不同版本对会话恢复的支持略有差异,以/help显示为准。

5.4 模型权限或模型不存在

看到类似model not found或access denied的报错,先检查两件事:当前账号是否有权限访问所选模型,以及环境变量里有没有设置奇怪的模型名。如果配置了ANTHROPIC_MODEL,确保模型 ID 真实存在,不要随便填一个没见过的名字。

使用订阅登录时,某些模型可能需要更高等级套餐才能调用。这种情况下可以改用 API 方式,或者降低模型规格。

5.5 想把 Claude Code 接到本地或第三方模型

看到不少社区方案讨论本地模型接入,比如 LM Studio,或者各种第三方模型接口。Claude Code 默认面向 Anthropic API 设计,但通过兼容层确实可以接本地或第三方服务。常见做法是设置环境变量:

export ANTHROPIC_BASE_URL="http://localhost:1234" export ANTHROPIC_AUTH_TOKEN="你的token" export ANTHROPIC_MODEL="你的模型名"

然后启动claude。这里必须提醒:这是社区兼容玩法,不是官方主推路径。工具调用能力、权限请求机制可能在部分模型上失效,导致明明模型能写代码,却无法在终端里正确执行命令。

我的建议永远是先跑通官方模型,完整理解工作流之后,再考虑本地模型。第一次就把兼容层和安装问题混在一起,真的会怀疑人生。

5.6 权限和安全事故预防

最严重的实操事故,是让 Claude Code 在一个包含密码、密钥的目录里乱跑,然后它把关键内容写进对话或代码里。安全底线建议:临时代码使用一次性密钥,项目里不要提交.env文件;如果实在无法避免,至少在对话层面把关,拒绝它读取无关的敏感文件。

另外,不信任的代码不要让它自动执行。它请求的每个命令都要经脑子过一次:npm install是常规操作;curl 某个脚本 | sh这种,哪怕 AI 说“为了让项目更好”,你也要自己判断脚本内容。信任不是一次性授权,而是每次执行都保持清醒。

最后说点实在的

我实际用下来的体会是,Claude Code 最顺手的场景就是“小步快跑”:小改动、明确约束、马上验证。它不适合那种你自己都说不清楚的需求,你越模糊,它发挥越差。每次让它修改之前,我会在脑子里把任务范围圈小几圈,再把它需要跑的命令和预期输出告诉它,这样一轮通过率会高很多。

最后分享一个习惯:每次升级 Claude Code 之前,先看一眼本机 Node 版本;升级后第一时间跑一次claude doctor做检查。这样能避免很多“上次还好好的,今天突然坏了”的玄学问题。对这个工具,始终保持“它辅助我干活,但不是替我负责”的心态,修改完的代码永远自己审一遍,这样它才是靠谱的伙伴,而不是一个糊弄你的打字员。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 23:17:56

WorkBuddy智能体实战:从聊天框到数字劳动力的工作流搭建指南

1. 当“聊天框”变成“工位”&#xff1a;WorkBuddy到底在解决什么问题 大多数人第一次接触AI工具&#xff0c;路径都差不多&#xff1a;打开一个对话框&#xff0c;输入问题&#xff0c;得到一段回答&#xff0c;复制走人。这个模式在“问知识”“写文案”“改代码片段”这类场…

作者头像 李华
网站建设 2026/10/1 23:17:55

Java实战路线:10款小游戏从入门到进阶开发指南

我到现在还记得第一次用Java写出“猜数字”时&#xff0c;黑窗口里那个跳动的反馈给我带来的兴奋感。没有数据库、没有框架、没有复杂的架构&#xff0c;就是Random、Scanner和while循环&#xff0c;却让我第一次Feel到“我写的代码真的能跑起来”。后来我陆续带过不少零基础转…

作者头像 李华
网站建设 2026/10/1 23:17:45

Vue 3生产级甘特图实现:从CSS Grid渲染到拖拽依赖连线

1. 为什么甘特图在前端项目里总是“看起来简单&#xff0c;做起来崩溃”我第一次接到“用 Vue 实现甘特图”的需求时&#xff0c;心里想的是&#xff1a;不就是个带时间轴的条形图&#xff1f;拖拽一下、点几下、改个颜色——顶多半天搞定。结果三天后&#xff0c;我在控制台里…

作者头像 李华
网站建设 2026/10/1 23:16:50

FEX-Emu + Wine + DXMT:跨平台运行x86-64 Windows应用实战

1. 从"Madeira"这个名字说起&#xff1a;一个跨平台兼容层的野心 第一次看到"Madeira"这个项目名&#xff0c;很多人会以为是某个旅游项目或者葡萄酒品牌。但在跨平台兼容和系统仿真这个圈子里&#xff0c;这个名字背后代表的是一类非常硬核的技术方向——…

作者头像 李华
网站建设 2026/10/1 23:14:35

从零实现PyTorch多头注意力:原理、代码与调试避坑指南

1. 注意力机制到底解决了什么问题1.1 从翻译任务里的一个尴尬现象说起早些年做机器翻译的时候&#xff0c;我遇到过一个很典型的问题&#xff1a;输入一句中文“我爱吃苹果”&#xff0c;模型翻译成英文时&#xff0c;前面几个词都翻得挺准&#xff0c;到了“苹果”这里&#x…

作者头像 李华