Skip to content

第三章:基础使用方法

3.1 启动 Claude Code

进入工作目录

在使用 Claude Code 之前,建议先进入你想要工作的项目目录。这样 Claude Code 就能直接访问该项目中的所有文件。

bash
# 进入你的项目目录
cd /path/to/your/project

# 然后启动 Claude Code
claude

为什么要先 cd 到项目目录?

Claude Code 会以你当前所在的目录作为工作根目录。如果你在桌面上启动 Claude Code,它的文件操作范围就是桌面;如果你在项目目录中启动,它就能直接访问项目中的所有文件。这就像是告诉 Claude Code "我们在这个项目里工作"。

启动后的界面

启动后,你会看到类似这样的界面:

$ claude

╭──────────────────────────────────────╮
│ ✻ Welcome to Claude Code!            │
│   /help for help                     │
╰──────────────────────────────────────╯

 cwd: /Users/yourname/projects/my-app

>

底部的 > 是输入提示符,你可以在这里输入任何问题或指令。cwd 显示的是当前工作目录。

启动参数

claude 命令还支持一些有用的启动参数:

bash
# 基本启动
claude

# 启动时立即问一个问题
claude "这个项目是做什么的?"

# 以非交互模式运行(执行完就退出)
claude -p "帮我分析 package.json 的依赖"

# 继续上次的对话
claude --continue

# 从最近的对话列表中选择恢复
claude --resume
参数缩写说明
--print-p非交互模式,输出结果后自动退出
--continue-c继续上一次的对话
--resume-r从历史对话中选择一个继续
--model指定使用的模型
--verbose显示详细的调试信息

3.2 交互式对话

Claude Code 最基本的使用方式就是交互式对话——就像和一个人聊天一样。

基本对话

你可以用自然语言直接和 Claude Code 交流:

> 你好,请帮我看看当前目录下有哪些文件

 ✻ 我来查看当前目录的文件结构。

  ls -la

  目录结构如下:
  ├── package.json
  ├── src/
  │   ├── index.ts
  │   ├── components/
  │   └── utils/
  ├── public/
  ├── README.md
  └── tsconfig.json

  这是一个 TypeScript 项目,使用了...

多轮对话

Claude Code 会记住对话上下文,你可以像聊天一样进行多轮对话:

> 帮我看看 package.json 里有哪些依赖

 ✻ [读取 package.json 文件]

  这个项目的主要依赖包括:
  - react: ^18.2.0
  - next: ^14.0.0
  - typescript: ^5.0.0
  ...

> 这些依赖的版本是最新的吗?有没有需要更新的?

 ✻ 让我检查一下各依赖的最新版本...

  以下依赖可以更新:
  - next: 当前 ^14.0.0,最新 14.2.5
  - typescript: 当前 ^5.0.0,最新 5.5.4
  ...

> 帮我更新这些依赖

 ✻ 我来更新 package.json 中的依赖版本。
  [修改 package.json]
  [运行 npm install]

  已更新完成!所有依赖已更新到最新版本。

注意第二个和第三个问题是如何基于之前的上下文进行的——你不需要每次都重新说明背景。

提问技巧

好的提问方式能让 Claude Code 给出更准确的回答:

提问最佳实践

具体而明确:

# 不太好的提问
> 帮我改一下代码

