Skip to content

Claude Code 基础用法

本章介绍 Claude Code 日常开发中最常用的核心功能,包括如何与 Claude 对话、读取和修改代码、执行命令、处理文件,以及一些能大幅提升效率的实用技巧。


基本对话方式

1、交互模式(最常用)

在项目目录下启动 Claude Code,进入交互模式后即可直接输入问题或指令:

bash
cd /path/to/your/project
claude

在交互模式中,直接输入自然语言即可,无需任何特殊格式:

bash
这个项目是做什么的?
bash
帮我找出 src/auth.ts 里的 bug
bash
 UserService 添加一个 getUserById 方法

@ 符合可以指定文件,比如我们在 claude-test 目录下有个 test.html。

77197ff7-29c0-4097-9ed7-45e920d1ca1b.png

我们可以进入 claude-test:

bash
cd claude-test

然后询问:

bash
@test.html 这个文件是干嘛的

31049423-800b-447b-9e45-c40feec0952c.png

2、一次性任务模式

如果只需要执行一个任务,不需要进入交互模式,可以直接在命令后面带上任务描述:

bash
claude "解释一下 package.json 里的 scripts 字段"

执行完毕后自动退出,适合在 shell 脚本中使用或快速查询。

3、单次查询模式(-p)

使用 -p 参数执行一次性查询,Claude 的回答会直接输出到终端,适合与其他命令组合使用:

bash
claude -p "这段代码有什么问题" < src/utils.ts
bash
# 将 Claude 的分析结果保存到文件
claude -p "分析项目依赖的安全风险" > security-report.md

4、继续上一次对话(-c)

Claude Code 会保存对话历史。使用 -c 参数可以在当前目录继续最近一次未完成的对话,无需重新建立上下文:

bash
claude -c

理解和分析代码

1、了解项目整体情况

刚进入一个陌生项目时,可以先让 Claude 做整体分析:

bash
这个项目的架构是怎样的?
bash
项目用了哪些主要的技术和依赖?
bash
请介绍一下项目的目录结构

Claude Code 会自动读取项目文件进行分析,你不需要手动指定要读取哪些文件,它会自行判断需要查看哪些内容。

2、分析特定文件或模块

bash
解释一下 src/middleware/auth.ts 的工作原理
bash
UserRepository 类里有哪些方法?分别是做什么的?
bash
这个 SQL 查询语句是什么意思?

3、追踪代码调用链

bash
当用户登录时,代码执行流程是怎样的?从入口到数据库全部列出来
bash
findUserByEmail 这个函数在哪里被调用?
bash
这个接口的数据最终存到了哪张数据库表里?

4、理解复杂逻辑

bash
这段递归函数是什么意思?能举个例子说明吗?
bash
为什么这里要用 useCallback?不用会怎样?
bash
这个正则表达式能匹配什么格式的字符串?

修改代码

1、添加新功能

描述你需要的功能,Claude 会找到合适的位置并实现:

bash
 UserService 里添加一个 updatePassword 方法,需要验证旧密码
bash
给登录接口添加请求频率限制,同一 IP 每分钟最多 5
bash
创建一个 formatCurrency 工具函数,支持传入货币代码参数

2、修复 Bug

描述问题现象,Claude 会定位原因并给出修复方案:

bash
用户登出后刷新页面仍然显示已登录状态,帮我找出原因并修复
bash
这个函数在输入为空数组时会报错,修复它
bash
控制台报错 "Cannot read properties of undefined (reading 'map')",帮我定位并修复

3、重构代码

bash
把这个 500 行的组件拆分成更小的子组件
bash
 callback 风格的异步代码改为 async/await
bash
这几个函数里有大量重复代码,帮我提取成通用函数

4、审查修改内容

Claude Code 每次修改文件前都会展示 diff,供你审查。你可以在 Claude 提出修改方案后进行讨论:

bash
先不要改代码,只告诉我你打算怎么修改
bash
你刚才的修改有个问题:没有处理并发情况,重新来过
bash
这个方案可以,但把函数名改成 validateUserCredentials

Claude Code 在执行任何文件修改前都会展示修改内容并请求你的确认。你可以选择接受(yes)拒绝(no),或者在确认前继续讨论。不要觉得必须一次接受所有修改——先看,觉得没问题再确认。


执行命令和测试

1、让 Claude 运行命令

