Skip to content

第三章:基础使用方法

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
claude

Claude 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 high

3.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]设置努力程度:lowmediumhighmax
/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

名称模型用途
ExploreHaiku(快速)只读搜索和分析代码库
Plan与主会话相同Plan 模式下的研究代理
General-purposeHaiku通用任务委托

自定义 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

# 或在会话中
/agents

3.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。大文件先用 headtailgrep 截取:

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
列出 Subagentsclaude agents
练习任务
  1. 在一个项目目录中启动 Claude Code,用 /help 查看所有可用命令
  2. 用管道模式:git diff | claude -p "审查这些变更"
  3. Shift + Tab 切换到 Plan Mode,感受其行为
  4. /cost 查看当前会话消耗,用 /doctor 诊断配置
  5. 尝试创建 .claude/skills/review/SKILL.md,编写一个代码审查 Skill

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