# 更好的提问
> 帮我修改 src/components/Header.tsx,把导航栏的背景色从白色改为深蓝色(#1a365d)

提供上下文:

# 不太好的提问
> 为什么报错了

# 更好的提问
> 运行 npm run build 时报了 TypeScript 类型错误,
> 错误信息是 "Type 'string' is not assignable to type 'number'",
> 出现在 src/utils/calc.ts 第 15 行

分步骤描述复杂任务:

> 我想给项目添加用户认证功能:
> 1. 使用 JWT token 方式
> 2. 需要登录和注册两个接口
> 3. 前端需要登录页面和注册页面
> 4. 登录状态保存在 localStorage 中

确认操作

当 Claude Code 要执行可能影响你文件的操作时,它会先征求你的确认:

> 帮我删除所有的 console.log 语句

 ✻ 我找到了 23 处 console.log 语句,分布在以下文件中:
  - src/utils/api.ts (8处)
  - src/components/UserList.tsx (5处)
  - src/pages/Home.tsx (10处)

  我将删除这些 console.log 语句。确认执行吗?

  [Yes] / [No] / [Always allow for this session]

你可以选择:

  • Yes(y):确认执行这一次操作
  • No(n):拒绝此次操作
  • Always allow:本次会话中自动允许同类操作

谨慎确认

在确认之前,请仔细阅读 Claude Code 准备做的操作,特别是涉及文件删除、覆盖或重要文件修改时。虽然 Claude Code 大部分时候是正确的,但养成确认的习惯可以避免意外。

3.3 斜杠命令详解

Claude Code 提供了一系列以 / 开头的特殊命令(Slash Commands),用于控制 Claude Code 的行为。

命令总览

命令说明使用场景
/help显示帮助信息随时查看可用命令
/clear清空当前对话历史开始新话题,释放上下文空间
/compact压缩对话上下文对话太长时,保留关键信息并释放空间
/model查看或切换 AI 模型切换到更快或更强的模型
/cost查看当前会话费用监控 API 用量
/init生成 CLAUDE.md 项目配置首次配置项目时使用
/doctor运行诊断检查排查问题时使用
/login登录认证首次使用或重新认证
/logout退出登录切换账户
/memory编辑 CLAUDE.md 记忆文件快速查看或修改项目记忆
/permissions查看和管理权限设置控制工具和文件访问权限
/review代码审查审查代码变更
/context查看当前上下文信息了解已加载的文件和上下文
/config查看或修改配置管理 Claude Code 配置项
/plan进入规划模式规划复杂任务

/help - 获取帮助

随时输入 /help 查看所有可用命令和使用说明:

> /help

 Available commands:
  /clear     Clear conversation history
  /compact   Compact conversation context
  /cost      Show current session cost
  /doctor    Run diagnostic checks
  /help      Show this help message
  /init      Initialize CLAUDE.md for this project
  /login     Log in to your account
  /logout    Log out of your account
  /model     Show or change the current model
  /plan      Enter plan mode
  ...

新手必备

刚开始使用时,建议把 /help 的输出仔细读一遍,了解所有可用的命令。这会帮你更快地掌握 Claude Code 的各种功能。

/clear - 清空对话

当你想开始一个全新的话题,或者发现 Claude Code 被之前的对话"带偏"了,可以用 /clear 清空对话历史:

> /clear

 ✻ Conversation cleared.

>

什么时候该用 /clear

  • 从一个任务切换到完全不相关的另一个任务
  • Claude Code 似乎"记混"了上下文
  • 对话历史太长,影响了响应速度
  • 想要一个"干净"的起点

/compact - 压缩对话

/compact/clear 不同——它不是完全清空,而是智能地压缩对话历史,保留关键信息但释放空间:

> /compact

 ✻ Compacting conversation...
  Kept key context:
  - Working on project: my-app
  - Modified files: src/index.ts, src/utils/api.ts
  - Current task: refactoring API module

  Context reduced from 45,000 tokens to 8,000 tokens.

什么时候该用 /compact

  • 对话很长,但你还想继续当前的任务
  • Claude Code 提示上下文快满了
  • 你想保留之前的工作记忆,但减少 token 消耗

/clear vs /compact

  • /clear:完全清空,从零开始。适合切换到不同的任务。
  • /compact:保留关键信息,压缩细节。适合继续当前任务但需要释放空间。

/model - 切换模型

你可以用 /model 命令查看当前使用的模型,或切换到其他模型:

> /model

 Current model: claude-sonnet-4-20250514

 Available models:
  1. claude-sonnet-4-20250514 (default)
  2. claude-opus-4-20250514
  3. claude-haiku-3-5-20241022

切换模型的实际场景:

> /model claude-opus-4-20250514

 ✻ Model changed to claude-opus-4-20250514

> 帮我分析这个项目的整体架构,给出改进建议
  (使用更强大的 Opus 模型来处理复杂的架构分析任务)
模型速度能力成本适合场景
Sonnet中等日常使用(默认)
Opus较慢最强较高复杂分析、架构设计
Haiku最快够用最低简单问答、格式转换

/cost - 查看费用

/cost 命令让你随时了解当前会话的 API 用量和费用:

> /cost

 Session cost summary:
  Total tokens used: 125,430
  - Input tokens:  98,200
  - Output tokens: 27,230

  Estimated cost: $0.42

  Model breakdown:
  - claude-sonnet-4: $0.38
  - claude-haiku-3-5: $0.04

费用管理

建议在每次长时间使用后查看一下 /cost,了解你的消耗情况。如果发现某个操作消耗了大量 token,可以考虑:

  • 使用 /compact 压缩上下文
  • 对于简单任务切换到 Haiku 模型
  • 避免一次性让 Claude Code 读取过多的大文件

/init - 初始化项目配置

/init 命令会让 Claude Code 分析你的项目,并自动生成一个 CLAUDE.md 配置文件(下一章会详细介绍):

> /init

 ✻ Analyzing project structure...

  Detected:
  - Language: TypeScript
  - Framework: Next.js 14
  - Package manager: npm
  - Testing: Jest

  Generated CLAUDE.md with:
  - Project overview
  - Tech stack description
  - Common commands
  - Coding conventions

  File saved: ./CLAUDE.md

/doctor - 诊断检查

当遇到问题时,运行 /doctor 可以帮你快速排查:

> /doctor

 Running diagnostics...

  ✓ Node.js version: 22.11.0 (OK)
  ✓ Claude Code version: 1.0.16 (up to date)
  ✓ Authentication: Valid
  ✓ API connection: OK (latency: 245ms)
  ✓ File permissions: OK

3.4 非交互模式

除了交互式对话,Claude Code 还支持非交互模式——执行单个任务后自动退出。这在自动化脚本和快速查询时非常有用。

基本用法

使用 -p(或 --print)参数:

bash
claude -p "这个项目使用了什么技术栈?"

Claude Code 会直接输出结果,然后退出,不会进入交互式界面。

实用示例

快速查看项目结构:

bash
claude -p "列出这个项目的目录结构,并简要说明每个目录的作用"

生成快速摘要:

bash
claude -p "用3句话总结 README.md 的内容"

代码解释:

bash
claude -p "解释 src/utils/auth.ts 中 generateToken 函数的作用"

Git 操作辅助:

bash
claude -p "查看最近的 git log,总结最近5次提交做了什么改动"

快速格式转换:

bash
claude -p "把 data.json 转换成 CSV 格式,保存为 data.csv"

非交互模式的适用场景

  • 需要快速获取一个答案,不需要多轮对话
  • 在脚本或自动化流程中调用 Claude Code
  • 批量处理多个文件
  • 配合其他命令行工具使用

输出格式控制

非交互模式下,你可以通过提示来控制输出格式:

bash
# 只输出纯文本结果
claude -p "列出 src 目录下所有 TypeScript 文件的名字,每行一个"

# 输出 JSON 格式
claude -p "分析 package.json 的依赖,以 JSON 格式列出每个依赖的名称和版本"

# 输出 Markdown 格式
claude -p "为 src/api/users.ts 生成 API 文档,使用 Markdown 表格格式"

3.5 管道模式

Claude Code 支持 Unix 管道(Pipe),这意味着你可以把其他命令的输出直接传给 Claude Code 处理。

基本语法

bash
command | claude -p "对输入内容做什么操作"

实用示例

分析日志文件:

bash
cat error.log | claude -p "分析这些错误日志,找出最常见的错误类型"

总结文件内容:

bash
cat meeting-notes.txt | claude -p "总结这份会议纪要的要点,列出行动项"

代码审查:

bash
git diff | claude -p "审查这些代码变更,指出潜在问题"

这个用法特别强大——你可以用 git diff 查看代码变更,然后让 Claude Code 审查这些变更。

分析 Git 提交历史:

bash
git log --oneline -20 | claude -p "总结最近20次提交的主要改动方向"

处理 CSV 数据:

bash
cat sales-data.csv | claude -p "分析这份销售数据,找出销售额最高的前5个产品"

组合使用:

bash
# 找出项目中所有的 TODO 注释,让 Claude 分类整理
grep -r "TODO" src/ | claude -p "整理这些 TODO 项,按优先级分类"

# 分析测试覆盖率报告
npm test -- --coverage 2>&1 | claude -p "分析测试覆盖率,指出覆盖率不足的模块"

管道模式的工作原理

当 Claude Code 检测到有数据通过管道传入时,它会自动进入非交互模式。管道传入的数据会作为上下文的一部分,和你的提问一起发送给 AI 模型。

数据大小限制

管道传入的数据也会消耗 token。如果文件非常大(比如几 MB 的日志文件),建议先用 headtailgrep 截取相关部分再传给 Claude Code:

bash
# 只分析最后 100 行日志
tail -100 error.log | claude -p "分析这些错误"

# 只分析包含 Error 的行
grep "Error" app.log | claude -p "分类这些错误"

3.6 键盘快捷键

掌握键盘快捷键可以大大提升你使用 Claude Code 的效率。

常用快捷键一览

快捷键功能说明
Enter发送消息发送当前输入的内容
Shift + Enter换行在输入中添加新行(不发送),也可以用 \ + Enter
Shift + Tab切换模式在普通模式 → 自动接受编辑模式 → Plan Mode 之间循环切换
Escape取消操作中断当前正在进行的操作
Escape Escape历史消息列表连按两次 Esc,显示之前的消息列表供编辑和重新发送
Ctrl + C中断强制中断当前操作
Ctrl + D退出退出 Claude Code
Up Arrow上一条消息浏览输入历史

Shift + Tab:切换模式

这是一个非常重要的快捷键。在输入框中按 Shift + Tab 可以在三个模式之间循环切换:

> 普通模式下的输入...
  [按 Shift + Tab]
> [Auto-accept edits] 自动接受编辑模式下的输入...
  [再按 Shift + Tab]
> [Plan Mode] 规划模式下的输入...
  [再按 Shift + Tab]
> 回到普通模式...

普通模式(Normal Mode):Claude Code 会读取文件、修改文件、执行命令——实际执行操作。每次修改文件前会征求你的确认。

自动接受编辑模式(Auto-accept Edits):Claude Code 会自动接受所有文件编辑操作,无需逐个确认。适合你信任 Claude Code 的改动、想要加速工作流的场景。

规划模式(Plan Mode):Claude Code 只会分析和规划,不会实际修改任何文件或执行命令。适合在动手之前先想清楚方案。

养成习惯

对于复杂任务,建议先用 Plan Mode 让 Claude Code 制定方案,你审核后再切回普通模式执行。这个习惯可以避免很多不必要的修改和返工。对于简单且可信的批量操作,可以使用自动接受编辑模式来提高效率。

Escape:中断操作

如果 Claude Code 正在执行一个操作(比如读取大量文件),但你想取消,按 Escape 键:

> 帮我分析整个 src 目录下的所有文件
 ✻ Reading files...
  [按 Escape]
 ✻ Operation cancelled.

>

这在你发现自己的指令有误,或者操作耗时太长时非常有用。

Escape Escape:浏览历史消息

在输入框为空时,连按两次 EscapeEsc Esc)可以打开之前的消息列表。你可以从中选择一条历史消息进行编辑并重新发送,类似于终端中浏览命令历史的体验。