Claude Code 可以直接在终端执行命令,你可以用自然语言描述要做什么:

bash
运行测试,看看有没有失败的
bash
安装 dayjs 这个依赖
bash
把项目构建一下,看看有没有报错

Claude 会根据项目配置(如 package.json 中的 scripts 或 CLAUDE.md 中的命令)选择正确的命令执行。

2、运行特定测试

bash
运行 auth 模块的测试
bash
运行所有测试并生成覆盖率报告
bash
这个测试为什么失败了?帮我修复

3、查看命令输出

Claude 会将命令输出作为上下文,直接根据输出内容给出下一步建议:

bash
运行 npm run build,如果有报错帮我修复
bash
跑一下 lint,把所有警告都修复掉

文件操作

1、创建新文件

bash
创建 src/utils/date.ts,实现日期格式化相关的工具函数
bash
新建一个 Docker Compose 配置文件,包含 PostgreSQL Redis 服务
bash
创建 .github/workflows/ci.yml,配置 GitHub Actions 自动运行测试

2、查找文件和内容

bash
项目里有没有处理文件上传的代码?在哪里?
bash
哪些地方用到了 localStorage?
javascript
找出所有使用了 console.log 的文件

3、批量修改

bash
把所有文件里的 http://api.example.com 替换成 https://api.example.com
bash
 src/components/ 下所有组件的 PropTypes 改为 TypeScript 类型定义
bash
 src/api/ 目录下所有接口函数添加 JSDoc 注释

Git 操作

Claude Code 深度集成了 Git,可以用自然语言完成几乎所有 Git 操作。

1、查看变更

bash
我改了哪些文件?
bash
这次的改动有哪些内容?
bash
最近 10 次提交都改了什么?

2、提交代码

bash
提交这次的改动
bash
把这次的修改提交,commit 信息说明修复了登录验证的 bug

Claude 会根据实际改动内容自动生成符合规范的 commit 信息,也可以用快捷命令:

bash
claude commit

3、分支管理

bash
新建一个 feature/user-profile 分支
bash
切换到 develop 分支
bash
 main 分支的最新改动合并进来

4、处理合并冲突

bash
帮我解决合并冲突
bash
这个文件有冲突,帮我看看哪个版本是正确的

上下文管理技巧

1、手动指定文件

使用 @文件路径 语法可以明确告诉 Claude 需要参考哪个文件,避免它自己去猜:

bash
参考 @src/types/user.ts 里的类型定义,给 UserService 添加类型注解
bash
对照 @docs/api-spec.md 里的规范,检查接口实现是否符合要求

2、清除上下文

当对话进行了很长时间,或者切换到了完全不同的任务时,建议清除上下文重新开始:

bash
/clear

清除后 Claude 的"记忆"回到初始状态,新会话不受之前对话内容的影响。

3、压缩上下文

当感觉 Claude 开始"遗忘"之前的内容,或者对话变得很长时,可以压缩上下文:

bash
/compact

这会让 Claude 将当前对话内容总结为精简摘要,释放上下文空间,同时保留关键信息继续工作。

4、合理拆分任务

复杂任务不要一次性全部描述,拆成几个步骤逐步完成效果更好:

❌ 不好的做法:一次性丢给 Claude 太多要求:

bash
"帮我重构整个用户模块,包括添加类型注解、拆分文件、
优化数据库查询、添加缓存、写测试、更新文档"

✅ 好的做法:按逻辑顺序拆分成独立步骤:

bash
第一步:"分析 src/user/ 目录的现有结构,告诉我有哪些问题"
第二步:"先给所有函数添加 TypeScript 类型注解"
第三步:"把超过 200 行的文件拆分成更小的模块"
第四步:"优化数据库查询,添加必要的索引"

常用斜杠命令

在交互模式中,输入 / 会弹出所有可用命令的列表。以下是最常用的斜杠命令:

命令功能使用场景
/help查看所有可用命令和功能说明不知道有哪些功能时
/clear清除对话历史,开始全新会话切换到新任务时
/compact压缩当前对话上下文,释放空间对话很长时 Claude 开始遗忘
/init分析项目并生成 CLAUDE.md 文件首次在新项目中使用
/resume从历史中选择并恢复之前的对话继续昨天未完成的任务
/undo撤销上一次文件修改Claude 的修改效果不对时
/redo重做被撤销的修改撤销后发现还是原来的好
/login登录或切换账号需要切换到另一个账号时
/config查看和修改配置调整 Claude Code 行为设置
/cost查看本次会话的 Token 用量使用 API 账号时关注成本

