Day 3 / 7

工具调用系统

深入理解 Claude Code 如何操作文件和执行命令

📖 预计阅读时间:30分钟🎯 难度:进阶

Claude Code 的强大之处在于它的工具系统。今天我们深入了解 AI 如何读取文件、编辑代码、执行命令,以及如何安全地管理这些权限。

一、工具系统概览

Claude Code 内置了多种工具,每个工具负责特定的操作:

📖

Read

读取文件内容,支持指定行范围

✏️

Edit

精确替换文件中的特定内容

📝

Write

创建新文件或完全重写现有文件

🔍

Grep

在项目中搜索特定内容

📁

Glob

按模式匹配查找文件

⚙️

Bash

执行 shell 命令

二、文件操作详解

Read:智能读取

Read 工具不只是简单的 cat 命令,它能理解代码结构:

使用场景

  • • 读取整个文件内容
  • • 只读取特定行范围(大文件优化)
  • • 理解代码结构和依赖关系

示例:

claude "读取 src/utils/auth.ts 的内容,重点关注 JWT 验证逻辑"

Edit:精确修改

Edit 是最常用的工具,它通过字符串替换来修改代码:

工作原理

  1. 1. AI 先用 Read 读取文件
  2. 2. 找到需要修改的代码片段
  3. 3. 用新代码替换旧代码
  4. 4. 保持其他部分不变

示例:

claude "把 src/api/user.ts 中的 getUserById 函数改成异步的"

⚠️ 注意

Edit 工具需要精确匹配原代码。如果代码格式不一致(空格、换行等),可能匹配失败。这时 AI 会自动重试或使用 Write 工具。

Write:创建与重写

Write 用于创建新文件或完全重写现有文件:

适用场景

  • • 创建新文件
  • • 文件需要大幅改动(超过50%)
  • • Edit 多次失败后的备选方案

示例:

claude "创建 src/components/UserCard.tsx,展示用户头像、姓名、邮箱"

三、搜索与查找

Grep:内容搜索

在整个项目中搜索特定内容,支持正则表达式:

示例:

claude "找出所有使用了 localStorage 的地方"

Glob:文件匹配

按文件名模式查找文件:

示例:

claude "列出所有 .tsx 组件文件"

四、命令执行

Bash 工具让 AI 能执行 shell 命令,实现自动化操作:

常见用途

  • • 安装依赖:npm install、yarn add
  • • 运行测试:npm test、pytest
  • • Git 操作:git status、git commit
  • • 编译构建:npm run build
  • • 数据库迁移:npx prisma migrate

示例:

claude "安装 axios 并创建一个 API 请求工具函数"

🚨 安全提示

Bash 工具权限很高,可以执行任何命令。建议在权限设置中对危险命令(rm -rf、sudo 等)设置为"总是询问"。

五、权限管理

Claude Code 提供了灵活的权限控制系统:

三种权限模式

🟢 自动允许

AI 可以直接执行,不需要确认。适合读取操作。

🟡 总是询问

每次执行前都需要你确认。适合写入和命令执行。

🔴 禁止

完全禁止该操作。适合危险命令。

配置权限:

# 编辑配置文件
claude-code config edit

# 或直接修改 ~/.claude-code/config.json

推荐权限配置

Read(读取文件)自动允许
Grep/Glob(搜索)自动允许
Edit(编辑文件)总是询问
Write(创建文件)总是询问
Bash(执行命令)总是询问

六、实战:构建 CRUD 应用

让我们用今天学到的知识,构建一个完整的 CRUD(增删改查)应用。

项目需求

创建一个博客文章管理系统,包含:

  • • 数据模型(Post)
  • • API 接口(CRUD)
  • • 前端组件(列表、详情、编辑)
  • • 单元测试

第1步:创建数据模型

claude "创建 src/models/Post.ts
包含字段:id, title, content, author, createdAt, updatedAt
使用 TypeScript interface"

第2步:创建 API 接口

claude "创建 src/api/posts.ts
实现:
- getPosts(): 获取所有文章
- getPostById(id): 获取单篇文章
- createPost(data): 创建文章
- updatePost(id, data): 更新文章
- deletePost(id): 删除文章
使用 fetch API"

第3步:创建前端组件

claude "创建 React 组件:
1. PostList.tsx - 文章列表
2. PostDetail.tsx - 文章详情
3. PostEditor.tsx - 文章编辑器
使用 TypeScript 和 Tailwind CSS"

第4步:添加测试

claude "为 src/api/posts.ts 添加单元测试
使用 Jest 和 MSW(Mock Service Worker)
覆盖所有 CRUD 操作"

第5步:运行测试

claude "运行测试并修复所有失败的用例"

✨ 关键点

整个过程中,Claude Code 会:

  • • 用 Write 创建新文件
  • • 用 Read 理解现有代码
  • • 用 Edit 修改和完善代码
  • • 用 Bash 安装依赖和运行测试
  • • 用 Grep 查找相关代码

今日小结

你已经学会了:

  • Claude Code 的六大核心工具及其用途
  • Read、Edit、Write 三种文件操作的区别和使用场景
  • 如何用 Grep 和 Glob 搜索项目
  • Bash 工具的强大功能和安全注意事项
  • 权限管理的三种模式和推荐配置
  • 通过实战项目掌握工具组合使用

明天预告

在 Day 4,我们将学习:

  • • Agent 系统:让 AI 自主完成复杂任务
  • • 如何设计 Agent 工作流
  • • 多 Agent 协作模式
  • • 实战:构建自动化测试 Agent

🎓 加入云途AGI社群,获取更多学习资源

社群提供基础资源、答疑支持和陪伴式学习,帮助你更好地掌握 AI 工具

📚

基础资源

入门教程、工具指南、实战案例

💬

答疑支持

遇到问题随时提问,及时获得解答

🤝

陪伴式学习

与同行者一起成长,不再孤单学习