<!-- title: 零基础用Claude Code造命令行游戏 -->

# Claude Code 入门篇：零基础从安装到造出第一个命令行游戏

## 概述

本教程面向**从未接触过 Claude Code、甚至命令行经验也很少**的零基础读者。你将用大约 1 小时时间走完一条最短路径：在终端里装好 Claude Code，完成首次登录认证，理解交互式对话（REPL）的运作方式，掌握 `/init`、`/clear`、`/help` 等核心斜杠命令，并以一个**命令行猜数字游戏**为载体，学会如何用自然语言驱动 Claude Code 写代码、加功能、修 Bug。学完之后，你不仅拥有一个能跑的小作品，更掌握了"和 AI 结对编程"的基本工作流，可以举一反三地开发任意小工具。

## 前置条件

- 一台 macOS、Linux 或 Windows（建议 WSL）电脑
- 能联网、能打开终端（Terminal / PowerShell / WSL）
- **不需要**有编程基础；如果你已经会装 Node.js，可跳到第 3 步
- 一个可用的 Claude Code 账号（官方订阅登录，或 API Key 方式，二选一）

> 本文以 2026 年 Claude Code 最新版的官方安装流程为准，使用全局 npm 安装方式。

---

## 第 0 步：先搞清楚 Claude Code 到底是什么

很多人第一次接触，会把它误认为"网页版聊天框搬进终端"。**这是最大的误解。**

Claude Code 是一个驻留在你终端里的**智能体编程助手（Agentic Coding Tool）**：它不仅能听懂自然语言、生成代码，还能**自主读取文件、执行命令、创建和修改代码、运行测试**。换句话说，你给它一个目标，它会像真人程序员一样在项目里动手干活，干完再向你汇报。

理解这一点的关键，是三个词：

| 概念 | 通俗解释 | 为什么重要 |
|------|----------|------------|
| **REPL（交互式循环）** | 你说一句、它做一段、再说一句……循环往复 | 决定了你如何"驾驶"它 |
| **工具调用（Tools）** | 读文件、写文件、跑 Bash 命令等"手脚" | 让它真正能动你的项目 |
| **上下文（Context）** | 它当前能"看到"的对话与文件内容 | 用不好会导致它"健忘"或"跑偏" |

记住一句话：**你不是在问问题，而是在带一个会写代码的实习生。** 你给方向、给反馈、给确认，它负责动手。这套心智模型，是后面所有操作的地基。

---

## 第 1 步：环境准备——装好 Node.js

Claude Code 本身是一个用 Node.js 写的命令行程序，所以先得有 Node.js 运行环境。官方要求 **Node.js 18.0 或更高版本**。

**操作说明：**

打开终端，输入：

```bash
node --version
```

**预期结果：**

- 如果输出类似 `v20.11.0` 或 `v22.x.x`（数字 ≥ 18），说明已安装，可直接跳到第 2 步。
- 如果提示 `command not found`，则需要安装。

**安装方式（按平台选一种）：**

- **macOS**（推荐用 Homebrew）：`brew install node`
- **Linux**（推荐用 nvm，避免权限问题）：
  ```bash
  curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
  # 重开终端后
  nvm install --lts
  ```
- **Windows**：安装 WSL2 后按 Linux 方式操作，或从 Node.js 官网下载 LTS 安装包。

**常见问题：**

- **`nvm: command not found`**：安装脚本不会自动生效，需关闭终端再重开，或手动 `source ~/.bashrc`。
- **全局安装时报 `EACCES` 权限错误**：这是用系统 Node 的典型坑。改用 nvm 管理 Node 即可避免，这也是强烈推荐 nvm 的原因。

---

## 第 2 步：安装 Claude Code

Node.js 就绪后，安装 Claude Code 只需一条命令。

**操作说明：**

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

`-g` 表示"全局安装"，装完后你在任何目录都能直接敲 `claude` 启动它。官方包名固定为 `@anthropic-ai/claude-code`。

**预期结果：**

终端会滚动输出下载与解包日志，最后看到类似 `added 1 package in 12s` 即成功。验证一下：

```bash
claude --version
```

能打印出版本号（例如 `2.x.x`）就说明装好了。

**常见问题：**

- **`claude: command not found`**：通常是全局 npm 的 `bin` 目录没在系统 `PATH` 里。运行 `npm config get prefix` 查看安装位置，把其中的 `bin` 子目录加入 `PATH`；或干脆改用 nvm，它会自动配好。
- **公司网络下载超时**：可设置 npm 镜像，例如 `npm config set registry https://registry.npmmirror.com`，装完后再恢复。
- **想升级**：以后重跑同样的 `npm install -g @anthropic-ai/claude-code` 即可覆盖升级到最新版；新版通常向下兼容。

---

## 第 3 步：首次启动与认证

**操作说明：**

在任意目录（建议新建一个练习目录）输入：

```bash
claude
```

首次启动会进入**认证流程**，两种主流方式：

