☰
Mac上安装Claude Code:从环境准备到实战使用的完整指南
2026/10/16 7:21:19 网站建设 项目流程

1. 安装前的准备与安装方式选择

1.1 Claude Code 是什么,为什么值得一试

先聊清楚这东西到底是干嘛的。Claude Code 是 Claude 官方提供的命令行编程助手,简单说就是一个跑在终端里的 AI 编程搭档。你可以在终端里输入自然语言指令,比如“帮我把这个函数改成异步版本”,它就能直接读取项目代码、定位相关文件、给出修改建议甚至直接动手改代码。它和你在网页对话框里聊天完全不同——它能感知当前目录下的文件结构、能调用系统命令、能追踪上下文,实实在在是长在项目里的工具,而不是一个脱离代码上下文的无脑问答机。

对 Mac 用户来说,装它尤其顺手,因为 macOS 自带终端工具链比较完整,安装依赖的环境配置起来也顺滑。这篇文章就是一份从零开始的图文实操记录,覆盖环境准备、安装方式、账号配置、会用到的几个高频命令,以及我实际踩过的那些坑。不管你是第一次接触这类工具,还是已经在用别的 AI 编码插件想换个更硬核的玩法,这文章都能让你少走弯路。

1.2 两类安装方式的对比预览

Claude Code 目前主流的安装路径有两种,我先说结论,再展开讲细节。

安装方式命令入口适用场景升级方式
npm 全局安装(稳定版)npm install -g @anthropic-ai/claude-code绝大多数用户,稳妥,兼容性经过验证同命令重跑即可
原生安装脚本(预览版)官方提供的 curl 脚本一键安装想第一时间体验新功能,不介意偶尔遇到小毛病脚本同样可升级

个人建议:新手优先走 npm 路线,因为依赖关系更清晰,出了问题也容易排查。如果你已经装了 Node.js 18+,这条路是最省心的。原生脚本的好处是安装过程更自动化,下载的是预编译的二进制包,运行起来不依赖 Node 环境,但这个版本通常对应的是预览功能通道,稳定性比稳定版略逊那么一点点。

我实际测试下来,两种方式装的 Claude Code 在核心功能上没区别,日常写代码、改 bug、重构逻辑这些活儿都能胜任。差别主要在于版本更新节奏和包管理方式,后面详细拆解。

2. 环境准备工作:把地基打稳

2.1 Node.js 版本检测与升级

npm 安装路线的前提是电脑里有 Node.js。很多人以为随便装个版本就行,其实 Claude Code 对 Node 的版本有明确要求:必须 18.0.0 或更高。我最初装的时候用的是某个旧版本 Node,安装过程报了一堆错,当时还以为是网络问题,排查半天才发现是版本不兼容。

先在终端里检查一下自己的 Node 版本:

node --version

如果输出类似v14.17.0这种明显低于 18 的版本,需要先升级。macOS 上最推荐的方式还是通过 Homebrew 升级:

brew update && brew upgrade node

等它跑完,重新打开终端窗口再验证一次版本号,确认 >= 18.0.0 再进行下一步。需要注意的是,升级完 Node 后系统原有的全局 npm 包可能需要重装,这是 npm 的已知行为,后面重装 Claude Code 的时候顺手就处理了,不用提前焦虑。

如果是刚拿到的新电脑,还没有 Node.js,可以用 Homebrew 直接装:

brew install node

这个命令会把 Node 和它的包管理器 npm 一起装上,不需要额外配置。

2.2 磁盘空间与网络环境的硬指标

安装本身占用的磁盘空间不大,npm 包加上缓存也就一两百 MB,但 Claude Code 运行起来之后要读项目文件、可能要拉取依赖、还要跟云端 API 通信,所以网络环境的质量直接影响后续使用体验。需要能正常访问官方 API 服务的网络环境,这一点没什么好说的,也不存在什么特殊网络偏好,只要网络稳定、延迟不高就能正常工作。

我建议在安装之前先确认一下磁盘剩余空间:

df -h

