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-featurenpm 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 真正理解你项目的关键步骤。