🎓 Anthropic 学院 · 中文学习版 · 完全免费

Claude Code 101

Claude Code 101

进阶5 个模块13 节课全中文讲解

面向开发者的实战课。无论你是刚入门的工程师,还是没用过 AI 编程代理的老手,这门课会带你从安装到高级定制,把 Claude Code 用进日常开发流程。

在互动学院中学习(含测验与进度保存)→

模块一 · 认识 Claude Code What is Claude Code?

什么是 Claude Code?

Claude Code 是一个在你的终端(命令行)里运行的 AI 编程代理。和聊天式 AI 不同,它能直接读取、修改你项目里的文件,运行命令,帮你真正地把代码写出来、跑起来。

它和聊天式 AI 有什么不同

  • 聊天式 AI:你复制代码进去、再把回答粘回来,来回搬运
  • Claude Code:直接在你的项目里读文件、改代码、运行测试,闭环完成
  • 它是一个「代理(agent)」:能自己决定下一步该用什么工具

它能在哪里运行

  • 终端(Terminal)
  • VS Code
  • JetBrains 系列 IDE
  • Claude 桌面应用
  • 网页版
🧠 自测:Claude Code 和聊天式 AI 最大的区别是?
  1. 回答速度更快
  2. 能直接读写你的项目文件并运行命令 ✓
  3. 只能写 Python
  4. 不需要联网

Claude Code 是一个能直接操作你代码库的编程代理,可以读文件、改代码、运行命令形成闭环,而不只是给出文本建议。

Claude Code 如何工作

理解 Claude Code 背后的几个概念,能帮你更好地驾驭它:代理循环、上下文窗口、工具和权限。

代理循环(The agentic loop)

Claude Code 的工作方式是一个循环:理解你的目标 → 选择一个工具(读文件、改代码、运行命令)→ 看结果 → 决定下一步,直到任务完成。它会自己一步步推进,而不是一次性给完答案。

上下文窗口(Context window)

上下文窗口是 Claude「当前能记住的内容」的容量。项目越大、对话越长,占用越多。学会管理上下文(后面会讲 /compact、/clear、/context)能让它保持高效。

工具与权限(Tools & permissions)

Claude Code 通过「工具」来读写文件、运行命令。出于安全,危险操作会先征求你的同意——你可以逐次批准,也可以开启自动接受。你始终掌握控制权。

示例 Prompt
# 启动 Claude Code
claude

# 然后用自然语言描述任务
> 帮我在 src/utils.js 里写一个把秒数格式化成 mm:ss 的函数,并补一个测试
🧠 自测:「代理循环」指的是什么?
  1. Claude 不停地重复同一句话
  2. 理解目标→用工具→看结果→决定下一步,循环推进直到完成 ✓
  3. 一种付费套餐
  4. 代码里的 for 循环

代理循环是 Claude Code 自主推进任务的方式:不断地选择工具、观察结果、决定下一步,直到目标达成。

模块二 · 你的第一个 prompt Your first prompt

安装 Claude Code

安装 Claude Code 只需要几分钟。它是一个 npm 包,装好之后你就能在任何项目目录里用命令行唤起它。这节课带你完成安装、认证和初次探索。

前置条件

  • Node.js 18 或更高版本(运行 node -v 检查)
  • 一个 Anthropic 账号(Pro、Max 或 Enterprise 套餐,或有 API key)
  • 一个熟悉的终端(macOS Terminal、Windows PowerShell、Linux bash 都可以)

安装步骤

示例 Prompt
# 第一步:全局安装 Claude Code
npm install -g @anthropic-ai/claude-code

# 第二步:检查安装是否成功
claude --version

# 第三步:启动并完成首次认证
claude
# 首次运行会引导你登录 Anthropic 账号或输入 API key

初次认证

第一次运行 claude 时,终端会提示你登录。如果你有 Claude 账号(Pro/Max),选择通过浏览器登录;如果你使用 API key,选择输入 key 的方式。认证完成后,Claude Code 会保存凭据,之后启动不需要重复登录。

🧠 自测:安装 Claude Code 最常用的命令是?
  1. pip install claude
  2. npm install -g @anthropic-ai/claude-code ✓
  3. brew install claude-code
  4. apt-get install claude

Claude Code 是一个 Node.js 工具,通过 npm install -g @anthropic-ai/claude-code 全局安装。安装后用 claude 命令启动。

你的第一个 prompt

安装好 Claude Code 之后,就进入一个真实的项目目录,发出你的第一条指令。这节课演示最经典的开场白:让 Claude Code 读懂一个代码库,然后用自然语言告诉你它是干什么的。