> [在输入框为空时连按两次 Esc]
  显示之前发送过的消息列表:
  1. 帮我分析 src 目录
  2. 修改 Header 组件的背景色
  3. ...
  选择一条后可以编辑并重新发送

多行输入

有时候你需要输入多行内容(比如一段代码或详细的需求描述)。有两种方式来换行而不是发送:

  • Shift + Enter:直接在当前位置插入换行
  • \ + Enter(反斜杠加回车):在行末输入 \ 后按 Enter,也会换行而不发送
> 帮我创建一个函数,要求如下:[Shift+Enter]
  - 函数名:calculateDiscount[Shift+Enter]
  - 参数:原价(number)、折扣率(number)[Shift+Enter]
  - 返回值:折后价(number)[Shift+Enter]
  - 需要验证参数的合法性[Enter 发送]

使用 \ + Enter 的示例:

> 帮我创建一个函数,要求如下:\[Enter]
  - 函数名:calculateDiscount\[Enter]
  - 参数:原价(number)、折扣率(number)\[Enter]
  - 返回值:折后价(number)[Enter 发送]

3.7 实际操作示例

让我们通过几个完整的示例来演示 Claude Code 的日常使用。

示例一:分析一个新项目

假设你刚刚接手一个项目,想快速了解它:

> 帮我分析一下这个项目的整体情况,包括:
  - 使用了什么技术栈
  - 项目结构是怎样的
  - 有哪些主要功能模块
  - 代码质量如何

 ✻ 让我来分析这个项目...

  [读取 package.json]
  [读取 tsconfig.json]
  [遍历 src/ 目录]
  [读取关键文件]

  项目分析报告:

  ## 技术栈
  - 前端框架:React 18 + Next.js 14
  - 语言:TypeScript 5.3
  - 样式:Tailwind CSS 3.4
  - 状态管理:Zustand
  - API 请求:Axios
  - 测试:Jest + React Testing Library

  ## 项目结构
  src/
  ├── app/          # Next.js App Router 页面
  ├── components/   # 可复用组件 (32个)
  ├── hooks/        # 自定义 Hooks (8个)
  ├── utils/        # 工具函数 (12个文件)
  ├── types/        # TypeScript 类型定义
  └── services/     # API 接口封装

  ## 主要功能模块
  1. 用户认证(登录/注册/权限管理)
  2. 仪表板(数据概览/图表)
  3. 用户管理(CRUD 操作)
  4. 报表系统(导出/筛选)

  ## 代码质量评估
  - TypeScript 使用率:95%(良好)
  - 测试覆盖率:约 40%(建议提升到 60%+)
  - 组件复用度:中等(有些组件可以进一步抽象)
  - 存在 5 处 any 类型的使用,建议修复