1. **官方订阅登录（推荐新手）**：终端会出现一个网址和一段验证码，用浏览器打开、粘贴验证码、用你的 Claude 账号确认即可。全程不用碰 API Key。
2. **API Key 方式**：如果你使用的是 Anthropic API 密钥（或第三方兼容服务），可设环境变量：
   ```bash
   export ANTHROPIC_API_KEY="sk-ant-xxxxxxxx"
   ```
   然后再敲 `claude`。

**预期结果：**

认证成功后，你会进入一个交互界面，底部出现输入提示符 `>`，光标闪烁，等待你输入。此时它已"上线"，可以开始对话。

**常见问题：**

- **浏览器没有自动打开**：手动复制终端里那段 URL 到浏览器即可。
- **国内网络无法直连官方服务**：这是真实存在的门槛。社区常用做法是配置兼容的 API 端点（通过 `ANTHROPIC_BASE_URL` 等环境变量指向可用的中转服务）。本文聚焦工具本身，具体接入方案请参考文末"延伸阅读"中的国内上手教程。
- **切换账号/服务**：退出后用 `claude` 重新启动可重新认证；社区有 `cc-switch` 等小工具方便在多套配置间一键切换。

---

## 第 4 步：认识交互界面与必备斜杠命令

进入界面后，先别急着写代码。Claude Code 内置了一批**斜杠命令（Slash Commands）**，是高效驾驶它的"方向盘"。在输入框敲 `/` 会弹出候选列表，新手务必掌握这 5 个：

| 命令 | 作用 | 何时用 |
|------|------|--------|
| `/help` | 查看所有命令与用法 | 随时，忘了就查 |
| `/init` | 扫描项目并生成 `CLAUDE.md` 记忆文件 | 进入新项目时用一次 |
| `/clear` | 清空当前对话上下文 | 切换到不相关的新任务时 |
| `/model` | 查看/切换使用的模型 | 想换更快或更强的模型时 |
| `/compact` | 压缩历史对话，保留要点 | 对话很长、想"省着用"上下文时 |

**操作说明：**

先敲 `/help` 浏览一遍，再敲 `/model` 看看你当前用的是什么模型。

**预期结果：**

`/help` 会列出全部命令；`/model` 会显示当前模型名（如 Opus / Sonnet 系列）并提供切换选项。

**常见问题：**

- **该用哪个模型？** 日常小工具用速度快的型号即可；遇到复杂逻辑、大重构再切到最强型号。新手全程用默认即可，别在选模型上纠结。
- **`/clear` 会删掉我的代码吗？** 不会。它只清"对话记忆"，你磁盘上的文件一个字都不会动。这点放心。

---

## 第 5 步：创建你的第一个项目

**操作说明：**

退出当前会话（按 `Ctrl+C` 两次，或输入 `/exit`），在终端执行：

```bash
mkdir guess-game       # 创建项目文件夹
cd guess-game          # 进入它
claude                 # 在项目目录里再次启动
```

关键点：**一定要 `cd` 进项目目录再启动 `claude`**，因为 Claude Code 默认只能"看见"当前目录及其子目录的文件。

**预期结果：**

界面顶部会显示当前工作目录（如 `~/guess-game`），底部又是那个等待输入的提示符。

**常见问题：**

- **我能不能让它操作别的盘/别的目录？** 可以，但新手阶段先让"启动目录 = 项目目录"，避免权限与路径混乱。
- **首次进入会弹权限确认**：当它要执行命令或读写文件时，会向你逐条确认。这是**安全设计**——在确认前，它不会擅自动你的文件。看懂意图后输入 `y` 同意即可。

---

## 第 6 步：用一句话让它造出游戏 v1

现在是见证奇迹的时刻。在提示符里输入下面这段自然语言需求（直接用中文）：

> 请用 Python 帮我写一个命令行猜数字游戏：程序随机生成一个 1 到 100 的整数，让我反复猜，每次提示"大了"或"小了"，猜中就恭喜我并显示总共猜了几次。

**操作说明：**

回车发送。Claude Code 会：① 创建 `game.py`；② 写入完整代码；③ 把代码打印给你看；④ 可能还会主动提议"要不要我帮你跑一下"。

**预期结果：**

你会看到它调用写文件工具，新建了一个 `guess-game/game.py`。批准它运行后，它会在终端里直接启动游戏，让你输入猜测。

**常见问题：**

- **它问我要不要执行 `python game.py`，我该同意吗？** 同意。这是它想帮你验证效果。安全提示同上：看一眼命令本身没恶意就行。
- **生成的代码我看不懂怎么办？** 没关系。继续追问："请逐行解释这段代码"，它会给你讲明白。**看不懂不是障碍，问就是了**——这正是 AI 辅助学习的核心红利。

---

## 第 7 步：在对话里迭代加功能（这才是关键）

真实开发不是一次性写完，而是**一轮轮加功能、改需求**。Claude Code 的强项正是这种"对话式迭代"。不要重写，直接接着提新需求：

```
请帮我加三个功能：
1. 游戏开始前让玩家选择难度：简单(1-50, 10次机会)、普通(1-100, 7次)、困难(1-500, 5次)。
2. 用尽机会还没猜中，要告诉玩家正确答案并显示"游戏结束"。
3. 把每次的成绩（难度、用时次数、是否胜利）追加保存到 scores.json 文件里。
```