进入项目目录

Claude Code 的能力依赖于它所在的目录。在哪个目录里启动,它就能读取那个目录里的文件。所以第一步,cd 进入你的项目目录,然后再运行 claude。

示例 Prompt
# 进入你的项目目录
cd /path/to/your/project

# 启动 Claude Code
claude

# 然后在提示符后输入你的第一个任务
> 读一读这个项目,用中文告诉我:这是什么项目,主要做什么,技术栈是什么,入口文件在哪里?

Claude Code 会做什么

收到这个指令后,Claude Code 会开始读取项目文件:先看 package.json 或 README,再读主要的源码目录,然后给你一份清晰的项目概览。整个过程你可以在终端里看到它在读哪些文件,这就是代理循环在实际运行。

🧠 自测:在哪个目录里启动 Claude Code,最为关键?
  1. 总在根目录 / 启动
  2. 在你想要 Claude Code 操作的项目目录里启动 ✓
  3. 在桌面启动
  4. 在 /tmp 目录启动

Claude Code 能读取的文件范围取决于它启动时所在的目录。应该先 cd 进入你的项目目录,再运行 claude。

模块三 · 日常工作流 Daily workflows

探索 → 规划 → 编码 → 提交

Claude Code 最推荐的工作方式是四步走:先让它探索代码库,再一起规划方案,然后写代码,最后你审查并提交。跳过前两步直接叫它「改代码」,往往会让它走弯路。

第一步:探索(Explore)

在动手之前,先让 Claude Code 读懂相关文件。这和你自己阅读代码是一回事——理解了上下文,才能做出正确的修改。可以让它读指定的文件、模块或测试,告诉你它理解了什么。

第二步:规划(Plan)

不要直接说「去改这个文件」,而是先和 Claude Code 讨论方案:「为了实现 X,你打算怎么做?要改哪些文件?有没有潜在风险?」让它把计划说出来,你确认之后再开始写代码。这一步能发现很多误解和隐患。

第三、四步:编码与提交

规划确认后,让 Claude Code 开始写代码。代码写完后,仔细检查 diff,确认改动符合你的预期,再提交。不要跳过这一步——Claude Code 很能干,但最终的质量把关在你。

示例 Prompt
# 探索阶段
> 先读一下 src/auth/ 目录下的文件,告诉我用户认证流程是怎么实现的

# 规划阶段
> 我需要在 token 过期时自动弹出重新登录的提示。你打算怎么改?要动哪些文件?

# 编码阶段
> 好,按你说的方案去改,一个文件一个文件地来,每改完一个告诉我
🧠 自测:四步工作流中,「规划」阶段的核心目的是什么?
  1. 让 Claude Code 直接开始写代码
  2. 在动手之前让 Claude Code 说出方案、提前发现问题 ✓
  3. 生成文档
  4. 运行测试

规划阶段让 Claude Code 把要做什么、怎么做说清楚,你确认后再开始编码。这能避免理解偏差导致的大量返工。

上下文管理

上下文窗口是 Claude Code「当前记忆」的容量。对话越长、读的文件越多,上下文就越满。学会管理上下文,能让 Claude Code 始终保持高效、不走弯路。

上下文窗口是什么

每一次 Claude Code 的会话都有一个上下文窗口——它能「看到」和「记住」的内容总量是有限的。当上下文快满时,Claude 会开始忘记之前的内容,或者行为变得不稳定。你可以用 /context 查看当前的使用情况。

三个关键命令

示例 Prompt
# 查看当前上下文使用量
/context

# 压缩上下文(保留关键信息,删除冗余历史)
/compact

# 清空上下文,从头开始(用于切换完全不同的任务)
/clear

什么时候用哪个命令

  • /compact:同一个任务还没完成,但对话已经很长——用它压缩历史、保留重点,继续干活
  • /clear:当前任务已完成,要切换到完全不同的工作——彻底清空,重新出发
  • /context:随时查看,了解剩余空间,判断是否需要压缩或清空
🧠 自测:当你完成一个任务、准备开始一个全新的不相关任务时,最应该用哪个命令?
  1. /compact
  2. /context
  3. /clear ✓
  4. /help

/clear 会完全清空当前对话上下文,让 Claude Code 以全新的状态开始下一个任务。/compact 只是压缩,适合同一任务继续推进。

代码评审

Claude Code 不只是写代码的助手,它也是一个很好的代码评审员。无论是审查你自己写的代码,还是在接受 Claude Code 的改动之前仔细核查,代码评审是保持代码质量的关键习惯。

