Claude Code系列教程之Claude Code 基础用法基础用法

基本对话方式

1、交互模式(最常用)

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

plain 复制代码
cd /path/to/your/project
claude

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

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

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

我们可以进入 claude-test:

plain 复制代码
cd claude-test

然后询问:

plain 复制代码
@test.html 这个文件是干嘛的

2、一次性任务模式

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

plain 复制代码
claude "解释一下 package.json 里的 scripts 字段"

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

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

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

plain 复制代码
claude -p "这段代码有什么问题" < src/utils.ts

# 将 Claude 的分析结果保存到文件
claude -p "分析项目依赖的安全风险" > security-report.md

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

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

plain 复制代码
claude -c

理解和分析代码

1、了解项目整体情况

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

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

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

2、分析特定文件或模块

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

3、追踪代码调用链

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

4、理解复杂逻辑

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

修改代码

1、添加新功能

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

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

2、修复 Bug

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

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

3、重构代码

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

4、审查修改内容

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

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

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

执行命令和测试

1、让 Claude 运行命令

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

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

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

2、运行特定测试

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

3、查看命令输出

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

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

文件操作

1、创建新文件

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

2、查找文件和内容

plain 复制代码
项目里有没有处理文件上传的代码?在哪里?
哪些地方用到了 localStorage?

找出所有使用了 console.log 的文件

3、批量修改

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

Git 操作

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

1、查看变更

plain 复制代码
我改了哪些文件?
这次的改动有哪些内容?
最近 10 次提交都改了什么?

2、提交代码

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

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

plain 复制代码
claude commit

3、分支管理

plain 复制代码
新建一个 feature/user-profile 分支
切换到 develop 分支
把 main 分支的最新改动合并进来

4、处理合并冲突

plain 复制代码
帮我解决合并冲突
这个文件有冲突,帮我看看哪个版本是正确的

上下文管理技巧

1、手动指定文件

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

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

2、清除上下文

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

plain 复制代码
/clear

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

3、压缩上下文

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

plain 复制代码
/compact

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

4、合理拆分任务

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

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

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

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

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

实用技巧

1、让 Claude 先分析,再动手

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

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

2、提供错误信息和日志

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

plain 复制代码
运行时报了这个错误,帮我分析原因:
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 相关的问题:

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

4、善用"继续"

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

plain 复制代码
继续
还有吗?
把剩下的部分也实现了

5、要求解释修改内容

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

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

6、限制 Claude 的操作范围

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

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

常见工作流示例

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

plain 复制代码
# 第一步:启动并了解项目
> 这个项目是做什么的?用了哪些技术?

# 第二步:了解目录结构
> 介绍一下项目的目录结构,重点介绍核心模块

# 第三步:了解如何运行
> 怎么在本地把这个项目跑起来?

# 第四步:生成项目说明文件
> 帮我生成一个 CLAUDE.md 文件,总结项目的关键信息

工作流二:修复一个 Bug

plain 复制代码
# 第一步:描述问题
> 用户反馈:修改个人信息后,页面顶部的用户名没有实时更新

# 第二步:让 Claude 分析原因
> 先分析一下可能的原因,不要修改代码

# 第三步:确认方案后修复
> 你说的第二种原因看起来更可能,按那个思路修复

# 第四步:验证修复
> 运行相关的测试确认修复有效

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

plain 复制代码
# 第一步:描述需求
> 需要给订单列表添加按状态筛选的功能,状态有:待付款、已付款、已发货、已完成

# 第二步:了解现有代码
> 先看看订单相关的现有代码结构

# 第三步:实现功能
> 在不影响现有功能的前提下实现筛选功能

# 第四步:补充测试
> 为这个新功能写测试用例

# 第五步:提交代码
> 把这次的改动提交

工作流四:代码审查

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

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

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

注意事项

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

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

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

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

相关推荐
deephub1 小时前
2026年的 ReAct Agent架构解析:原生 Tool Calling 与 LangGraph 状态机
人工智能·大语言模型·agent·langgraph
淡海水2 小时前
【AI模型】概念-Token
人工智能·算法
数智化精益手记局2 小时前
什么是安全生产?解读安全生产的基本方针与核心要求
大数据·运维·人工智能·安全·信息可视化·自动化·精益工程
ManThink Technology2 小时前
KS31 4-20mA 模拟量采集器通过LoRaWAN 接入ThinkLink
人工智能·物联网
Zzj_tju2 小时前
大语言模型部署实战:生产环境怎么做高并发、监控、限流与故障恢复?
人工智能·语言模型·自然语言处理
weixin_509138342 小时前
《智能体认知动力学导论》与OT-SGN引擎:投资研究的真实案例——当理论“导航”现实,跨域测地线产生惊人洞察
人工智能
agicall.com2 小时前
信电助-智能双轨电话业务系统部署方案详解
人工智能·语音识别·座机语音转文字·固话录音转文字
隔壁大炮2 小时前
Day02-04.张量点乘和矩阵乘法
人工智能·pytorch·深度学习·线性代数·算法·矩阵
jedi-knight2 小时前
大模型本地部署指南
人工智能