第五章: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 的机器访问外网。那些都是管道。这一章,是打开水龙头的时刻。
安装
检查 Node.js 版本
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
搞定了。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 + CC
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),而不是依赖对话记忆。下一章会讲这个。
AI 研究助手已就位
在 tmux session 里启动 Claude Code,脱离,用手机重新连入。用手机和 Claude Code 对话,让它列出你 home 目录里的文件。如果它回应了,你现在拥有了一个从世界任何地方都能访问的 AI 研究助手。后面的一切都建立在这个基础上。