让 Claude Code 评审你的代码

把你写的代码发给 Claude Code,让它找问题:潜在的 bug、边界条件、性能问题、代码风格、安全漏洞。它的视角和你不同,往往能发现你自己忽略的问题。

示例 Prompt
# 评审一个具体文件
> 帮我评审 src/api/user.js 这个文件,重点关注:1) 有没有潜在的安全问题 2) 错误处理是否完善 3) 有没有明显的性能问题

# 让它解释自己的改动
> 你刚才修改了 auth.js,告诉我你具体改了什么、为什么这么改,有没有潜在的副作用

评审 Claude Code 自己的输出

在接受 Claude Code 的任何改动之前,都应该审查一遍。养成看 git diff 的习惯,确认每一行改动你都理解并认可。特别注意 Claude Code 有时会改动它「顺手」改了但你没要求的地方。

实用的评审技巧

  • 让它解释:「这个改动的逻辑是什么,为什么这样写而不是那样写」
  • 让它找问题:「如果这段代码上线后出问题,最可能是哪里」
  • 让它写测试:「给这个函数写几个测试用例,覆盖正常和边界情况」
  • 保持怀疑:Claude Code 有时会自信地写出有问题的代码,你的判断是最后一道关
🧠 自测:在接受 Claude Code 的代码改动之前,你应该做什么?
  1. 直接提交,Claude Code 不会出错
  2. 仔细看 git diff,理解每一处改动再决定是否接受 ✓
  3. 把代码复制到另一个文件备份
  4. 重启终端

Claude Code 的输出需要你审查后才能接受。看 git diff、理解改动逻辑,是保持代码质量的关键步骤。

模块四 · 定制 Claude Code Customizing

CLAUDE.md 文件

CLAUDE.md 是放在项目根目录里的一个 Markdown 文件,专门写给 Claude Code 看的。每次 Claude Code 在这个项目里启动,它都会先读这个文件,了解你的项目背景和规范。

为什么需要 CLAUDE.md

没有 CLAUDE.md 时,每次开新对话你都要重新告诉 Claude Code「我们用 TypeScript」「测试用 Jest 跑」「提交信息要用英文写」。CLAUDE.md 把这些一次写清楚,之后每个会话都自动生效,你再也不用重复交代背景。

CLAUDE.md 应该写什么

示例 Prompt
# CLAUDE.md 示例结构

## 项目简介
这是一个用 Next.js + TypeScript 构建的电商平台前端。

## 技术栈
- 框架:Next.js 14(App Router)
- 语言:TypeScript(严格模式)
- 样式:Tailwind CSS
- 测试:Vitest + React Testing Library
- 包管理:pnpm

## 常用命令
- 启动开发服务器:pnpm dev
- 运行测试:pnpm test
- 构建:pnpm build

## 规范与约定
- 组件放在 src/components/,按功能模块分子目录
- Git 提交信息用英文,遵循 Conventional Commits 格式

## 不要做的事
- 不要安装新的 npm 包,除非我明确要求
- 不要改动 .env 文件
🧠 自测:CLAUDE.md 最主要的作用是什么?
  1. 替代 README.md
  2. 告诉 Claude Code 项目背景和规范,避免每次重复交代 ✓
  3. 加密项目文件
  4. 替代 .gitignore

CLAUDE.md 是写给 Claude Code 看的项目说明文件,让它在每次会话开始就了解技术栈、规范和约束,不需要你每次重复介绍。

Subagents

Subagents(子代理)是 Claude Code 可以派生出来、在独立上下文里完成特定任务的助手代理。当一个大任务可以拆成多个独立的部分时,Claude Code 会自动或在你的提示下,把子任务委派给子代理并行处理。

什么时候会出现子代理

当你给 Claude Code 一个可以并行处理的复杂任务时,它可能会自动拆解并派生多个子代理同时工作。比如:「同时给 user、product、order 三个模块写单元测试」——Claude Code 可以派三个子代理各自写一个模块,比串行处理快得多。

子代理的工作方式

  • 每个子代理有自己独立的上下文窗口,不会污染主会话
  • 子代理完成任务后,把结果交回给主代理
  • 你可以在终端里看到子代理的创建和进度
  • 主代理负责协调子代理的结果,整合成最终输出
🧠 自测:使用子代理的最大好处是?
  1. 让 Claude Code 回复更短
  2. 多个独立子任务可以并行处理,大幅提高效率 ✓
  3. 减少 API 费用
  4. 让代码运行更快