**操作说明：**

直接发送。它会读取现有的 `game.py`，理解结构，然后**只改动需要改的部分**，而不是推倒重来。

**预期结果：**

`game.py` 被更新，新增了难度菜单、失败提示、以及一个写 `scores.json` 的小函数。`scores.json` 在你玩一局之后会自动生成，内容形如：

```json
[
  {"difficulty": "普通", "attempts": 5, "won": true, "answer": 73}
]
```

**常见问题：**

- **它把原来能跑的代码改坏了？** 偶尔会。应对三步：① 让它先跑一次看报错；② 把报错原文贴回去，说"这是报错，请修复"；③ 还不行就 `/clear` 重开，换个更明确的说法。修复 Bug 本来就是开发的常态。
- **需求说得太模糊，结果不对**：AI 不是读心术。**需求越具体，产出越准**。把"加个计分"细化为"记录难度、次数、胜负并保存成 JSON"，质量天差地别。

---

## 第 8 步：让它自己跑测试和修 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 在死循环里空转"的习惯**。

---

## 第 9 步：用 /init 固化项目记忆

项目渐渐成型，是时候让 Claude Code"记住"这个项目的约定了。输入：

```
/init
```

**操作说明：**

它会扫描 `guess-game` 目录，生成一份 `CLAUDE.md` 文件，里面自动记录：项目是做什么的、用什么语言、怎么运行、有什么约定。

**预期结果：**

目录下多出一个 `CLAUDE.md`。今后**每次在这个目录启动 `claude`**，它会先读这个文件，立刻"进入状态"。你可以在里面手动补充，例如：

```markdown
## 项目约定
- 单文件即可，所有逻辑放 game.py
- 中文交互提示
- 成绩统一存 scores.json
```

**常见问题：**

- **`CLAUDE.md` 要不要提交到 Git？** 要。它是团队共享的项目记忆，让所有人用的 Claude Code 行为一致。
- **它和 `/clear` 冲突吗？** 不冲突。`/clear` 清对话记忆，`CLAUDE.md` 是持久化的项目记忆，重启也还在。两者一个短期一个长期，配合使用。

---

## 实战案例：完整可运行的命令行游戏

以下是经过上述迭代后，Claude Code 帮你产出的完整 `game.py`（Python 标准库实现，零依赖，可直接 `python game.py` 运行）：

```python
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 一起玩：让它加"历史最高分（最少次数）排行榜"、加"颜色高亮"、加"通关后自动提升下一局难度"。每加一个功能，你对这套工作流就更熟一分。

---

## 工作流程图

```mermaid
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/>+掌握完整工作流]
```

---

## 延伸阅读

- **Claude Code 官方 Quickstart（英文，权威）**：<https://code.claude.com/docs/en/quickstart> —— 安装与第一次使用的官方最短路径
- **Advanced setup（系统要求与多平台安装）**：<https://code.claude.com/docs/en/setup> —— 涵盖 Node 版本、版本管理、卸载
- **官方 GitHub 仓库**：<https://github.com/anthropics/claude-code> —— Release notes、Issue 与最新动态
- **npm 包主页**：<https://www.npmjs.com/package/@anthropic-ai/claude-code> —— 确认包名与最新版本号
- **2026 国内上手教程（中文）**：搜索 "Claude Code 国内安装 cc-switch" 等关键词，解决网络与接入门槛

---

## 训练营适用性评估

- **适合人群**：零基础编程新手、转岗学开发的运维/测试/通信工程师、想入门 AI 辅助编程的非科班人员。
- **训练营类型**：① "AI 编程入门"体验营（半天～1 天）；② 在校学生编程启蒙营；③ 企业内部"降本增效，人人会用 AI 写小工具"培训。
- **预计教学时长**：纯讲授 30 分钟 + 跟做 60 分钟 + 自由加功能 30 分钟，合计约 **2 小时**。
- **考核方式**：学员现场跑通游戏，并向 `game.py` 加入一个自选新功能（如排行榜），截图交互过程与 `scores.json` 即算通过。
- **延伸方向**：本篇为系列"入门篇"，后续可平滑衔接到 Skill 开发、MCP 服务器、Agent 自动化等进阶主题，形成从"会用"到"会造工具"的完整成长路径。

---

## 参考来源

1. [Quickstart - Claude Code Docs](https://code.claude.com/docs/en/quickstart) — 官方快速上手指南，本文安装与首次启动流程的主要依据
2. [Advanced setup - Claude Code Docs](https://code.claude.com/docs/en/setup) — 系统要求、Node 版本、多平台安装与版本管理
3. [@anthropic-ai/claude-code - npm](https://www.npmjs.com/package/@anthropic-ai/claude-code) — 官方安装包名与版本信息确认
4. [anthropics/claude-code - GitHub](https://github.com/anthropics/claude-code) — 官方仓库，Release notes 与工具能力说明
5. [Claude Code 安装与配置（详细教程）- CSDN](https://blog.csdn.net/xhmico/article/details/159132449) — 中文社区教程，补充国内网络与认证方式的实践细节

> [!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 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