示例二:帮助理解代码

当你需要理解某段代码的含义时:

> 帮我解释一下 src/hooks/useAuth.ts 这个文件在做什么,
  用非程序员能理解的语言

 ✻ [读取 src/hooks/useAuth.ts]

  这个文件实现了用户登录状态管理功能,让我用通俗的语言解释:

  想象你去一家需要会员卡的商店:

  1. **登录功能(login)**
     就像在商店前台出示你的会员卡,
     店员验证后给你一个"通行证"(token)

  2. **登出功能(logout)**
     就像离开商店时交还通行证

  3. **自动检查(useEffect)**
     每次你打开一个新页面,系统都会自动检查
     你的通行证是否还有效,就像商店每个入口
     都有一个自动扫描器

  4. **获取用户信息(user)**
     通行证上记录了你的基本信息(姓名、权限等),
     页面可以读取这些信息来决定显示什么内容

  5. **权限判断(isAdmin)**
     根据你的通行证类型(普通会员 vs VIP),
     决定你能看到哪些页面

  总结:这个文件就是整个应用的"门卫系统",
  管理谁能进来、能看到什么。

示例三:快速生成文档

> 帮我为 src/services/api.ts 中的所有函数生成中文注释和使用说明

 ✻ [读取 src/services/api.ts]

  我来为每个函数添加中文注释...
  [修改 src/services/api.ts]

  已为以下 8 个函数添加了中文注释:
  1. fetchUsers() - 获取用户列表
  2. createUser() - 创建新用户
  3. updateUser() - 更新用户信息
  4. deleteUser() - 删除用户
  5. fetchUserById() - 根据ID获取单个用户
  6. searchUsers() - 搜索用户
  7. exportUsers() - 导出用户数据
  8. importUsers() - 导入用户数据

  每个函数的注释包含:功能说明、参数说明、返回值说明、使用示例

