第五章:Claude Code 安装
路修好了,现在该把司机请上车了。
认识你的新研究助手
Claude Code 不是终端里的 ChatGPT。它不是那种你问个问题然后复制粘贴答案的聊天机器人。它是一个自主 agent,住在你的终端里,直接访问你的文件系统。它能读文件,能写文件,能执行 shell 命令,能 SSH 到你的 GPU 服务器。它能编辑你的训练脚本、修 bug、同步代码、启动实验、监控进度——全程不需要你动手。
当你和 Claude Code 对话时,你不是在和一个语言模型闲聊,你是在给一个 agent 下指令,它会去执行。你说"看看 b2 服务器上的训练还在跑吗"。它不会给你一段关于如何检查 tmux session 的通用回答。它会真的 SSH 到 b2,跑 tmux ls,读输出,然后告诉你结果。你说"学习率太高了,改成 1e-4 然后重启"。它会打开配置文件,改掉那个值,把代码同步到服务器,杀掉旧进程,启动新的。
这就是它和你用过的所有 AI 工具的区别。它不只是思考——它行动。而因为它在你的终端里行动,它拥有和你一样的访问权限。你的文件、你的服务器、你的 conda 环境、你的 git 仓库,全部都能碰。
前四章搭建的基础设施让这一切成为可能。SSH 让 Claude Code 能访问你的服务器。Tmux 让它持久运行——你断开连接它也不会消失。ControlMaster 让它高效复用连接。代理配置让你的服务器通过 Claude Code 的机器访问外网。那些都是管道。这一章,是打开水龙头的时刻。
安装
Claude Code 需要 Node.js 18 或更高版本。先检查一下:
node --version如果看到 v18.x.x 或更高,就没问题。否则先安装 Node.js。Ubuntu 上:
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejsmacOS 上用 Homebrew:
brew install node然后安装 Claude Code:
npm install -g @anthropic-ai/claude-code验证安装:
claude --version你应该能看到一个版本号。搞定了。Claude Code 就是一个 npm 包,没有重度依赖。它跑在你的本地机器上——不需要 GPU,不需要 Docker,不需要复杂的配置。
认证
Claude Code 需要访问 Anthropic 的 API。有两种认证方式。
方式一:交互式设置(首次推荐)
在任意目录下直接运行 claude:
claude首次启动时它会引导你完成认证。按照提示登录或输入 API key 即可。
方式二:环境变量
如果你已经有 API key,写到你的 shell 配置文件里(~/.bashrc 或 ~/.zshrc):
export ANTHROPIC_API_KEY="YOUR_API_KEY"然后重启 shell 或 source 配置文件。Claude Code 会自动识别。
API key 从哪来?去 console.anthropic.com,注册账号,生成一个 key。你需要绑定支付方式——Claude Code 不是免费的,这就引出了下一个谁都不想聊但必须聊的话题。
费用明细
说实话。Claude Code 要花真金白银。这不是一个有慷慨免费额度的工具。如果你认真用它做研究,每天都会产生费用。问题是花多少,以及值不值。
Claude Code 使用 Anthropic 的 API,按 token 计费——包括输入(你发送的内容)和输出(它生成的内容)。每次 Claude Code 读一个文件,那是输入 token。每次它写代码或给你回答,那是输出 token。每次它执行命令并读取结果,又是 token。一个典型的研究 session 涉及大量的文件读取、代码生成和命令执行。token 会累积。
以下是根据不同模型,每天真实使用量大概的花费:
Haiku — 约 $1-3/天 快速、便宜。适合简单的日常任务:查看文件内容、执行基本命令、监控状态。不擅长复杂推理或编写精巧的代码。把它想象成一个能干但资历尚浅的助手。
Sonnet — 约 $5-15/天 大多数研究工作的最佳平衡点。代码生成、调试、理解复杂代码库、执行多步指令都很靠谱。这大概率是你的日常主力。
Opus — 约 $15-40/天 最强的模型。最适合复杂推理任务:设计实验、审阅论文草稿、调试微妙的 bug、理解错综复杂的代码。在你需要最好的思考能力时使用,不要用它做日常文件操作。
这些数字假设中等使用强度——每天几小时的主动交互,加上间歇性的监控任务。高强度的日子(项目初始搭建、debug 马拉松、写论文)会偏高。轻量的日子(只是监控训练)会偏低。
替代方案:Claude Max 订阅
Anthropic 提供一个叫 Claude Max 的月度订阅计划,包含 Claude Code 的使用额度。如果你发现自己的日常花费持续超过订阅价格,值得考虑切换。详情查看 anthropic.com。
真正的问题是:值不值?
算一笔账。云上一个 GPU 实例的空闲一小时成本是 $1-4,取决于 GPU 型号。如果 Claude Code 每周抓住一次会浪费 8 小时 GPU 时间的静默失败,它就已经回本了。这还没算你自己时间的价值——你找回的周末、不用再丢失的睡眠、消失的心理负担。
对于预算紧张的博士生,从 Sonnet 开始,设置每日消费提醒。对于有多台 GPU 服务器的实验室来说,Claude Code 的费用在算力账单上就是个零头。
实用建议: 日常工作用 Sonnet。遇到复杂任务——实验设计、棘手的调试、代码架构决策——切换到 Opus。日常监控和简单操作用 Haiku。你可以在对话中途切换模型。
你的第一次对话
是时候见识一下了。进入任意项目目录,启动 Claude Code:
cd ~/your-project
claude你会看到一个提示符。输入一些简单的内容:
这个目录里有什么文件?看看会发生什么。Claude Code 不会瞎猜。它会运行 ls(或使用文件读取工具),读取输出,然后告诉你有什么。它可能还会读几个文件来了解项目结构。
试试更有意思的:
读一下训练配置文件,告诉我学习率设的多少。它会找到配置文件,读取内容,然后回答你。不用复制粘贴,不用切换窗口,不用手动在目录树里翻找。
再给它一个任务:
config.yaml 里的 batch size 是 32,改成 16。它读文件,做修改,给你看 diff。你批准或拒绝。
这就是基本的交互模式:你用自然语言下达指令,Claude Code 用工具去执行,你确认结果。这些工具包括读文件、写文件、执行 shell 命令、搜索代码库等等。Claude Code 会自动选择合适的工具——你不需要告诉它怎么做,只需要告诉它做什么。
再试一个——让 Claude Code 和你的服务器交互:
SSH 到我的 GPU 服务器,看看有没有正在运行的 tmux session。如果你在第二章配好了 SSH,Claude Code 会连上去检查。它用的就是你平时用的 ssh 命令,读的就是你的配置文件。没有什么特殊集成——它就是在你的终端里执行命令,和你一模一样,只是更快,不打错字。
需要知道的基本操作:
- 自然语言输入——Claude Code 理解日常表达
/help——查看可用的斜杠命令/model——在对话中途切换 Haiku、Sonnet、OpusCtrl+C——取消当前操作Ctrl+D或/exit——结束会话- 在 tmux 里往上翻(
Ctrl+b [)可以查看之前的输出——你不在时 Claude Code 做了什么,都能看到
关键洞察:Claude Code + Tmux
前面所有章节的内容,在这里汇聚成了一个强大的模式。
你在第二章学了 SSH。你在第三章学了 tmux。你在第四章配了 ControlMaster。现在把它们组合起来。
在你的本地机器上启动一个 tmux session:
tmux new -s claude在这个 tmux session 里启动 Claude Code:
claudeClaude Code 现在运行在你本地机器的一个持久 tmux session 里。这是整个系统的基石。原因如下。
脱离。 按 Ctrl+b 然后 d。你回到了普通终端。Claude Code 仍然在后台运行,在 tmux 里,就在你离开时的位置。
走开。 去吃晚饭。去睡觉。去另一个城市。
用手机回来。 打开 Termius。SSH 到你的本地机器。重新连接:
tmux attach -t claude就在那里。Claude Code,和你离开时一模一样。你可以用手机输入指令。查看训练状态。启动新实验。修复崩溃的任务。全部通过手机,全部通过 tmux session,全部因为 Claude Code 运行在一个不依赖于任何特定连接的持久环境中。
这就是贯穿整份指南的核心模式:
手机 (Termius) → SSH → 本地机器 → tmux session → Claude Code → SSH → GPU 服务器这条链上的每一环都是持久的、可重连的。手机断了?没关系——tmux 保持着 session。笔记本休眠了?没关系——本地机器继续运行。到服务器的 SSH 连接断了?ControlMaster 自动重连。
这就是为什么我们在安装 Claude Code 之前花了四章讲基础设施。没有 SSH,Claude Code 够不到你的服务器。没有 tmux,你一断开 Claude Code 就死了。没有 ControlMaster,每个 SSH 命令都会创建新连接并抢占代理隧道。基础设施不是可选项——它是将 Claude Code 从一个本地聊天工具变成远程研究助手的关键。
无人值守运行
一旦 Claude Code 在 tmux 里运行起来,它就不需要你在场了。你可以给它一组指令,然后让它自主工作数小时。
这叫做无人值守模式,是本指南中最强大的模式之一。实际操作是这样的。
你连上 tmux session,给 Claude Code 一个复杂任务:
把训练代码同步到 b2 服务器,激活 conda 环境,
用 experiments/baseline.yaml 配置启动训练。
监控前 100 步,确保 loss 在下降。
如果崩溃了,读错误日志并修复问题。Claude Code 开始工作。它用 rsync 同步文件。它 SSH 到服务器。它激活环境。它执行训练命令。它监控输出。你看了一分钟确认方向正确,然后从 tmux 脱离,去过你的生活。
一小时后,你用手机查看。Claude Code 已经启动了训练,确认 loss 在下降,正在监控运行。或者它遇到了一个错误,修好了,重启了——你可以在 tmux buffer 里往上翻,看到具体发生了什么。
关键的思维转变在于:你不再把 Claude Code 当成一个"使用的工具",而是当成一个"值夜班的同事"。你下班时交接工作,早上查看状态。中间的事,它来做。
这就是 tmux 真正的意义。不只是保持 SSH session 活着,而是让你的 AI 助手在你不在的时候保持活着和工作。tmux 里的 Claude Code 是一个能在没有人类输入的情况下持续运行数小时的自主 agent。它使用工具,做决策,处理错误,朝着你给它的目标持续推进。
后面的章节会展示如何让这一切更加强大——hooks(事件触发的自动操作)、watchdog 监控(无需轮询即可检测故障)、定期健康检查。但基础很简单:Claude Code,跑在 tmux 里,通过 SSH 连接到你的服务器。
你不应该期待什么
Claude Code 很强大,但它不是魔法。几件事需要记住:
它会犯错。 有时候它会读错文件,生成有 bug 的代码,或者误解你的指令。重大修改在投入生产前一定要审查。这是一个助手,不是自动驾驶。
它没有无限上下文。 每次对话都有上下文窗口限制。长时间的 session 中,对话早期的内容会被压缩或遗忘。对于必须跨 session 保持的重要信息,你需要写进文件(CLAUDE.md)——这是下一章的内容。
它花钱。 上面已经说过了,但值得重复。设消费提醒。监控用量。不要让它空转在循环里。
它不能替代理解。 Claude Code 能写训练脚本,但你需要理解那个训练脚本在做什么。它能修 OOM 错误,但你需要知道 OOM 意味着什么,以及修复方案是否合理。AI 处理机械性工作。科学判断是你的事。
长对话会衰退。 经过多轮来回交流后,Claude Code 的上下文会被填满。响应可能变慢,或者它会忘记对话早期的内容。遇到这种情况,开一个新 session。重要的上下文应该存在文件里(特别是 CLAUDE.md),而不是依赖对话记忆。下一章会讲这个。
检查点
在 tmux session 里启动 Claude Code:
tmux new -s claude
claude用 Ctrl+b d 脱离。用手机打开 Termius,SSH 到你的本地机器。重新连接:
tmux attach -t claude用手机和 Claude Code 对话。让它列出你 home 目录里的文件。如果它回应了,你现在拥有了一个从世界任何地方都能访问的 AI 研究助手。
就这样。就是这个瞬间。后面的一切都建立在这个基础上。