Appearance
第三章:基础使用方法
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: OK3.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 的日志文件),建议先用 head、tail 或 grep 截取相关部分再传给 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:浏览历史消息
在输入框为空时,连按两次 Escape(Esc 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 响应很慢怎么办?
- 检查网络连接是否稳定
- 使用
/compact压缩上下文(过长的对话会影响速度) - 切换到 Haiku 模型(更快但能力稍弱)
- 避免一次性处理太大的文件
Claude Code 给出了错误的代码怎么办?
- 不要惊慌,AI 生成的代码不一定完全正确
- 告诉 Claude Code 具体的错误信息,让它修复
- 如果问题比较严重,使用 git 回退到之前的版本
- 对于关键代码,建议先用 Plan Mode 审查方案
对话太长,Claude Code 似乎"忘记"了之前的内容
- 使用
/compact压缩对话,保留关键信息 - 在新的提问中重新提供必要的上下文
- 考虑将长任务拆分成多个对话
- 使用 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 | 中断当前操作 |
练习任务
试试以下操作来巩固今天学的内容:
- 进入一个项目目录,启动 Claude Code,让它分析项目结构
- 使用
/model查看当前模型,尝试切换到其他模型 - 使用非交互模式
claude -p快速查询一个问题 - 使用管道模式分析一个文件的内容
- 查看
/cost了解本次练习的费用