子代理让多个独立任务可以同时进行,不必排队串行处理,对于可以拆分的大任务效率提升非常明显。

Skills

Skills 是可以赋予 Claude Code 特定专长的可复用模块。把某类任务的标准做法封装成一个 Skill,Claude Code 就会在合适的时候自动调用它,给出更专业、更一致的结果。

Skill 在 Claude Code 里是什么

在 Claude Code 的上下文里,Skill 通常是项目里一个专门的目录(如 .claude/skills/),里面放着描述特定工作方式的 Markdown 文件。Claude Code 在处理相关任务时会读取并遵循这些文件里的规范。

常见的 Skill 场景

  • 代码评审 Skill:统一评审标准,让每次 review 遵循相同的检查清单
  • API 文档 Skill:规定文档的格式和必填字段
  • 测试编写 Skill:规定测试文件结构、命名规范、必覆盖的场景
  • 提交信息 Skill:强制遵循 Conventional Commits 或你团队的格式
🧠 自测:Skills 的核心价值是什么?
  1. 让 Claude Code 写代码更快
  2. 把某类任务的标准做法封装成可复用的规范,保证输出稳定专业 ✓
  3. 替代 CLAUDE.md
  4. 减少 API 调用次数

Skills 把特定任务的规范和做法封装起来,每次 Claude Code 处理该类任务时都会遵循,确保输出的一致性和专业性。

MCP

MCP(Model Context Protocol)让 Claude Code 能连接外部工具和数据源——数据库、API、代码质量工具、内部服务等等。通过 MCP 服务器,Claude Code 的能力边界大幅扩展。

MCP 在 Claude Code 里能做什么

  • 直接查询数据库,让 Claude Code 在分析代码的同时查看实际数据
  • 连接 GitHub/GitLab API,读取 PR 内容、创建 issue
  • 接入内部 API 文档服务,让 Claude Code 了解你们的私有接口
  • 连接代码质量平台(如 SonarQube),在对话里直接获取扫描结果
  • 接入任何你自己构建的 MCP 服务器

如何给 Claude Code 添加 MCP 服务器

示例 Prompt
# 通过命令行添加(推荐新手)
claude mcp add <server-name> <command> [args...]

# 例如:添加一个本地 SQLite MCP 服务器
claude mcp add sqlite npx -y @modelcontextprotocol/server-sqlite ./mydb.db
🧠 自测:给 Claude Code 添加一个 MCP 服务器后,最直接的效果是?
  1. Claude Code 会变得更快
  2. Claude Code 能访问该 MCP 服务器提供的工具和数据 ✓
  3. Claude Code 会自动重启
  4. 减少上下文占用

MCP 服务器向 Claude Code 暴露一组工具和数据接口,接入后 Claude Code 就能在对话中调用这些工具,如查询数据库、调用 API 等。

Hooks

Hooks 让你可以在 Claude Code 执行工具的前后,自动运行你指定的 shell 命令。比如:每次 Claude Code 改完一个文件,自动跑一遍格式化;每次运行命令前,先做一个安全检查。

Hooks 是什么

Hook 是绑定在 Claude Code 工具调用生命周期上的钩子。目前支持两种:PreToolUse(工具调用之前运行)和 PostToolUse(工具调用完成之后运行)。你可以指定匹配哪些工具、运行什么命令。

典型用法

  • 自动格式化:每次 Claude Code 写完文件后,自动运行 prettier 或 gofmt
  • 自动 lint:每次文件被修改后,自动运行 eslint 检查
  • 安全检查:在 Claude Code 运行某些命令之前,先验证目标路径是否安全
  • 自动测试:每次代码改动后,自动运行相关测试
示例 Prompt
// .claude/settings.json 示例
// 每次 Claude Code 写文件后,自动运行 prettier 格式化
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write",
        "hooks": [{ "type": "command", "command": "npx prettier --write \"$CLAUDE_FILE_PATHS\"" }]
      }
    ]
  }
}
🧠 自测:PostToolUse hook 最常见的用途是什么?
  1. 在 Claude Code 执行工具前做安全验证
  2. 在 Claude Code 执行工具完成后,自动做格式化或测试等后处理 ✓
  3. 替代 CLAUDE.md
  4. 管理上下文窗口

PostToolUse hook 在工具调用完成后触发,最适合做格式化、lint、测试等后处理工作,让 Claude Code 的每次改动都自动符合规范。

模块五 · 测验 Quiz

课程测验

