Claude Code 基础用法与交互模式
第一章我们完成了 Claude Code 的安装和配置。这一章来聊聊实际怎么用——启动参数、对话交互、三种工作模式,以及一些实用的操作技巧。
启动命令与参数
安装完成后,最简单的启动方式就是在终端直接输入:
claude
但这只是开始。claude 命令支持一系列参数,让你可以根据需求定制启动行为:
| 参数 | 说明 | 示例 |
|---|---|---|
-p / --print | 一次性提示模式,执行后退出 | claude -p "解释这个项目的结构" |
--model | 指定使用的 Claude 模型 | claude --model claude-sonnet-4-20250514 |
--resume | 恢复上一次的对话会话 | claude --resume |
--verbose | 输出详细日志 | claude --verbose |
--version | 显示版本号 | claude --version |
-p 模式:一次性的快捷问答
-p 模式非常适合快速获取信息或执行一次性操作,不需要进入交互界面:
# 直接提问,返回结果后退出
claude -p "这个 README.md 文件有哪些可以改进的地方?"
# 管道输入也支持
cat package.json | claude -p "分析这个项目的依赖关系"
# 结合 git diff 使用
git diff HEAD~1 | claude -p "帮我 review 这次代码变更"
-p 模式返回结果后会立即退出终端,不会启动交互式会话。这在 CI/CD 流程或者脚本中特别有用。
--resume 模式:延续上次工作
Claude Code 会自动保存每次会话的上下文。如果你中途关闭了终端,用 --resume 可以回到上次的状态:
claude --resume
系统会恢复之前的对话历史,包括已读取的文件内容和已做出的修改。这个功能在需要长时间工作的任务中非常实用——比如你正在做一个复杂的重构,中间需要去吃个饭,回来后一条命令就能继续。
对话交互模式
Claude Code 的交互方式与 ChatGPT 等网页聊天工具有本质区别。它不是单纯的一问一答,而是基于项目上下文的协作模式。
多轮对话与上下文维护
在 Claude Code 中,每一次对话都在一个"会话"中进行。会话会持续累积上下文:
- 你说过的每句话
- Claude 给出的每个回复
- 读取过的每个文件内容
- 执行过的每个命令和它的输出
- 修改过的每个文件和具体的 diff
所有这些都保存在会话的上下文窗口中。这意味着你可以连续追问、逐步深入,不需要重复交代背景。
以下是实际对话的示例:
你 > 这个项目用了哪些前端框架?
Claude > 读了 package.json,发现用了 React 18 + Next.js 14 + Tailwind CSS。
你 > 帮我看看 pages/index.tsx 里有没有性能问题
Claude > 检查了文件,发现图片组件没有配置 lazy loading,建议添加 next/image 的 priority 属性...
你 > 改一下吧
Claude > 修改了 pages/index.tsx,添加了图片优化配置。
注意第二问中你没有再提项目名、框架名——因为上下文已经维护了这些信息。
三种使用方式
Claude Code 支持三种核心交互方式,对应不同的开发场景。
方式一:一问一答(咨询模式)
适合代码审查、架构讨论、技术问答。Claude 只会给你信息和建议,不会修改你的文件:
claude
> 帮我分析一下 src/utils/api.ts 中这个函数的性能瓶颈
>
> 这个 auth 函数的实现有没有安全漏洞?
方式二:文件编辑(修改模式)
当你要求 Claude 修改代码时,它会自动编辑文件并展示 diff:
> 把 Button 组件的默认颜色从蓝色改成绿色
Claude 会找到对应的文件,做出修改,然后展示类似这样的 diff:
- const Button = ({ color = 'blue' }: ButtonProps) => {
+ const Button = ({ color = 'green' }: ButtonProps) => {
方式三:命令执行(操作模式)
Claude Code 可以直接在终端执行命令并读取输出:
> 帮我创建一个新分支,然后跑一下测试
Claude 会依次执行 git checkout -b new-feature 和 npm test,然后告诉你测试结果。
这三种方式可以混合使用。一个典型的工作流可能是:先讨论架构方案(一问一答),然后让 Claude 实现(文件编辑),最后运行测试验证(命令执行)。
实际示例:用 Claude Code 创建 React 组件
来看一个完整的实战流程。假设我们正在一个 Next.js 项目里工作,需要创建一个数据表格组件。
第一步,先和 Claude 讨论设计:
你 > 我需要一个可排序、可筛选的数据表格组件,放在 components/ 目录下。
项目用了 TypeScript 和 Tailwind CSS,你觉得怎么设计比较好?
Claude 会给出方案建议,包括组件接口设计、状态管理等。讨论达成一致后:
你 > 好,按这个方案实现吧。数据用泛型,支持自定义列渲染。
Claude 会创建文件并展示结果。如果要查看改了什么:
你 > 看看刚才改了什么
Claude 会列出本次会话中所有文件变更的摘要。
/ 命令详解
除了自由对话,Claude Code 还提供了 / 命令用于控制会话行为。以下是所有常用命令:
| 命令 | 完整功能 | 使用场景 |
|---|---|---|
/help | 显示命令列表和简要说明 | 任何时候 |
/clear | 清除当前会话的全部对话历史 | 上下文太乱或话题跑偏 |
/compact | 压缩上下文,保留关键信息 | 提示词太长、响应变慢 |
/init | 在工作目录初始化 CLAUDE.md 配置 | 新项目首次设置 |
/add-dir | 将额外目录纳入工作范围 | 需要操作多个仓库 |
/status | 显示会话状态 | 查看上下文占用、文件变更 |
/cost | 显示当前会话费用 | 控制预算 |
/.diff | 显示修改过的文件 diff | 在应用变更前做最终检查 |
/.last | 重新显示上一条回复 | 回复被滚动冲走时 |
打断与恢复对话的技巧
在实际使用中,Claude Code 有时会在生成回复或执行操作时不符合预期。这时候不需要等待它完成:
- 直接输入新的消息可以打断当前正在进行的操作。Claude 会停止当前任务,开始处理你的新指令。
- 如果回复太长,输入
/.last可以重新显示上一条完整的回复内容。 - 使用
/clear可以清空当前会话,但不会丢失已保存的 CLAUDE.md 配置。
打断操作不会丢失已做出的文件修改——Claude Code 的文件操作是即时生效的。如果中途打断后需要撤销改动,可以手动使用 git checkout 恢复。
下一章我们将学习 /init 命令和项目初始化配置,这是让 Claude Code 真正理解你项目的关键步骤。