文章

Claude Code 基础教程以及使用心得分享

Claude Code 基础教程以及使用心得分享

自从 Claude Code(下文简称 cc)支持 Claude Pro 订阅用户之后,它的身影便频繁出现在各大技术论坛,常被用来与 Cursor 等 AI 编程工具作比较。作为 Cursor 的年费用户,我已经在项目中建立一套成熟的 Cursor 工作流,因此虽然很想体验,但迟迟并没有下定决心。

最近 Cursor 的计费模式调整,从按次计费改为按 API 用量计费。在我看来是变相削减用量。于是,我一边发邮件申请切回旧方案(顺带一提,邮件申请通过了),我一边开通了 Claude Pro,打算先用 cc 过渡一阵。

经过一段时间的探索,我发现 cc 确实名不虚传。它和 Cursor 各有所长,完全可以相辅相成,并不是替代关系。后续我打算双持,搭配使用。

基础入门

什么是 Claude Code

Claude Code 是 Anthropic 官方基于最新的 Claude Opus/Sonnet 4 开发的 CLI AI 编程工具。

和常见的 IDE 不同,cc 完全运行在终端中,没有图形界面。对于习惯使用图形界面来开发的程序员来说,刚开始使用 cc 可能会有些不适应。不过,这两者并不冲突。你完全可以在终端中使用 cc 开发,再回到 IDE 中审查代码、提交 commit、执行 rebase。

安装

本文主要介绍在 macOS 和 Linux 系统上安装并使用原生 cc 的方法。

如果你想:

  • Windows 系统上使用,需要额外配置,具体方法可以参考 《 Claude Code 终极版FAQ指南 》
  • 使用非 Anthropic API 格式的 API,如 Gemini API、OpenAI API,可以参考 Claude Code Router 项目
  • 使用支持 Anthropic API 格式的非官方 API(如第三方中转、Kimi K2),可以通过配置环境变量 ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKEN 实现。

准备

要使用 cc,你需要准备:

  1. 一个稳定的梯子
  2. Claude Pro 订阅的 Claude 账号

安装与代理配置

你可以使用下面的命令安装 cc:

1
npm install -g @anthropic-ai/claude-code

由于终端不走系统代理,如果你没有开全局代理或者 TUN 模式,需要为终端配置代理。切记一定要配置好代理,否则可能因为 IP 问题被封号(A 社封号相当严格)。

在终端执行以下命令,根据你的代理工具修改端口号:

1
2
3
export HTTPS_PROXY=http://127.0.0.1:6152
export HTTP_PROXY=http://127.0.0.1:6152
export ALL_PROXY=socks5://127.0.0.1:6153

如果不想每次都输入以上三条命令,也可以直接在 ~/.claude/settings.json 中配置:

1
2
3
4
5
6
7
{
    "env": {
	    "HTTP_PROXY": "http://127.0.0.1:6152",
	    "HTTPS_PROXY": "http://127.0.0.1:6152",
	    "ALL_PROXY": "socks5://127.0.0.1:6153"
    }
}

登录

整个登录流程如下:

  1. 运行 cc:claude
  2. 首次运行,cc 会提示你选择主题,然后进入登录页面。
  3. 登录时选择 “Claude account with subscription”,使用订阅账号登录。
  4. cc 会自动打开浏览器让你登录 Claude 账号。如果在远端服务器上运行 cc,稍等一小会之后,cc 会给你一个临时链接,你可以在本地机器上用浏览器打开这个链接,登录 Claude 账号。在浏览器登录账号之后,屏幕上会显示一个授权码(code),把它粘贴到终端中并回车,即可完成远端服务器上 cc 的登录。

登录成功后,你可以直接在对话框中与 Claude 交互。不过,要实际在项目中高效地使用它编程,我们还需要先进行一番配置。

配置

要在项目中使用 cc,你需要先 cd 到项目根目录,然后再运行 claude。在运行之前,我推荐先配置好项目的 CLAUDE.md 以及 MCP,这能极大增强 AI Agent 的能力。

CLAUDE.md

CLAUDE.md 是 Agent 的记忆文件,每次会话开始时都会自动载入上下文。你既可以在 cc 中直接使用 /init 生成,也可以在项目根目录下手动创建。

如果想自己动手,但又不知道从何写起,你可以参考官方最佳实践教程中推荐的 CLAUDE.md 内容:

  • Common bash commands(常用 bash 命令)
  • Core files and utility functions(核心文件、函数)
  • Code style guidelines(编码规范)
  • Testing instructions(测试指令)
  • Repository etiquette (e.g., branch naming, merge vs. rebase, etc.)(仓库规范)
  • Developer environment setup (e.g., pyenv use, which compilers work)(开发者环境配置)
  • Any unexpected behaviors or warnings particular to the project(项目中的异常行为或者警告)
  • Other information you want Claude to remember(其它你想要让 cc 记住的信息)

你还可以参考 Gemini CLI Repo 下的 GEMINI.md,两者的作用是一样的。下文我也会分享我写 CLAUDE.md 的方法论和心得。

