Appearance
第三章:基础使用方法
3.1 认证与启动
认证登录
Claude Code 支持两种认证方式:Claude 订阅账号和 API Key。
bash
# 使用 Claude 订阅账号登录(Pro / Max / Team)
claude auth login
# 使用 API Key 登录(通过 Anthropic Console 按量计费)
claude auth login --console
# 查看当前认证状态
claude auth status
# 登出
claude auth logout进入工作目录
在使用 Claude Code 之前,建议先进入你想要工作的项目目录:
bash
cd /path/to/your/project
claudeClaude Code 会以当前所在目录作为工作根目录。该目录下的所有文件都可以被 Claude Code 读取和修改。
启动后的界面
$ claude
╭──────────────────────────────────────╮
│ ✻ Welcome to Claude Code! │
│ /help for help │
╰──────────────────────────────────────╯
cwd: /Users/yourname/projects/my-app
>> 是输入提示符,cwd 显示当前工作目录。
启动参数
| 参数 | 缩写 | 说明 |
|---|---|---|
--print | -p | 非交互模式,输出结果后自动退出 |
--continue | -c | 继续上一次的对话 |
--resume | -r | 从历史对话中选择一个继续,或指定会话名 |
--model <model> | 指定使用的模型 | |
--add-dir <path> | 添加额外的项目目录 | |
--effort low|medium|high | 设置模型的思考努力程度 | |
--dangerously-skip-permissions | 跳过所有权限确认(谨慎使用) |
bash
# 启动时立即提问
claude "这个项目是做什么的?"
# 继续指定会话,并在启动时带入新指令
claude -r "session-name" "继续之前的工作"
# 指定模型启动
claude --model claude-opus-4-6
# 添加额外工作目录
claude --add-dir ~/other-project
# 设置努力程度
claude --effort high3.2 交互式对话
Claude Code 最基本的使用方式就是交互式对话——就像和一个人聊天一样。
基本对话
用自然语言直接和 Claude Code 交流:
> 帮我看看当前目录下有哪些文件
✻ 我来查看当前目录的文件结构。
ls -la
目录结构如下:
├── package.json
├── src/
│ ├── index.ts
│ ├── components/
│ └── utils/
├── public/
└── 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]
已更新完成!直接执行 Shell 命令
在输入框中以 ! 开头的命令会直接作为 Shell 命令执行,不需要通过 Claude Code:
> !git status
> !ls -la src/
> !npm run test什么时候用 !
当你需要快速执行一个命令、查看输出、然后继续对话时,! 比让 Claude Code 执行命令更直接——省去了模型思考的等待时间。
提问技巧
好的提问方式能让 Claude Code 给出更准确的回答:
# 不太好的提问
> 帮我改一下代码
# 更好的提问(具体明确)
> 帮我修改 src/components/Header.tsx,把导航栏背景色从白色改为深蓝色(#1a365d)
# 不太好的提问
> 为什么报错了
# 更好的提问(提供上下文和错误信息)
> 运行 npm run build 时报了 TypeScript 类型错误:
"Type 'string' is not assignable to type 'number'"
出现在 src/utils/calc.ts 第 15 行3.3 键盘快捷键
| 快捷键 | 功能 |
|---|---|
Enter | 发送消息 |
Shift + Enter | 换行(不发送) |
Shift + Tab | 循环切换:普通模式 → 自动接受编辑模式 → Plan Mode |
Esc | 停止 Claude 当前正在生成的输出 |
Esc Esc | 在空输入框时连按两次,显示历史消息列表 |
Ctrl + C | 强制中断当前操作 |
Ctrl + D | 退出 Claude Code |
↑ / ↓ | 浏览输入历史 |
Shift + Tab:切换模式
这三个模式决定了 Claude Code 的行为方式:
- 普通模式:Claude Code 执行操作前会征求你的确认
- 自动接受编辑模式:所有编辑操作自动执行,无需逐个确认
- Plan Mode:Claude Code 只分析和规划,不修改任何文件
建议流程
复杂任务先用 Plan Mode 制定方案,审核后再切回普通模式执行。简单可信的批量操作可用自动接受编辑模式加速。
3.4 斜杠命令
在交互会话中输入 / 可查看所有可用命令。
会话管理
| 命令 | 说明 |
|---|---|
/clear | 清空当前对话历史(别名 /reset、/new) |
/compact [压缩说明] | 压缩对话上下文,可附带压缩重点说明 |
/cost | 查看当前会话的 token 消耗和费用 |
/context | 可视化当前上下文占用情况 |
/diff | 查看未提交的代码变更和每轮对话的 diff |
/exit | 退出(别名 /quit) |
> /compact 请保留项目背景,压缩掉中间的错误尝试过程
✻ Context reduced from 45,000 tokens to 8,000 tokens.
Kept: 项目背景、当前任务进度配置与模型
| 命令 | 说明 |
|---|---|
/config | 打开设置界面(别名 /settings) |
/model [model-name] | 切换模型,如 /model claude-opus-4-6 |
/effort [level] | 设置努力程度:low、medium、high、max |
/fast [on|off] | 开关快速模式 |
/permissions | 管理工具权限 |
工具与调试
| 命令 | 说明 |
|---|---|
/doctor | 诊断安装和配置问题 |
/export [filename] | 导出当前对话为纯文本 |
/copy [N] | 复制最近第 N 条助手回复到剪贴板 |
/hooks | 查看 Hook 配置 |
/init | 初始化项目 CLAUDE.md 文件 |
3.5 内置 Skills
Claude Code 内置了一组 Skills(技能),这些是基于提示词实现的专用能力,可直接调用:
| 命令 | 说明 |
|---|---|
/simplify | 简化复杂代码,使其更易读 |
/debug | 系统化调试问题,分析错误并修复 |
/batch | 批量处理多个文件的相同操作 |
/loop | 循环执行任务,直到满足指定条件 |
/claude-api | 帮助编写 Anthropic API 调用代码 |
这些内置 Skills 不需要安装,Claude 在相关场景下也会自动判断使用。你也可以通过 /skill-name 手动调用它们。
3.6 自定义命令与 Skills
自定义斜杠命令(旧版)
在项目中创建 .claude/commands/ 目录,添加 .md 文件即可注册自定义命令:
your-project/
└── .claude/
└── commands/
├── review.md → 使用 /review 调用
└── deploy.md → 使用 /deploy 调用文件内容用自然语言编写,支持 $ARGUMENTS 占位符接收参数:
markdown
# 代码审查
请对以下代码进行审查:
$ARGUMENTS
重点关注:
1. 代码可读性
2. 潜在的 bug
3. 性能问题
4. 安全漏洞自定义 Skills(推荐方式)
Skills 是新版推荐的扩展机制,功能更强——除了自定义指令,还支持预授权工具、模板文件、示例和脚本。一个 Skill 对应一个目录:
your-project/
└── .claude/
└── skills/
└── review/
├── SKILL.md # 主指令文件(必需)
├── template.md # 模板文件(可选)
└── examples/ # 示例(可选)创建 .claude/skills/review/SKILL.md:
markdown
---
name: review
description: 对代码进行 review,检查代码质量、安全性和性能问题。
---
对代码进行 review 时,按以下步骤执行:
1. **安全性**:检查注入漏洞、敏感信息泄露、权限问题
2. **性能**:识别 N+1 查询、不必要的循环、内存泄漏风险
3. **可读性**:命名是否清晰、函数是否过长、注释是否充分
4. **最佳实践**:是否遵循项目 CLAUDE.md 中的编码规范
输出格式:按严重程度(🔴 严重 / 🟡 建议 / 🟢 良好)分类列出。Skills 配置文件
SKILL.md 的 frontmatter 支持以下字段:
yaml
---
name: deploy # 斜杠命令名称
description: 执行部署流程 # Claude 用此判断何时自动加载
invocation: user # user=仅手动调用 / auto=Claude 也可自动调用
allowed_tools: # 预授权工具列表
- Bash(npm run build)
- Bash(npm run deploy)
---Skills 存放位置
| 位置 | 路径 | 适用范围 |
|---|---|---|
| 个人全局 | ~/.claude/skills/<name>/SKILL.md | 所有项目 |
| 项目级 | .claude/skills/<name>/SKILL.md | 当前项目(可提交到 git) |
| 旧版命令 | .claude/commands/<name>.md | 当前项目(向后兼容) |
什么时候用 Skills
当一个扩展需要:① 详细的指令和流程,② 预授权的工具权限,③ 模板或示例文件支持时,使用 Skills。其他简单场景继续用 .claude/commands/ 即可。
3.7 Subagents(子代理)
Subagents 是独立运行的专用 AI 助手,拥有自己的上下文窗口和工具权限,适合将复杂任务中的子任务委托给专用代理处理。
内置 Subagents
| 名称 | 模型 | 用途 |
|---|---|---|
| Explore | Haiku(快速) | 只读搜索和分析代码库 |
| Plan | 与主会话相同 | Plan 模式下的研究代理 |
| General-purpose | Haiku | 通用任务委托 |
自定义 Subagent
在 .claude/agents/ 目录下创建 .md 文件即可注册:
bash
mkdir -p .claude/agents创建 .claude/agents/reviewer.md:
markdown
---
name: reviewer
description: 专门进行代码审查的代理
model: sonnet
tools:
- Read
- Bash(git diff *)
- Bash(git log *)
---
你是一个代码审查专家。审查代码时关注:
- 逻辑正确性和边界条件
- 安全漏洞
- 性能问题
- 代码可维护性
输出结构化的审查报告。Subagent 存放位置
| 位置 | 路径 |
|---|---|
| 个人全局 | ~/.claude/agents/<name>.md |
| 项目级 | .claude/agents/<name>.md |
查看与管理
bash
# 列出所有已配置的 subagents
claude agents
# 或在会话中
/agents3.8 非交互模式
使用 -p(--print)参数执行单个任务后自动退出,适合脚本和快速查询。
bash
# 快速查看项目结构
claude -p "列出这个项目的目录结构"
# 分析代码
claude -p "解释 src/utils/auth.ts 中 generateToken 函数的作用"
# 生成摘要
claude -p "用3句话总结 README.md 的内容"
# 控制输出格式
claude -p "列出 src 目录下所有 TypeScript 文件,每行一个"
claude -p "以 JSON 格式列出 package.json 的依赖"3.9 管道模式
把其他命令的输出直接传给 Claude Code 处理:
bash
# 分析错误日志
cat error.log | claude -p "分析这些错误,找出最常见的错误类型"
# 审查代码变更
git diff | claude -p "审查这些代码变更,指出潜在问题"
# 分析 Git 提交历史
git log --oneline -20 | claude -p "总结最近20次提交的主要改动"
# 整理 TODO 项
grep -r "TODO" src/ | claude -p "整理这些 TODO,按优先级分类"数据大小
管道传入的数据会消耗 token。大文件先用 head、tail 或 grep 截取:
bash
tail -100 error.log | claude -p "分析最后100行错误"
grep "Error" app.log | claude -p "分类这些错误"3.10 继续与恢复会话
bash
# 继续最近一次会话
claude -c
# 从历史列表中选择恢复
claude -r
# 恢复指定会话并带入新指令
claude -r "session-name" "继续之前的工作"会话列表保存在 ~/.claude/history/ 目录中。
3.11 实际操作示例
示例一:分析一个新项目
> 帮我分析这个项目的整体情况:技术栈、项目结构、主要模块、代码质量
✻ [读取 package.json、tsconfig.json,遍历 src/ 目录]
项目分析报告:
## 技术栈
- React 18 + Next.js 14 + TypeScript 5.3
- Tailwind CSS 3.4、Zustand
- Jest + React Testing Library
## 项目结构
src/
├── app/ # Next.js App Router 页面
├── components/ # 可复用组件 (32个)
├── hooks/ # 自定义 Hooks (8个)
└── utils/ # 工具函数 (12个)
## 代码质量
- TypeScript 使用率:95%
- 测试覆盖率:约 40%(建议提升)
- 存在 5 处 any 类型示例二:帮助理解代码
> 用非程序员能理解的语言,解释 src/hooks/useAuth.ts 在做什么
✻ 让我用通俗的比喻来解释:
这个文件实现了"门卫系统":
1. **登录(login)**——顾客出示会员卡,店员验证后给一张通行证
2. **登出(logout)**——离开时交还通行证
3. **自动检查(useEffect)**——每个入口都有扫描器,自动确认通行证是否有效
4. **权限判断(isAdmin)**——普通会员 vs VIP,决定你能看到哪些区域
总结:这就是整个应用的"会员管理系统"。3.12 本章小结
| 功能 | 命令 |
|---|---|
| 登录认证 | claude auth login / claude auth login --console |
| 启动交互式会话 | claude |
| 非交互模式 | claude -p "问题" |
| 管道模式 | cat file | claude -p "分析" |
| 继续会话 | claude -c / claude -r |
| 清空对话 | /clear |
| 压缩上下文 | /compact |
| 切换模型 | /model |
| 设置努力程度 | /effort |
| 快速模式 | /fast |
| 查看费用 | /cost |
| 查看 diff | /diff |
| 诊断问题 | /doctor |
| 打开设置 | /config |
| 初始化项目 | /init |
| 内置 Skills | /simplify /debug /batch /loop /claude-api |
| 自定义命令 | .claude/commands/*.md |
| 自定义 Skills | .claude/skills/<name>/SKILL.md |
| 自定义 Subagent | .claude/agents/<name>.md |
| 列出 Subagents | claude agents |
练习任务
- 在一个项目目录中启动 Claude Code,用
/help查看所有可用命令 - 用管道模式:
git diff | claude -p "审查这些变更" - 用
Shift + Tab切换到 Plan Mode,感受其行为 - 用
/cost查看当前会话消耗,用/doctor诊断配置 - 尝试创建
.claude/skills/review/SKILL.md,编写一个代码审查 Skill