实用技巧

1、让 Claude 先分析,再动手

遇到复杂问题,先让 Claude 说明思路,确认方向正确后再执行:

bash
不要修改代码,先分析登录失败的可能原因,列出你的排查思路
bash
你打算怎么实现这个功能?先描述方案,我确认后再写代码

2、提供错误信息和日志

遇到报错时,直接把错误信息粘贴到对话中,Claude 会根据错误内容定位问题:

javascript
运行时报了这个错误,帮我分析原因:
TypeError: Cannot read properties of null (reading 'userId')
    at getUserProfile (src/services/user.ts:42:18)
    at async ProfileController.getProfile (src/controllers/profile.ts:15:20)

3、用截图描述 UI 问题

Claude Code 支持多模态输入,可以将截图直接粘贴到对话中,描述 UI 相关的问题:

bash
[粘贴截图] 这个按钮点击后没有反应,但控制台没有报错,帮我排查
bash
[粘贴设计稿截图] 按照这个设计实现 Header 组件

4、善用"继续"

如果 Claude 的回答被截断,或者你觉得它还没说完,直接说"继续"即可:

bash
继续
bash
还有吗?
bash
把剩下的部分也实现了

5、要求解释修改内容

对于重要的代码修改,可以要求 Claude 解释每处改动的原因:

bash
修改完之后给我解释一下每处改动的目的
bash
这里为什么要用 Promise.allSettled 而不是 Promise.all?

6、限制 Claude 的操作范围

当你不希望 Claude 随意改动其他文件时,可以明确限定范围:

bash
只修改 src/auth.ts 这一个文件,不要改其他地方
bash
只读取代码不要修改,帮我分析这个模块的性能瓶颈

常见工作流示例

工作流一:快速了解新项目

实例

bash
# 第一步:启动并了解项目

> 这个项目是做什么的?用了哪些技术?

# 第二步:了解目录结构

> 介绍一下项目的目录结构,重点介绍核心模块

# 第三步:了解如何运行

> 怎么在本地把这个项目跑起来?

# 第四步:生成项目说明文件

> 帮我生成一个 CLAUDE.md 文件,总结项目的关键信息

工作流二:修复一个 Bug

实例

bash
# 第一步:描述问题

> 用户反馈:修改个人信息后,页面顶部的用户名没有实时更新

# 第二步:让 Claude 分析原因

> 先分析一下可能的原因,不要修改代码

# 第三步:确认方案后修复

> 你说的第二种原因看起来更可能,按那个思路修复

# 第四步:验证修复

> 运行相关的测试确认修复有效

工作流三:添加一个新功能

实例

bash
# 第一步:描述需求

> 需要给订单列表添加按状态筛选的功能,状态有:待付款、已付款、已发货、已完成

# 第二步:了解现有代码

> 先看看订单相关的现有代码结构

# 第三步:实现功能

> 在不影响现有功能的前提下实现筛选功能

# 第四步:补充测试

> 为这个新功能写测试用例

# 第五步:提交代码

> 把这次的改动提交

工作流四:代码审查

bash
# 审查特定文件
> 帮我审查 src/payment/processor.ts 这个文件,
> 重点关注错误处理、边界情况和安全风险

# 审查 git 改动
> 审查我这次的所有改动,看看有没有明显的问题

# 针对性检查
> 这段代码有没有 SQL 注入的风险?

注意事项

关于文件修改:Claude Code 会在修改前展示 diff 并请求确认,不要无脑全部接受,尤其是涉及核心逻辑的修改,请仔细阅读 diff 内容再决定是否接受。

关于敏感文件:在 CLAUDE.md.claude/settings.json 中明确标注不允许 Claude 读取或修改的文件(如 .env、密钥文件),避免意外暴露。

关于大型任务:一个对话中不要堆积太多未完成的任务,容易导致 Claude 失去焦点。完成一个任务后再开始下一个,或者使用 /clear 重新开始。

关于代码质量:Claude 生成的代码不总是最优解,对于重要模块,执行完成后建议做一轮 code review,理解每处改动的目的,确保符合项目的设计原则。

AI 思考中...

Claude Code 交互模式

Claude Code MCP

基于 VitePress 构建,部署于 GitHub Pages