欢迎来到 Claude Code 101 的课程综合测验。这里有 8 道题,覆盖本课程的核心概念。测验不计入成绩,重点是帮你回顾和巩固学到的内容。

🧠 自测:Claude Code 和聊天式 AI 最核心的区别是什么?
  1. Claude Code 只能处理 Python 代码
  2. Claude Code 能直接读写项目文件并运行终端命令,形成闭环 ✓
  3. Claude Code 不需要网络连接
  4. Claude Code 比网页版便宜

Claude Code 是一个编程代理,能直接操作你的代码库——读文件、改代码、运行命令,而不是只给出文字建议。

🧠 自测:「代理循环(agentic loop)」描述的是什么?
  1. Claude Code 无限重复同一个任务
  2. 理解目标 → 选择工具 → 观察结果 → 决定下一步,循环直到完成 ✓
  3. 一种付费套餐
  4. 上下文窗口的刷新机制

代理循环是 Claude Code 自主推进任务的方式:不断地选择工具、执行、观察结果,再决定下一步行动,直到完成目标。

🧠 自测:CLAUDE.md 文件的主要作用是什么?
  1. 替代项目的 README,面向人类读者
  2. 告诉 Claude Code 项目的技术栈、规范和约束,避免每次会话重复交代 ✓
  3. 加密项目文件
  4. 配置 npm 包依赖

CLAUDE.md 是专门给 Claude Code 看的项目说明,每次 Claude Code 启动时都会读取,让它了解背景和规范。

🧠 自测:当你完成一个任务、要切换到完全不相关的新任务时,应该用哪个命令?
  1. /compact
  2. /context
  3. /clear ✓
  4. /exit

/clear 会完全清空当前上下文,让 Claude Code 以全新状态开始下一个任务。/compact 只是压缩历史,适合同一任务继续推进。

🧠 自测:MCP 服务器给 Claude Code 带来的核心价值是什么?
  1. 让 Claude Code 回复更快
  2. 连接外部工具和数据源(如数据库、API),扩展 Claude Code 的能力边界 ✓
  3. 减少 API 费用
  4. 替代 CLAUDE.md

MCP 服务器向 Claude Code 暴露外部工具和数据,让它能在编程工作中直接查询数据库、调用 API、访问内部服务等。

🧠 自测:Subagents(子代理)最适合处理哪类情况?
  1. 所有任务都应该用子代理
  2. 一个大任务可以拆成多个独立部分、可以并行处理时 ✓
  3. 上下文窗口快满的时候
  4. 需要格式化代码的时候

子代理让多个独立子任务可以并行处理,每个子代理有自己的上下文,最适合可以拆分的大型并行任务。

🧠 自测:PostToolUse Hook 最典型的用途是什么?
  1. 在 Claude Code 执行任务前做安全验证
  2. 在 Claude Code 修改文件后,自动运行格式化、lint 或测试 ✓
  3. 管理 CLAUDE.md 文件
  4. 添加新的 MCP 服务器

PostToolUse Hook 在工具调用完成后触发,最适合做格式化、代码检查、自动测试等后处理工作,让每次改动都自动符合规范。

🧠 自测:使用 Claude Code 的四步工作流中,「规划」阶段的正确做法是?
  1. 让 Claude Code 直接开始写代码,规划浪费时间
  2. 让 Claude Code 先说出修改方案,你确认后再开始编码 ✓
  3. 自己写好所有代码再让 Claude Code 检查
  4. 跳过规划,直接运行 /clear 清空上下文

规划阶段让 Claude Code 先说出它打算怎么做,你确认方向正确后再开始编码,能有效避免理解偏差和大量返工。

想要测验互动、进度自动保存的完整体验?

进入 AI 学院互动版 →

继续学习其他课程

Claude 101用 Claude 处理日常工作:写作、总结、头脑风暴、整理资料。零基础友好。 Model Context Protocol 入门用 Python 从零构建 MCP 服务器与客户端,连接 Claude 与外部服务。 MCP 进阶专题生产级 MCP:采样(sampling)、通知、Roots 与传输机制。 Agent Skills 入门把任务的标准做法打包成可复用的 Skill,让 Claude 稳定专业地完成。 Subagents 入门用子代理拆分与委派任务,保持主上下文干净。 AI 基础搞懂生成式 AI 到底是什么、怎么工作,建立可靠的心智模型。 应用 AI 基础把 AI 真正用进日常工作:找到高价值场景,养成可靠习惯。 Agents 与工作流让 AI 不止于回答,而是自己分步完成任务、自动化你的工作流。