看看可用空间有没有 5 GB 以上的余量。虽然安装包本身不大,但后续你可能还要装其他工具链、建虚拟环境、放训练数据,空间富余一些总归踏实。网络方面,可以用一个简单的命令测试请求的连通性,确保别等到安装到一半才发现网络不通,浪费时间排查。

2.3 推荐终端:iTerm2 还是自带 Terminal

这是个经常被忽略但实际影响体验的问题。macOS 自带的 Terminal 够用,但如果你打算长时间用 Claude Code 工作,我强烈建议换成 iTerm2。原因有几个:iTerm2 的窗口管理更灵活、支持分屏、主题配色丰富、热键唤醒方便。Claude Code 这种命令行交互工具,用起来的核心感受就是“眼睛舒服、手不累”——iTerm2 在这方面确实比原生终端强一些。

另一个加分项是 iTerm2 可以配置触发词高亮,输出日志多的时候视觉上容易分辨重点。当然这不是必需步骤,你完全可以用自带终端走完整个安装流程,功能上没有任何缩水。这个感受层面的差别,等你真正高频用起来之后就会体会到了。

iTerm2 的安装同样走 Homebrew:

brew install --cask iterm2

装完之后打开,再顺手在设置里调一个你看着顺眼的主题字体。动手之前把环境先弄舒服了,后面干起活来效率完全不一样。

3. 详细安装步骤与账号配置

3.1 使用 npm 安装稳定版 Claude Code

环境准备好的前提下,安装其实就是一行命令的事。打开终端,执行:

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

-g参数表示全局安装,这样在任何目录下都能直接运行claude命令。安装过程中 npm 会下载包并在终端里显示进度条,正常几十秒就能完成,视网速而定。

安装完成后验证一下:

claude --version

如果看到类似x.y.z的版本号输出,说明安装成功。这时候你可以在终端里直接输入claude启动交互式对话界面。第一次启动会提示你登录账号,这一步必须完成,否则无法正常使用功能(后面第 3.3 节详细讲)。

我个人的习惯是装完顺手跑一遍which claude,确认命令被正确注册到了/opt/homebrew/bin或者类似的全局 bin 目录下。这个路径与 Node 的安装位置有关,如果which claude没有输出,说明 npm 的全局 bin 目录不在系统的 PATH 里,这一步配置不正确会导致你执行claude时提示“command not found”。

3.2 使用原生脚本安装预览版通道

如果你属于“新功能第一时间想体验”的类型,可以走原生脚本路线。官方脚本下载的是预编译的二进制文件,理论上比 npm 包运行效率更直接,也不需要 Node 环境参与运行。

在终端执行:

curl -fsSL https://claude.ai/install.sh | bash

这条命令会把安装脚本拉下来并立即执行。脚本会自动检测你的系统架构(Apple Silicon 还是 Intel),下载对应的二进制包,安装到用户目录下的某个隐藏文件夹中,然后在~/.zshrc里追加可执行路径。装完之后需要重新打开终端或者让配置生效:

source ~/.zshrc

验证方式一样:

claude --version

原生脚本版本的升级方式也简单,重跑同一条 curl 命令即可。不过强调一下,这个通道是预览性质,遇到小 bug 的概率会高一点点,用的时候有一定的心理预期就好,不必过于担心。日常开发够用,只是没有稳定版那种“什么问题都提前帮你测过”的踏实感。

3.3 登录与 API 授权那点事

安装完成后,运行claude会弹出登录引导,要求用 Claude 账号授权。这一步涉及两个层面的权限:一个是账号身份认证,另一个是令牌的写入权限。

按提示操作就是在浏览器里打开授权页面,然后粘贴终端生成的一次性授权码,确认之后终端就能读取你在账号权限范围内的模型服务。整个流程跟很多命令行工具(比如各类云服务商的 CLI)的逻辑类似。登录过程中唯一需要留意的细节是:macOS 可能会弹出一个“终端想要访问某个文件夹”的系统授权框,一般是因为 Claude Code 会在用户目录下创建配置文件。这个提示要点“允许”,否则可能导致权限不足,后面运行某些功能时莫名其妙报错。