示例四:数据处理

> 我有一个 data/users.csv 文件,里面有用户注册数据。
  帮我分析一下:
  1. 每月的注册用户数趋势
  2. 注册来源的分布
  3. 活跃用户的比例

 ✻ [读取 data/users.csv]

  数据包含 5,234 条记录,时间跨度从 2024-01 到 2024-12。
  让我进行分析...

  [创建并运行分析脚本]

  分析结果:

  ## 1. 每月注册趋势
  | 月份 | 注册数 | 环比增长 |
  |------|--------|----------|
  | 1月  | 312    | -        |
  | 2月  | 287    | -8.0%    |
  | 3月  | 445    | +55.1%   |
  ...

  ## 2. 注册来源分布
  - 自然搜索:35.2%
  - 社交媒体:28.7%
  - 直接访问:18.5%
  - 推荐:12.3%
  - 其他:5.3%

  ## 3. 活跃用户
  - 月活跃用户比例:62.3%
  - 注册后7天内活跃:78.5%
  - 注册后30天内留存:45.2%

3.8 对话管理技巧

继续之前的对话

如果你不小心退出了 Claude Code,想继续上次的对话:

bash
# 继续最近一次的对话
claude --continue

# 简写
claude -c

从历史中恢复

如果你想恢复更早的对话:

bash
# 显示历史对话列表,选择一个恢复
claude --resume

# 简写
claude -r

管理上下文空间

Claude Code 的上下文窗口是有限的。当你进行长时间的对话时,需要注意管理上下文:

当你感觉 Claude Code 似乎"忘记"了之前说的事情,
或者响应变慢了,试试这些方法:

1. 使用 /compact 压缩上下文
2. 使用 /clear 重新开始
3. 用简短明确的指令代替长篇描述
4. 避免让 Claude Code 一次读取太多大文件

上下文管理黄金法则

  • 一个对话专注于一个主题或任务
  • 任务完成后用 /clear 开始新对话
  • 长时间工作中定期使用 /compact
  • 复杂任务分步骤执行,而不是一次性给出所有要求

3.9 常见问题与解答

Claude Code 响应很慢怎么办?
  1. 检查网络连接是否稳定
  2. 使用 /compact 压缩上下文(过长的对话会影响速度)
  3. 切换到 Haiku 模型(更快但能力稍弱)
  4. 避免一次性处理太大的文件
Claude Code 给出了错误的代码怎么办?
  1. 不要惊慌,AI 生成的代码不一定完全正确
  2. 告诉 Claude Code 具体的错误信息,让它修复
  3. 如果问题比较严重,使用 git 回退到之前的版本
  4. 对于关键代码,建议先用 Plan Mode 审查方案
对话太长,Claude Code 似乎"忘记"了之前的内容
  1. 使用 /compact 压缩对话,保留关键信息
  2. 在新的提问中重新提供必要的上下文
  3. 考虑将长任务拆分成多个对话
  4. 使用 CLAUDE.md 保存项目级的上下文(下一章详解)
如何查看 Claude Code 修改了哪些文件?

在 Claude Code 修改文件时,它会明确告诉你修改了哪些文件和具体改动。你也可以使用 git 来查看变更:

bash
# 在另一个终端窗口中
git diff                    # 查看所有未提交的修改
git diff --name-only        # 只看修改了哪些文件
git checkout -- filename    # 撤销某个文件的修改

3.10 本章小结

本章我们学习了 Claude Code 的所有基础使用方法:

功能命令/操作用途
启动claude进入交互式对话
非交互模式claude -p "问题"快速查询,执行完自动退出
管道模式cat file | claude -p "分析"处理其他命令的输出
继续对话claude -c恢复上次对话
清空对话/clear开始新话题
压缩上下文/compact保留关键信息,释放空间
切换模型/model根据任务选择合适的模型
查看费用/cost监控 API 使用量
模式切换Shift + Tab普通模式 / 自动接受编辑 / Plan Mode
取消操作Escape中断当前操作
练习任务

试试以下操作来巩固今天学的内容:

  1. 进入一个项目目录,启动 Claude Code,让它分析项目结构
  2. 使用 /model 查看当前模型,尝试切换到其他模型
  3. 使用非交互模式 claude -p 快速查询一个问题
  4. 使用管道模式分析一个文件的内容
  5. 查看 /cost 了解本次练习的费用

下一章:CLAUDE.md 项目记忆 ->