本教程面向从未接触过 Claude Code、甚至命令行经验也很少的零基础读者。你将用大约 1 小时时间走完一条最短路径:在终端里装好 Claude Code,完成首次登录认证,理解交互式对话(REPL)的运作方式,掌握 /init、/clear、/help 等核心斜杠命令,并以一个命令行猜数字游戏为载体,学会如何用自然语言驱动 Claude Code 写代码、加功能、修 Bug。学完之后,你不仅拥有一个能跑的小作品,更掌握了"和 AI 结对编程"的基本工作流,可以举一反三地开发任意小工具。
本文以 2026 年 Claude Code 最新版的官方安装流程为准,使用全局 npm 安装方式。
很多人第一次接触,会把它误认为"网页版聊天框搬进终端"。这是最大的误解。
Claude Code 是一个驻留在你终端里的智能体编程助手(Agentic Coding Tool):它不仅能听懂自然语言、生成代码,还能自主读取文件、执行命令、创建和修改代码、运行测试。换句话说,你给它一个目标,它会像真人程序员一样在项目里动手干活,干完再向你汇报。
理解这一点的关键,是三个词:
| 概念 | 通俗解释 | 为什么重要 |
|---|---|---|
| REPL(交互式循环) | 你说一句、它做一段、再说一句……循环往复 | 决定了你如何"驾驶"它 |
| 工具调用(Tools) | 读文件、写文件、跑 Bash 命令等"手脚" | 让它真正能动你的项目 |
| 上下文(Context) | 它当前能"看到"的对话与文件内容 | 用不好会导致它"健忘"或"跑偏" |
记住一句话:你不是在问问题,而是在带一个会写代码的实习生。 你给方向、给反馈、给确认,它负责动手。这套心智模型,是后面所有操作的地基。
Claude Code 本身是一个用 Node.js 写的命令行程序,所以先得有 Node.js 运行环境。官方要求 Node.js 18.0 或更高版本。
操作说明:
打开终端,输入:
node --version
预期结果:
v20.11.0 或 v22.x.x(数字 ≥ 18),说明已安装,可直接跳到第 2 步。command not found,则需要安装。安装方式(按平台选一种):
brew install nodebash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 重开终端后
nvm install --lts常见问题:
nvm: command not found:安装脚本不会自动生效,需关闭终端再重开,或手动 source ~/.bashrc。EACCES 权限错误:这是用系统 Node 的典型坑。改用 nvm 管理 Node 即可避免,这也是强烈推荐 nvm 的原因。Node.js 就绪后,安装 Claude Code 只需一条命令。
操作说明:
npm install -g @anthropic-ai/claude-code
-g 表示"全局安装",装完后你在任何目录都能直接敲 claude 启动它。官方包名固定为 @anthropic-ai/claude-code。
预期结果:
终端会滚动输出下载与解包日志,最后看到类似 added 1 package in 12s 即成功。验证一下:
claude --version
能打印出版本号(例如 2.x.x)就说明装好了。
常见问题:
claude: command not found:通常是全局 npm 的 bin 目录没在系统 PATH 里。运行 npm config get prefix 查看安装位置,把其中的 bin 子目录加入 PATH;或干脆改用 nvm,它会自动配好。npm config set registry https://registry.npmmirror.com,装完后再恢复。npm install -g @anthropic-ai/claude-code 即可覆盖升级到最新版;新版通常向下兼容。操作说明:
在任意目录(建议新建一个练习目录)输入:
claude
首次启动会进入认证流程,两种主流方式:
bash
export ANTHROPIC_API_KEY="sk-ant-xxxxxxxx"
然后再敲 claude。预期结果:
认证成功后,你会进入一个交互界面,底部出现输入提示符 >,光标闪烁,等待你输入。此时它已"上线",可以开始对话。
常见问题:
ANTHROPIC_BASE_URL 等环境变量指向可用的中转服务)。本文聚焦工具本身,具体接入方案请参考文末"延伸阅读"中的国内上手教程。claude 重新启动可重新认证;社区有 cc-switch 等小工具方便在多套配置间一键切换。进入界面后,先别急着写代码。Claude Code 内置了一批斜杠命令(Slash Commands),是高效驾驶它的"方向盘"。在输入框敲 / 会弹出候选列表,新手务必掌握这 5 个:
| 命令 | 作用 | 何时用 |
|---|---|---|
/help |
查看所有命令与用法 | 随时,忘了就查 |
/init |
扫描项目并生成 CLAUDE.md 记忆文件 |
进入新项目时用一次 |
/clear |
清空当前对话上下文 | 切换到不相关的新任务时 |
/model |
查看/切换使用的模型 | 想换更快或更强的模型时 |
/compact |
压缩历史对话,保留要点 | 对话很长、想"省着用"上下文时 |
操作说明:
先敲 /help 浏览一遍,再敲 /model 看看你当前用的是什么模型。
预期结果:
/help 会列出全部命令;/model 会显示当前模型名(如 Opus / Sonnet 系列)并提供切换选项。
常见问题:
/clear 会删掉我的代码吗? 不会。它只清"对话记忆",你磁盘上的文件一个字都不会动。这点放心。操作说明:
退出当前会话(按 Ctrl+C 两次,或输入 /exit),在终端执行:
mkdir guess-game # 创建项目文件夹
cd guess-game # 进入它
claude # 在项目目录里再次启动
关键点:一定要 cd 进项目目录再启动 claude,因为 Claude Code 默认只能"看见"当前目录及其子目录的文件。
预期结果:
界面顶部会显示当前工作目录(如 ~/guess-game),底部又是那个等待输入的提示符。
常见问题:
y 同意即可。现在是见证奇迹的时刻。在提示符里输入下面这段自然语言需求(直接用中文):
请用 Python 帮我写一个命令行猜数字游戏:程序随机生成一个 1 到 100 的整数,让我反复猜,每次提示"大了"或"小了",猜中就恭喜我并显示总共猜了几次。
操作说明:
回车发送。Claude Code 会:① 创建 game.py;② 写入完整代码;③ 把代码打印给你看;④ 可能还会主动提议"要不要我帮你跑一下"。
预期结果:
你会看到它调用写文件工具,新建了一个 guess-game/game.py。批准它运行后,它会在终端里直接启动游戏,让你输入猜测。
常见问题:
python game.py,我该同意吗? 同意。这是它想帮你验证效果。安全提示同上:看一眼命令本身没恶意就行。真实开发不是一次性写完,而是一轮轮加功能、改需求。Claude Code 的强项正是这种"对话式迭代"。不要重写,直接接着提新需求:
请帮我加三个功能:
1. 游戏开始前让玩家选择难度:简单(1-50, 10次机会)、普通(1-100, 7次)、困难(1-500, 5次)。
2. 用尽机会还没猜中,要告诉玩家正确答案并显示"游戏结束"。
3. 把每次的成绩(难度、用时次数、是否胜利)追加保存到 scores.json 文件里。
操作说明:
直接发送。它会读取现有的 game.py,理解结构,然后只改动需要改的部分,而不是推倒重来。
预期结果:
game.py 被更新,新增了难度菜单、失败提示、以及一个写 scores.json 的小函数。scores.json 在你玩一局之后会自动生成,内容形如:
[
{"difficulty": "普通", "attempts": 5, "won": true, "answer": 73}
]
常见问题:
/clear 重开,换个更明确的说法。修复 Bug 本来就是开发的常态。让 Claude Code 帮你把质量兜底。接着说:
请给这个游戏写几个简单的测试,验证"难度参数正确"和"猜中后能正常结束",
然后用 python 跑一下测试,把结果告诉我。
操作说明:
它会创建 test_game.py,用 unittest 或 pytest 写测试,并主动执行。
预期结果:
终端输出类似 Ran 3 tests in 0.01s ... OK。如果某条测试失败,它会分析原因并尝试修复源码——这一步展示了"AI 自主排错"的完整闭环:写测试 → 跑测试 → 失败 → 改代码 → 再跑,循环直到通过。
常见问题:
ModuleNotFoundError: No module named 'pytest':让它改用标准库 unittest,或让它帮你 pip install pytest(同意即可)。Esc),/clear 后换一种描述,或人工看一眼给出明确方向。新手要养成"别让 AI 在死循环里空转"的习惯。项目渐渐成型,是时候让 Claude Code"记住"这个项目的约定了。输入:
/init
操作说明:
它会扫描 guess-game 目录,生成一份 CLAUDE.md 文件,里面自动记录:项目是做什么的、用什么语言、怎么运行、有什么约定。
预期结果:
目录下多出一个 CLAUDE.md。今后每次在这个目录启动 claude,它会先读这个文件,立刻"进入状态"。你可以在里面手动补充,例如:
## 项目约定
- 单文件即可,所有逻辑放 game.py
- 中文交互提示
- 成绩统一存 scores.json
常见问题:
CLAUDE.md 要不要提交到 Git? 要。它是团队共享的项目记忆,让所有人用的 Claude Code 行为一致。/clear 冲突吗? 不冲突。/clear 清对话记忆,CLAUDE.md 是持久化的项目记忆,重启也还在。两者一个短期一个长期,配合使用。以下是经过上述迭代后,Claude Code 帮你产出的完整 game.py(Python 标准库实现,零依赖,可直接 python game.py 运行):
import json
import os
import random
SCORES_FILE = "scores.json"
DIFFICULTIES = {
"1": ("简单", 1, 50, 10),
"2": ("普通", 1, 100, 7),
"3": ("困难", 1, 500, 5),
}
def choose_difficulty():
print("请选择难度:")
for key, (name, lo, hi, chances) in DIFFICULTIES.items():
print(f" {key}. {name}(范围 {lo}-{hi},{chances} 次机会)")
while True:
choice = input("输入编号: ").strip()
if choice in DIFFICULTIES:
return DIFFICULTIES[choice]
print("输入有误,请重新选择。")
def save_score(difficulty, attempts, won, answer):
record = {
"difficulty": difficulty,
"attempts": attempts,
"won": won,
"answer": answer,
}
data = []
if os.path.exists(SCORES_FILE):
with open(SCORES_FILE, "r", encoding="utf-8") as f:
try:
data = json.load(f)
except json.JSONDecodeError:
data = []
data.append(record)
with open(SCORES_FILE, "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
def play_once():
name, lo, hi, chances = choose_difficulty()
answer = random.randint(lo, hi)
print(f"\n我已想好一个 {lo} 到 {hi} 之间的整数,你有 {chances} 次机会。\n")
for i in range(1, chances + 1):
guess = input(f"第 {i}/{chances} 次猜测: ").strip()
try:
guess = int(guess)
except ValueError:
print("请输入一个整数。")
continue
if guess == answer:
print(f"🎉 恭喜!你用了 {i} 次猜中。")
save_score(name, i, True, answer)
return
print("大了!" if guess > answer else "小了!")
print(f"💥 游戏结束,正确答案是 {answer}。")
save_score(name, chances, False, answer)
def main():
print("===== 猜数字游戏 =====")
while True:
play_once()
again = input("\n再来一局?(y/n): ").strip().lower()
if again != "y":
print("再见!")
break
if __name__ == "__main__":
main()
跑起来后的交互长这样:
===== 猜数字游戏 =====
请选择难度:
1. 简单(范围 1-50,10 次机会)
2. 普通(范围 1-100,7 次机会)
3. 困难(范围 1-500,5 次机会)
输入编号: 2
我已想好一个 1 到 100 之间的整数,你有 7 次机会。
第 1/7 次猜测: 50
小了!
第 2/7 次猜测: 75
大了!
...
进阶留给你和 Claude Code 一起玩:让它加"历史最高分(最少次数)排行榜"、加"颜色高亮"、加"通关后自动提升下一局难度"。每加一个功能,你对这套工作流就更熟一分。
flowchart TD
A[第1步: 装 Node.js ≥18] --> B[第2步: npm install -g<br/>@anthropic-ai/claude-code]
B --> C[第3步: claude 首次认证<br/>订阅登录 或 API Key]
C --> D[第4步: /help /model<br/>熟悉斜杠命令]
D --> E[第5步: mkdir + cd<br/>在项目目录启动 claude]
E --> F[第6步: 自然语言提需求<br/>生成 game.py v1]
F --> G{能跑吗?}
G -->|否| H[第8步: 贴报错<br/>让它修 Bug]
H --> F
G -->|是| I[第7步: 对话式迭代<br/>加难度/计分/存档]
I --> J[第8步: 写测试+自跑<br/>质量兜底]
J --> K[第9步: /init 生成<br/>CLAUDE.md 项目记忆]
K --> L[✅ 拿到可运行作品<br/>+掌握完整工作流]
game.py 加入一个自选新功能(如排行榜),截图交互过程与 scores.json 即算通过。[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