登录完成后,Claude Code 会提示你选择默认的模型 ID,并建议启动时自动拉取最新的功能配置。这些选项按默认来就行,后续想改可以随时通过命令调整。

另外说的是,如果你用的是临时机器或者云开发机,可能不希望把登录态留在机器上。Claude Code 支持设置环境变量来指定账号,配置好后启动时会走 API 密钥模式,绕开交互式登录。这个用法适合进阶玩家,日常个人电脑上用默认的登录方式就好,不必把配置搞得过于复杂。

4. 用法入门与常见报错排查

4.1 首次对话的正确打开方式

安装之后最直接的验证是在终端里输入claude,进入交互模式,然后敲一句简单的指令试试水。我建议的“试水”方式是:让它解释当前目录下的某个文件。比如你建了一个临时目录,里面放了一个hello.py,直接问“解释一下 hello.py 的内容”。它能准确读懂代码、给出说明,说明它跟项目的文件上下文已经打通了。如果这一关过了,后面那些复杂操作基本都能顺利展开。

如果不想进入交互模式、只想一次性提问并从输出里取结果,有个非交互姿势:

claude -p "用 Python 写一个斐波那契函数"

-p(print mode)把所有输出直接打印到终端就结束,不进入循环对话。这个模式在自动化脚本和工具链里特别实用,我平时写 shell 脚本时经常用它来快速生成代码片段,再接管道做后续处理。

日常写代码更舒服的打开方式还是在项目目录里直接跑claude,它会自动识别当前工作目录,你问任何跟项目相关的问题,它都有完整上下文。

4.2 高频使用姿势:代码扫描、改写、调试

Claude Code 的价值不在于“聊天”,在于跟代码库的深度结合。我用下来最有体感的是三个场景:

第一是代码扫描。你丢给它一个目录,让它找潜在的重复逻辑、未处理的异常、明显低效的循环,它能给出一份比较靠谱的问题清单,而且会带上文件路径和行号。这个功能在接手别人的旧项目时特别有用,相当于有人帮你把整个项目的卫生状况快速过了一遍。

第二是局部改写。比如“把utils.py里的老式字符串拼接全部改成 f-string,保持逻辑不变”。这类改动用传统方式手工做,要么是机械劳动、要么容易漏改,但它能准确识别出拼接模式并动手改完。改完记得让它逐一核对行为没变化,这个习惯可以省掉后面很多回归测试的麻烦。

第三是疑难 bug 排查。你贴一段报错日志进去,描述一下上下文,“这个运行时报错是怎么回事”。它会分析堆栈、检查相关代码、给出根因推测和修复建议。有时候它也会判断不准,但大多数情况下给出的排查方向比自己在搜索引擎里漫无目的地翻效率高出不少。

4.3 高频报错汇总与处理速查表

这部分是纯实战干货,都是我在重装、换机、折腾环境时真实遇到过的坑,列成了一张速查表。

报错特征原因分析解决办法
command not found: claudenpm 全局 bin 目录不在 PATH 中,或安装未完成重开终端窗口;确认npm config get prefix路径并加入 PATH;必要时重装
安装时报各种 ETARGET / EINTEGRITY 错误npm 版本太旧、缓存坏了或网络源异常先npm cache clean --force,再升级 npm 本身(npm install -g npm@latest),最后重试
首次启动提示网络故障网络环境无法连接到官方 API 服务检查网络连通性;把终端代理配置暂时关掉再试;确认没有系统级防火墙拦截
启动时卡在“等待授权”,网页打不开浏览器默认配置跟授权服务不匹配试试手动复制授权 URL,粘贴到另外一个浏览器打开并完成授权
出现EACCES权限错误全局安装写入了需要更高权限的目录加sudo运行安装命令,或者改用原生脚本安装方式避开权限问题
升级后发现版本没变化npm 缓存命中旧版本或者全局目录写乱了先npm uninstall -g @anthropic-ai/claude-code彻底卸载,再重新安装

这张表建议存一份在本地。真正踩坑的时候,对着症状排查比临时翻文档快得多。