CLAUDE.md 支持项目级(在项目根目录)和系统级(在 ~/.claude/ 目录)两种配置。你可以把跨项目的规则写到系统级配置中。

MCP

MCP 的作用以及我推荐的一些 MCP 服务器我在 Cursor Vibe Coding 心得分享已经分享过,在这里就不再赘述。

在 cc 中,你同样可以为项目级(在项目根目录创建 .mcp.json)和系统级(配置 ~/claude.json)配置 MCP。

以下是一个配置示例:

1
2
3
4
5
6
7
8
9
10
11
12
{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp"]
    },
    "mcp-feedback-enhanced": {
      "command": "uvx",
      "args": ["mcp-feedback-enhanced@latest"]
    }
  }
}

你也可以使用 claude mcp add 命令来配置 MCP 服务器,具体可以参考官方文档:Model Context Protocol (MCP)

配置好之后,你可以使用 claude mcp list 来检查 MCP 服务器连接状态。

实战技巧与心得

书写 CLAUDE.md

虽然可以直接使用 /init 一键生成,但我一般喜欢自己写 CLAUDE.md,可以定制化程度和可玩性都更高。

在实践中,我摸索出一套 CLAUDE.md 模板结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 项目开发指南

## 工程师角色

你是一个【角色】,擅长【技术栈】。

### 工作流程

【工作流程】

### 要求

【要求】

### 技术栈要求

【项目技术栈】

## 项目架构概述

【项目架构】

## 常用命令

【常用命令】

## 编码规范

【编码规范】

---

【其它】

每个参数解释如下:

  • 【角色】:为 AI 定义角色,比如“世界级的全栈工程师”、“世界级的前端工程师”
  • 【技术栈】:大方向上的技术栈,比如 React、Python、Rust
  • 【工作流程】:定义 AI 的工作流程。我在 Cursor Vibe Coding 心得分享中分享过一些工作流程,比如 RIPER5、基于任务拆解的工作流。
  • 【要求】:你对 AI 的要求。比如”使用简体中文回复“、”一定要多使用 interactive_feedback 工具多向我反馈、报告工作以及下一步任务。“
  • 【项目技术栈】:具体的技术栈,比如:
    • 语言:Python 3.11
      • 依赖管理:uv
      • 测试框架:pytest
      • 代码质量:ruff
    • 配置管理:python-dotenv
    • Web 框架:FastAPI
    • 数据校验:Pydantic
  • 【项目架构】:简单介绍项目架构,比如有哪些服务、前端是什么、后端是什么、它们怎么通信。也可以是文件夹目录说明
  • 【常用命令】:项目中常用的命令及其含义。一定要有!一定要有!一定要有!如果没有 AI 会乱猜,执行一些奇怪的命令,很浪费时间和 token。比如:
    • frontend 目录下:
      • npm run dev:启动前端项目
      • npm run build:构建前端项目
      • npm run lint:执行 ESLint
    • backend 目录下:
      • uv sync --all-groups:更新依赖(包含开发用的所有依赖)
      • uv run pytest:运行测试
  • 【编码规范】:定义编码规范。我一般会用 审美与提示词书写 中的方法写一套编码规范。
  • 【其它】:其它想要添加的部分。比如,如果是一个前端项目,我会写一份 UI/UX 设计规范。

Plan mode

在 cc 中,连按两次 shift + tab 可以进入 Plan mode(规划模式)。在规划模式下,cc 会自动理解需求、搜集相关代码,然后做出一份行动计划,并根据行动计划执行。

简而言之,如果你还没有形成自己的工作流,Plan mode 是一个很好的起点。但如果你已有一套成熟的方法论,直接按自己的节奏来,效率可能更高。

上下文管理

Cursor Vibe Coding 心得分享中,我提到过,上下文管理是所有 AI 编程工具的核心。cc 也不例外。

除了常用的清空上下文窗口(/clear)之外,cc 提供了强大的 /compact 命令。它能压缩当前上下文窗口中所有对话的内容,生成一份总结,并在一个全新的会话中载入总结,实现信息压缩、流转。

这个功能对于复杂的多阶段任务尤其有用。比如,一个需求需要被拆解成五个开发阶段。传统做法是,先制定一份开发计划,然后每个阶段都开启一个新会话,将计划放入上下文,并在提示词中指明当前进度与后续任务。

而有了 /compact,工作流就变得更流畅:它会自动提炼当前会话的核心信息(如初始需求、任务进度等),带到下一个会话中。这个流程就简化为:

  1. 提出需求,让 AI 理解需求、拆解开发任务
  2. /compact,执行第一阶段任务
  3. 确认第一阶段任务无误之后,/compact,继续执行第二阶段任务
  4. 确认第二阶段任务无误之后,/compact,继续执行第三阶段任务
  5. 以此类推,直到任务完成

用量查看

ccusage 是一个用于查看、监控 cc 用量的命令行工具。

1
2
3
4
5
6
7
8
# 安装 ccusage
npm install -g ccusage

# 比较常用的命令
ccusage  # 查看每日用量
ccusage monthly  # 查看每月用量
ccusage session  # 查看每个项目的用量
ccusage blocks --live  # 实时监控用量

更多用法可以参考官方文档

目前 cc 的用量上限规则为:

  • 一个 cc 用量窗口(session)持续5小时。也就是说,5小时重置一次用量。
  • 用量窗口以整小时为单位。假设你 8:55 发送第一条消息,那么用量窗口为 8:00 - 13:00.
  • Anthropic 会根据服务器负载来决定用户用量。对于 Claude Pro 用户,一般一个用量窗口可以用 $5-10

不过最近我收到一封来自 Anthropic 的邮件,他们将在八月底调整用量规则,在五小时重置的基础上引入每周使用限制。

Starting August 28, we’re introducing weekly usage limits alongside our existing 5-hour limits:

  • Current: Usage limit that resets every 5 hours (no change)
  • New: Overall weekly limit that resets every 7 days
  • New: Claude Opus 4 weekly limit that resets every 7 days
  • As we learn more about how developers use Claude Code, we may adjust usage limits to better serve our community.

中文翻译:从八月二十八日开始,我们将在现有5小时使用限制的基础上,引入每周使用限制:

  • 当前:每5小时重置一次的使用限制(保持不变)
  • 新增:每7天重置一次的总体每周限制
  • 新增:每7天重置一次的 Claude Opus 4 每周限制 随着我们对开发者如何使用 Claude Code 了解更多,我们可能会调整使用限制,以便更好地服务我们的社区。

现在还不知道每周限制具体限多少,Anthropic 认为 ”Most Pro users can expect 40-80 hours of Sonnet 4 within their weekly rate limits.“(在新的每周限制下,大部分 Pro 用户一周可以使用 40-80 小时的 Sonnet 4)。具体影响有待观察,希望不要限得太死。

我强烈推荐在使用 cc 时,在另一个终端窗口运行 ccusage blocks --live 实时监控用量。这能帮你根据剩余用量动态调整任务预期——额度充裕时,放心让它执行复杂任务;额度见底时,则让它做一些简单任务,避免任务执行到一半因为用尽额度而中断。

其它奇怪玩法

在实践中,我发现 CLI 类 AI 编程工具(比如 cc、Gemini CLI)的用法并不仅限于编程。核心思想是,把它看作一个可以访问、修改你电脑上的文件,并且可以运行命令行工具的 AI Agent。基于这个想法,你可以发展出很多玩法。

比如,用 AI 写一份月总结:

1
claude -p "请你使用 `git log --author="$(git config user.name)"` 查看我这个月提交的所有 commit,并做一份月总结"

或者,cd 到 Obsidian Vault 文件夹下,让它可以访问、修改 Obsidian 笔记,或者搜索相关笔记并回答。

常用命令、快捷键汇总

常用命令

  • 基础:
    • claude:运行 cc
    • claude -c:继续上一个会话
    • claude -r:继续之前的某一个会话(会进入一个窗口让你选择某个之前的会话)
    • claude --dangerously-skip-permissions:运行 cc,并进入 YOLO 模式(自动同意 Agent 的所有操作)
  • MCP相关:
    • claude mcp add:添加 MCP 服务器
    • claude mcp list:检查 MCP 服务器状态
  • 检查 & 更新:
    • claude doctor:检查 cc 状态
    • claude update:更新 cc

常用快捷键

  • ctrc + c
    • 按下一次 = 清空输入框
    • 连按两次 = 退出 cc
  • esc
    • 在 AI 执行任务时,单击 esc 打断 AI
    • 双击 esc
      • 如果输入框中有内容,双击 esc 效果为清空输入框
      • 如果输入框中没有内容,双击 esc 效果为跳到当前会话中某个之前的对话,从该处开始重新对话
  • shift + tab:用于状态切换
    1. 默认为正常模式
    2. 使用一次切换至 auto-accept edit mode:自动同意 AI 编辑的操作
    3. 再使用一次切换至 plan mode:规划模式,用于写代码前的规划
    4. 再使用一次切回正常模式
  • ctrl + r:切换到详细输出模式。可以看到 cc 具体读了哪些代码,具体的输出。不过,个人感觉也不是很详细,聊胜于无
  • option + 回车:换行

常用 slash 命令

  • /init:为项目初始化一份 CLAUDE.md
  • /clear:清空所有上下文,开始新会话
  • /compact:压缩上下文并开始新会话。cc 会生成一份当前会话的总结,并将这份总结 作为下一个会话的开始
  • /model
  • /mcp:查看当前 MCP 服务器状态
  • /help:查询所有可用 slash 命令

结语

我在这篇文章中分享了近期使用 cc 的一些心得和常用操作。实际上,cc 还有许多更高级的用法,比如自定义 slash commandHooks、以及最近刚出的 Subagents。这些功能可以进一步扩展 cc 的能力,实现更自动化、更智能的开发流程。

目前我也在摸索这些功能的用法,后续如果我发现好玩的用法,我也会分享给大家。

本文由作者按照 CC BY 4.0 进行授权