4.4 清理与卸载的完整姿势

有一些需要彻底卸载的场景:比如全局目录搞乱了想重来,或者机器要交给下一个开发者之前清理痕迹。

npm 安装的卸载很简单:

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

原生脚本安装的卸载稍微麻烦一点。脚本本身没有提供uninstall参数,需要手动删除安装目录下的二进制文件,再把~/.zshrc里追加的那行路径删掉,最后清理缓存目录。具体路径因版本而异,这里给个通用排查思路:打开~/.zshrc找到包含claude关键字的 PATH 配置行,删掉;再检查~/.claude和~/.config/claude-code这样的目录是否存在,确认是缓存而非你的个人配置后再删。

清理登录状态的方式是删除对应的配置目录。macOS 上一般是清理~/Library/Preferences下的相关条目,或者直接删掉~/.claude目录里的登录缓存文件。删了之后下次运行claude会重新走授权流程,相当于机器上不再保留你的账号痕迹,对于公用电脑来说这一步很有必要。

5. 进阶配置:把它调整成趁手的家伙

5.1 升级到本地代码模型模式

Claude Code 支持通过环境变量切换 API 端点,让本地其他模型服务也能接入进来。这个用法相当于是给这个终端工具换了个“大脑”,对于有本地部署模型需求的用户来说是个可玩性极高的选项。配置方式主要是设置两个环境变量:一个指向本地服务的地址,另一个声明要用的模型名称。

在 shell 配置文件里加两行:

export CLAUDE_ENDPOINT=http://127.0.0.1:12345 export CLAUDE_MODEL=your-local-model-id

然后source ~/.zshrc并重新运行claude就能生效。需要注意的一点是:不同本地模型对工具调用的协议支持程度不太一样,实测下来有些模型在这个工具里表现力不从心,工具调用不够准确,经常答非所问。这个问题不是配置错误,而是模型本身的能力边界。如果你想用这个模式,建议优先挑带“函数调用”能力的模型,兼容性好很多。

5.2 与 VS Code 无缝衔接的配置

终端里的交互体验虽然硬核,但很多人的日常工作流还是离不开编辑器的可视化界面。Claude Code 有个专门给 VS Code 用的扩展,安装之后左侧边栏会多出一个面板,可以当图形化前端使用,直接写指令、看结果,不用切终端。

安装姿势是在 VS Code 的扩展市场搜索 Claude Code 插件(注意挑官方的),装完重启窗口。面板打开之后,它会默认挂到当前工作区目录,你看到的内容和终端里启动的是同一个会话上下文,可以两边交替使用。

我实际的混合姿势是:日常看代码、改文件在编辑器里操作,遇到需要让它大规模重构或者跨文件扫描的时候,切到终端让它在更专注的界面下工作。终端模式有个好处是它的全屏输出更适合看大段日志和 diff,编辑器面板则适合边看代码边提问,两个场景各自舒服。

5.3 私有化部署/后端的合规与性能考量

最后额外提一句:如果所在团队有很强的数据隐私要求,想用它做内部代码分析但又不愿意把代码送到任何外部服务,那么走本地模型模式其实是一条合规路。但本地部署意味着你要承担全部推理开销,模型参数量、显存、推理速度这些都会直接影响使用体验。根据我的踩坑经验,显卡显存低于 12 GB 跑 7B 级别的模型都已经比较吃力,如果目标模型更大,还得考虑量化方案、服务并发、显存动态分配这些细节。这不是泼冷水,而是建议你在决定走这条路之前,先算一算硬件账和对接成本,不然装好了结果根本跑不动,白费半天功夫。

走本地模式还有一点值得留意:工具调用的稳定性和模型对系统指令的遵循程度,是影响体验的两个核心变量。我在不同模型后端之间来回切换测试时发现,同一个问题、同一个工作目录,模型能力好的后端能一气呵成地完成“读文件→定位问题→写补丁→解释修改”的闭环,能力一般的后端则是做到一半就停下来胡言乱语。所以如果遇到“工具不理人”“回复不着边际”这类问题,先别急着怀疑配置,极大可能是这个本地模型根本不具备合格的 agent 能力,换个模型比调试参数管用得多。

6. 实战丨用它做一次完整的代码重构

这一节我带你完整走一遍我实际做过的案例,从需求提出到落地全程用 Claude Code 完成,让你对它的工作方式有个直观感受。

6.1 需求描述

假设有这么一段模拟项目 X 里的旧代码,功能是把多个字典合并去重,但实现写得很绕,到处都是临时变量和循环嵌套,可读性差。我的需求是:保持原有行为不变,把这段逻辑精简成一个逻辑清晰的函数,并且手动确认改动前后处理边界没有变化。

我在某个工作目录下写好一个merge_data.py,内容如下:

def merge_data(dict_list): result = {} for item in dict_list: for key in item: if key in result: result[key] = result[key] + item[key] else: result[key] = item[key] return result

这段代码功能上有明显的隐患:如果某个 key 对应的 value 是列表而非数值,+运算就会触发 TypeError。这是一个典型的“隐藏 bug”,光靠肉眼扫代码不容易立刻发现。

6.2 交给 Claude Code 处理

启动交互模式后,我的指令分两步走。第一步先让它分析这段代码的潜在问题:

帮我分析merge_data.py这个函数,找出所有边界问题和类型隐患,不要急着改代码。

很快返回了一份问题清单,条目包括:数字以外的类型会导致运行时异常、空字典列表输入时行为良好但性能仍有优化空间、嵌套循环在数据量大时复杂度是 O(nmk)。看到它列出的第一个隐患我其实很吃惊,因为我原本以为这个函数只是可读性差,没想到还有类型缺陷。

第二步指令:

基于你分析出的问题,把函数改成支持字符串连接和列表拼接的类型安全版本,保留原函数名和返回值格式,改完告诉我改动理由。

它直接把代码改成:

def merge_data(dict_list): result = {} for item in dict_list: for key, value in item.items(): if key in result: if isinstance(result[key], list) and isinstance(value, list): result[key].extend(value) else: result[key] = result[key] + value else: result[key] = value return result

改动理由它也解释得清清楚楚:用isinstance做了类型分支,列表走extend避免生成新列表,其他类型保持+语义不变,同时兼容了字符串和元组这类不可变类型。改完之后它也没有停下来说明就完事,而是建议我用几组测试数据验证改动前后边界行为一致。我照做之后确认,新增逻辑没有破坏原函数任何行为,顺带把类型隐患修掉了。

这个案例看起来简单,但它是 Claude Code 核心价值的一个切面:它能先做审查、再动手实现、再解释思路,流程闭环做得很完整。对于日常开发里大量存在的“看起来能跑但其实有隐患”的代码,这个工作流相当高效。

7. 个人使用心得与避坑清单

最后说说我从踩坑里攒下来的经验。

安装之前花五分钟把环境理清楚,比装到一半出问题再去排查省时得多。Node 版本、磁盘空间、网络连通性这三件事建议提前确认。

npm 路线适合作为首选,遇到权限问题就大大方方加sudo或者是换原生脚本。原生脚本适合追新功能的人,但要有接受小 bug 的心理准备。

登录配置这一步别嫌麻烦,授权码过期了就重新生成一次,不用反复刷新页面折腾。

如果你既想在终端里用、又想在编辑器里用,那就两个都装,它们共享同一套配置和登录态,切换起来没有任何成本。

最后一个真正的干货:遇到command not found: claude,先别急着重装三件套,八成是 PATH 问题。执行export PATH="$(npm prefix -g)/bin:$PATH"之后立刻就能验证。这个命令我每次换机器都要用一遍,每次都灵。

工具本身只是一层壳,真正有价值的是它背后能调用的模型能力以及你跟它配合的工作方式。装好只是第一步,摸清楚它在什么场景下帮得上忙、什么场景下更适合你自己动手,才是让它真正变成生产力工具的关键。这份记录涵盖了从环境准备、安装配置到日常使用、问题排查、进阶玩法的完整链路,照着走能帮你省掉不少我在初期折腾时才踩过的弯路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询