Claude Code Skills 完整学习指南
-
- [📚 目录](#📚 目录)
- [第一章:什么是 Skills](#第一章:什么是 Skills)
-
- [1.1 Skills 简介](#1.1 Skills 简介)
- [1.2 Skills 的类型](#1.2 Skills 的类型)
-
- [官方 Skills(Anthropic 提供)](#官方 Skills(Anthropic 提供))
- [社区 Skills(第三方开发)](#社区 Skills(第三方开发))
- [自定义 Skills(你自己创建)](#自定义 Skills(你自己创建))
- [1.3 为什么要使用 Skills](#1.3 为什么要使用 Skills)
- [1.4 Skills 的工作原理](#1.4 Skills 的工作原理)
- 第二章:环境准备
-
- [2.1 前置要求](#2.1 前置要求)
- [2.2 了解文件位置](#2.2 了解文件位置)
- [2.3 检查环境](#2.3 检查环境)
- [第三章:安装官方 Skills](#第三章:安装官方 Skills)
-
- [3.1 添加官方 Skills 市场](#3.1 添加官方 Skills 市场)
- [3.2 浏览可用的 Skills](#3.2 浏览可用的 Skills)
- [3.3 安装 Skills](#3.3 安装 Skills)
-
- [方式 1:安装示例 skills 包(推荐新手)](#方式 1:安装示例 skills 包(推荐新手))
- [方式 2:安装文档 skills 包](#方式 2:安装文档 skills 包)
- [方式 3:安装单个 skill(高级)](#方式 3:安装单个 skill(高级))
- [3.4 重启 Claude Code](#3.4 重启 Claude Code)
- [3.5 验证安装](#3.5 验证安装)
-
- [方法 1:询问 Claude](#方法 1:询问 Claude)
- [方法 2:测试一个 skill](#方法 2:测试一个 skill)
- [方法 3:查看系统信息](#方法 3:查看系统信息)
- [第四章:使用 Skills](#第四章:使用 Skills)
-
- [4.1 Skills 的三种使用方式](#4.1 Skills 的三种使用方式)
-
- [方式 1:自然语言(推荐新手)](#方式 1:自然语言(推荐新手))
- [方式 2:明确指定 skill](#方式 2:明确指定 skill)
- [方式 3:直接调用命令(高级用户)](#方式 3:直接调用命令(高级用户))
- [4.2 常用 Skills 使用示例](#4.2 常用 Skills 使用示例)
-
- [📄 文档处理 Skills](#📄 文档处理 Skills)
- [🎨 设计类 Skills](#🎨 设计类 Skills)
- [🛠️ 开发类 Skills](#🛠️ 开发类 Skills)
- [4.3 Skills 使用技巧](#4.3 Skills 使用技巧)
-
- [技巧 1:提供详细信息](#技巧 1:提供详细信息)
- [技巧 2:分步骤操作](#技巧 2:分步骤操作)
- [技巧 3:查看 Skill 能做什么](#技巧 3:查看 Skill 能做什么)
- [技巧 4:提供示例](#技巧 4:提供示例)
- [技巧 5:指定输出位置](#技巧 5:指定输出位置)
- [4.4 常见使用场景](#4.4 常见使用场景)
-
- [场景 1:日常办公](#场景 1:日常办公)
- [场景 2:数据处理](#场景 2:数据处理)
- [场景 3:网页开发](#场景 3:网页开发)
- [场景 4:数据库管理](#场景 4:数据库管理)
- [第六章:实战案例 - MySQL 数据库管理 Skill](#第六章:实战案例 - MySQL 数据库管理 Skill)
- 支持的操作
- 使用示例
- 安全注意事项
- 命令参考
- [在 Claude Code 中使用](#在 Claude Code 中使用)
- 故障排除
-
- 连接失败
- [6.8 扩展功能](#6.8 扩展功能)
- [6.9 实战演练](#6.9 实战演练)
- [6.10 总结](#6.10 总结)
- 第七章:常见问题与解决方案
-
- [7.1 安装相关问题](#7.1 安装相关问题)
-
- [问题 1:无法添加官方市场](#问题 1:无法添加官方市场)
- [问题 2:Skills 安装后不显示](#问题 2:Skills 安装后不显示)
- [问题 3:依赖安装失败](#问题 3:依赖安装失败)
- [7.2 使用相关问题](#7.2 使用相关问题)
-
- [问题 4:Skill 执行失败](#问题 4:Skill 执行失败)
- [问题 5:Claude 选错了 Skill](#问题 5:Claude 选错了 Skill)
- [问题 6:配置文件找不到](#问题 6:配置文件找不到)
- [7.3 数据库相关问题](#7.3 数据库相关问题)
-
- [问题 7:无法连接数据库](#问题 7:无法连接数据库)
- [问题 8:备份失败](#问题 8:备份失败)
- [7.4 性能相关问题](#7.4 性能相关问题)
-
- [问题 9:查询很慢](#问题 9:查询很慢)
- [问题 10:内存占用过高](#问题 10:内存占用过高)
- [7.5 文档相关问题](#7.5 文档相关问题)
-
- [问题 11:Word 文档创建失败](#问题 11:Word 文档创建失败)
- [问题 12:PDF 处理失败](#问题 12:PDF 处理失败)
- [7.6 调试技巧](#7.6 调试技巧)
-
- [技巧 1:启用详细日志](#技巧 1:启用详细日志)
- [技巧 2:使用调试模式](#技巧 2:使用调试模式)
- [技巧 3:测试单个功能](#技巧 3:测试单个功能)
- [技巧 4:查看 Claude Code 日志](#技巧 4:查看 Claude Code 日志)
- [7.7 获取帮助](#7.7 获取帮助)
- 附录:完整命令参考
- [附录 B:配置文件模板](#附录 B:配置文件模板)
- 配置
- 使用
-
- 命令行
- [Claude Code](#Claude Code)
- 命令参考
📚 目录
- [第一章:什么是 Skills](#第一章:什么是 Skills)
- 第二章:环境准备
- [第三章:安装官方 Skills](#第三章:安装官方 Skills)
- [第四章:使用 Skills](#第四章:使用 Skills)
- [第五章:创建自定义 Skills](#第五章:创建自定义 Skills)
- [第六章:实战案例 - MySQL 数据库管理 Skill](#第六章:实战案例 - MySQL 数据库管理 Skill)
- 第七章:常见问题与解决方案
- 附录:完整命令参考
第一章:什么是 Skills
1.1 Skills 简介
Skills 是 Claude Code 的扩展功能系统,就像给 Claude 安装"技能包"一样。
通俗理解:
- 就像手机 APP:你可以给手机安装不同的 APP 来实现不同功能
- Skills 就是给 Claude 安装的"功能插件"
- 每个 Skill 让 Claude 学会一项新技能
举例说明:
- 安装
docxskill → Claude 就会创建和编辑 Word 文档 - 安装
pdfskill → Claude 就会处理 PDF 文件 - 安装
mysql-managerskill → Claude 就会操作数据库
1.2 Skills 的类型
官方 Skills(Anthropic 提供)
- 由 Claude 官方团队开发和维护
- 质量有保证,功能稳定
- 免费使用
- 例如:docx、pdf、pptx、xlsx 等
社区 Skills(第三方开发)
- 由社区开发者贡献
- 功能多样化
- 需要自行评估质量
自定义 Skills(你自己创建)
- 根据自己的需求定制
- 完全可控
- 本教程会教你如何创建
1.3 为什么要使用 Skills
没有 Skills 的情况:
你:帮我创建一个 Word 文档
Claude:抱歉,我不能直接创建 Word 文档
有 Skills 的情况:
你:帮我创建一个 Word 文档
Claude:好的!(自动使用 docx skill 创建文档)
Skills 的优势:
- ✅ 扩展 Claude 的能力
- ✅ 自动化重复任务
- ✅ 提高工作效率
- ✅ 可以定制专属功能
1.4 Skills 的工作原理
你的请求 → Claude 分析 → 选择合适的 Skill → 执行操作 → 返回结果
示例流程:
- 你说:"创建一个 Word 文档"
- Claude 识别到需要文档处理
- Claude 调用
docxskill - docx skill 执行创建文档的代码
- 返回创建好的文档
第二章:环境准备
2.1 前置要求
在开始之前,确保你已经安装了:
必需软件
1. Claude Code CLI
-
这是 Claude 的命令行工具
-
如果你能运行 Claude Code,说明已经安装了
-
检查方法:
bashclaude --version
2. Node.js(某些 skills 需要)
-
版本要求:14.0 或更高
-
检查是否安装:
bashnode --version npm --version -
如果没有安装,访问:https://nodejs.org/
-
下载 LTS(长期支持)版本
3. Git(可选,用于克隆官方仓库)
-
检查是否安装:
bashgit --version -
如果没有安装,访问:https://git-scm.com/
2.2 了解文件位置
重要目录结构:
你的用户目录/
├── .claude/ # Claude 配置目录
│ ├── skills/ # 自定义 skills 存放位置
│ │ └── mysql-manager/ # 示例:自定义 skill
│ │ ├── SKILL.md # Skill 定义文件
│ │ ├── config.json # 配置文件
│ │ ├── mysql-tool.js # 工具脚本
│ │ └── README.md # 说明文档
│ ├── plugins/ # 插件目录
│ │ └── marketplaces/ # Skills 市场
│ │ └── anthropic-agent-skills/
│ │ └── skills/ # 官方 skills
│ │ ├── docx/
│ │ ├── pdf/
│ │ └── ...
│ └── config.json # 全局配置文件
不同操作系统的路径:
Windows:
-
用户目录:
C:\Users\你的用户名\ -
Claude 目录:
C:\Users\你的用户名\.claude\ -
查看方法:
bashecho %USERPROFILE%\.claude
Mac:
-
用户目录:
/Users/你的用户名/ -
Claude 目录:
/Users/你的用户名/.claude/ -
查看方法:
bashecho ~/.claude
Linux:
-
用户目录:
/home/你的用户名/ -
Claude 目录:
/home/你的用户名/.claude/ -
查看方法:
bashecho ~/.claude
2.3 检查环境
步骤 1:检查 Claude Code
bash
claude --version
预期输出:显示版本号
步骤 2:检查 Node.js
bash
node --version
npm --version
预期输出:显示版本号(如 v20.9.0)
步骤 3:检查配置目录
bash
# Windows
dir %USERPROFILE%\.claude
# Mac/Linux
ls -la ~/.claude
预期输出:显示 .claude 目录内容
第三章:安装官方 Skills
3.1 添加官方 Skills 市场
步骤 1:启动 Claude Code
在终端或命令行中:
bash
claude-code
步骤 2:添加官方市场
在 Claude Code 中输入:
/plugin marketplace add anthropics/skills
预期结果:
Successfully added marketplace: anthropic-agent-skills
这一步做了什么?
- 连接到 Anthropic 官方的 skills 仓库(GitHub)
- 下载 skills 列表到你的电脑
- 存储位置:
~/.claude/plugins/marketplaces/anthropic-agent-skills/ - 但还没有安装具体的 skills
如果失败怎么办?
- 检查网络连接
- 确保可以访问 GitHub
- 尝试使用代理(如果在国内)
3.2 浏览可用的 Skills
方法 1:通过命令浏览
/plugin browse
方法 2:查看已下载的 skills
bash
# Windows
dir %USERPROFILE%\.claude\plugins\marketplaces\anthropic-agent-skills\skills
# Mac/Linux
ls ~/.claude/plugins/marketplaces/anthropic-agent-skills/skills/
你会看到这些 skills:
| Skill 名称 | 功能说明 | 适用场景 |
|---|---|---|
| docx | Word 文档处理 | 创建报告、编辑文档 |
| PDF 文件处理 | 提取文本、合并PDF | |
| pptx | PowerPoint 演示 | 创建幻灯片 |
| xlsx | Excel 表格 | 数据处理、表格创建 |
| frontend-design | 前端设计 | 网页设计、UI组件 |
| algorithmic-art | 算法艺术 | 生成艺术、动画 |
| canvas-design | 画布设计 | 海报、图形设计 |
| mcp-builder | MCP 服务器 | API 集成 |
| webapp-testing | Web 测试 | 自动化测试 |
| skill-creator | Skill 创建 | 创建自定义 skill |
| 更多... | ... | ... |
3.3 安装 Skills
方式 1:安装示例 skills 包(推荐新手)
/plugin install example-skills@anthropic-agent-skills
这个命令会安装:
- 所有示例 skills(16个)
- 包括文档处理、设计、开发等
- 适合学习和日常使用
预期结果:
✓ Installed example-skills. Restart Claude Code to load new plugins.
方式 2:安装文档 skills 包
如果只需要文档处理功能:
/plugin install document-skills@anthropic-agent-skills
这个命令会安装:
- docx(Word)
- pdf(PDF)
- pptx(PowerPoint)
- xlsx(Excel)
方式 3:安装单个 skill(高级)
/plugin install docx@anthropic-agent-skills
3.4 重启 Claude Code
重要:安装后必须重启 Claude Code 才能生效!
步骤:
-
退出当前 Claude Code 会话
- 输入
exit或 - 按
Ctrl+C(Windows/Linux)或Cmd+C(Mac)
- 输入
-
重新启动:
bashclaude-code
3.5 验证安装
方法 1:询问 Claude
在 Claude Code 中输入:
你有哪些 skills?
列出所有可用的 skills
Claude 会列出所有已安装的 skills。
方法 2:测试一个 skill
帮我创建一个测试 Word 文档
如果 Claude 成功创建了文档,说明 skills 安装成功!
方法 3:查看系统信息
bash
# 查看已安装的 skills
ls ~/.claude/plugins/cache/
第四章:使用 Skills
4.1 Skills 的三种使用方式
方式 1:自然语言(推荐新手)
直接用日常语言描述你的需求,Claude 会自动选择合适的 skill。
示例:
创建一个 Word 文档
处理这个 PDF 文件
设计一个登录页面
查询数据库
优点:
- 最简单,不需要记住 skill 名称
- Claude 会自动判断使用哪个 skill
- 适合日常使用
缺点:
- 有时 Claude 可能选错 skill
- 不够精确
方式 2:明确指定 skill
如果你知道要用哪个 skill,可以明确指定。
示例:
使用 docx skill 创建报告
使用 pdf skill 提取文本
使用 mysql-manager 查询数据
优点:
- 更精确
- 避免 Claude 选错 skill
- 适合重复性任务
缺点:
- 需要记住 skill 名称
方式 3:直接调用命令(高级用户)
对于自定义 skills,可以直接调用命令。
示例:
bash
cd ~/.claude/skills/mysql-manager
node mysql-tool.js list-databases
优点:
- 最快速
- 完全控制
- 适合脚本化
缺点:
- 需要了解命令行
- 需要知道具体命令
4.2 常用 Skills 使用示例
📄 文档处理 Skills
创建 Word 文档(docx):
基础用法:
创建一个 Word 文档
详细用法:
创建一个项目报告文档,包含:
- 标题:2024年度总结
- 副标题:技术部门
- 三个章节:背景、实施、成果
- 一个数据表格
- 页脚包含日期
保存为 report.docx
处理 PDF(pdf):
提取文本:
从 report.pdf 中提取所有文本
合并 PDF:
合并 file1.pdf 和 file2.pdf 为 merged.pdf
分割 PDF:
将 document.pdf 的第 1-5 页提取为新文件
创建 PowerPoint(pptx):
创建一个产品介绍演示文稿,包含:
- 封面页
- 产品特点(3页)
- 价格方案(1页)
- 联系方式(1页)
处理 Excel(xlsx):
创建一个销售数据表格,包含:
- 列:日期、产品、数量、金额
- 10行测试数据
- 添加求和公式
🎨 设计类 Skills
前端设计(frontend-design):
登录页面:
设计一个现代风格的登录页面,包含:
- 用户名和密码输入框
- 记住我选项
- 登录按钮
- 使用蓝色主题
导航栏:
创建一个响应式导航栏,包含:
- Logo
- 首页、产品、关于我们、联系
- 移动端汉堡菜单
算法艺术(algorithmic-art):
用粒子系统创建一个动画,包含:
- 1000个粒子
- 随机颜色
- 鼠标交互
Canvas 设计(canvas-design):
设计一张活动海报:
- 主题:春季促销
- 尺寸:A4
- 包含标题、日期、二维码
🛠️ 开发类 Skills
Web 测试(webapp-testing):
测试 localhost:3000 的登录功能:
1. 打开页面
2. 输入用户名和密码
3. 点击登录按钮
4. 截图保存
MCP 构建(mcp-builder):
创建一个连接 GitHub API 的 MCP 服务器,功能:
- 获取仓库列表
- 创建 Issue
- 查看 Pull Request
4.3 Skills 使用技巧
技巧 1:提供详细信息
不好的示例:
创建一个文档
- 太模糊
- Claude 不知道要创建什么内容
好的示例:
创建一个 Word 文档,文件名为 report.docx,包含:
- 标题:项目报告
- 三个章节:背景、方案、结论
- 每个章节包含 2-3 段文字
- 保存到当前目录
- 清晰明确
- Claude 知道具体要做什么
技巧 2:分步骤操作
对于复杂任务,分步骤进行:
第一步:先帮我查看数据库有哪些表
(等待结果)
第二步:查询 users 表的结构
(等待结果)
第三步:导出 users 表为 CSV
为什么要分步骤?
- 每一步都能确认结果
- 出错时容易定位问题
- 可以根据结果调整下一步
技巧 3:查看 Skill 能做什么
docx skill 有哪些功能?
pdf skill 可以做什么?
mysql-manager 支持哪些操作?
Claude 会列出该 skill 的所有功能。
技巧 4:提供示例
如果有参考样式:
创建一个类似 example.docx 的文档,但内容改为...
技巧 5:指定输出位置
创建文档并保存到桌面
导出数据到 D:/exports/ 目录
4.4 常见使用场景
场景 1:日常办公
需求:每周写工作周报
使用 Skills:
使用 docx skill 创建本周工作周报:
- 标题:第X周工作周报
- 本周完成的工作(列表)
- 下周计划(列表)
- 遇到的问题
场景 2:数据处理
需求:处理 Excel 数据
使用 Skills:
使用 xlsx skill:
1. 读取 sales.xlsx
2. 筛选金额大于 1000 的记录
3. 按日期排序
4. 导出为新文件
场景 3:网页开发
需求:快速创建页面原型
使用 Skills:
使用 frontend-design skill 创建:
- 一个产品展示页面
- 包含图片轮播
- 产品卡片网格
- 响应式布局
场景 4:数据库管理
需求:定期备份数据库
使用 Skills:
使用 mysql-manager skill:
1. 备份 production 数据库
2. 保存到 /backups/ 目录
3. 文件名包含日期
第六章:实战案例 - MySQL 数据库管理 Skill
本章将通过一个完整的实战案例,教你如何创建一个功能强大的 MySQL 数据库管理 Skill。
6.1 需求分析
目标:创建一个 Skill 来管理 MySQL 数据库
功能需求:
- 数据库管理(创建、删除、列出)
- 表管理(创建、删除、查看结构)
- 数据查询(SELECT、统计)
- 数据操作(插入、更新、删除)
- 导入导出(CSV、JSON、SQL)
- 备份与恢复
- 用户管理
- 性能分析
技术选型:
- Node.js + mysql2 库
- 配置文件存储连接信息
- 命令行工具实现各种操作
6.2 创建 Skill 结构
步骤 1:创建目录
bash
mkdir -p ~/.claude/skills/mysql-manager
cd ~/.claude/skills/mysql-manager
步骤 2:初始化 npm 项目
bash
npm init -y
npm install mysql2
6.3 创建配置文件
config.json:
json
{
"host": "localhost",
"port": 3306,
"user": "root",
"password": "root",
"database": "",
"charset": "utf8mb4",
"connectionLimit": 10,
"connectTimeout": 10000,
"backupPath": "~/.claude/skills/mysql-manager/backups"
}
配置说明:
host: 数据库服务器地址port: 端口号(默认 3306)user: 数据库用户名password: 数据库密码database: 默认数据库(可为空)backupPath: 备份文件存储路径
安全提示:
bash
# 设置配置文件权限(只有所有者可读写)
chmod 600 config.json
6.4 创建核心工具脚本
mysql-tool.js(核心功能实现):
javascript
#!/usr/bin/env node
const mysql = require('mysql2/promise');
const fs = require('fs').promises;
const path = require('path');
// 加载配置
async function loadConfig() {
const configPath = path.join(__dirname, 'config.json');
const configData = await fs.readFile(configPath, 'utf8');
return JSON.parse(configData);
}
// 创建数据库连接
async function createConnection(dbName = null) {
const config = await loadConfig();
if (dbName) {
config.database = dbName;
}
return await mysql.createConnection(config);
}
// 列出所有数据库
async function listDatabases() {
const conn = await createConnection();
const [rows] = await conn.execute('SHOW DATABASES');
await conn.end();
return rows.map(row => row.Database);
}
// 列出所有表
async function listTables(dbName) {
const conn = await createConnection(dbName);
const [rows] = await conn.execute('SHOW TABLES');
await conn.end();
return rows.map(row => Object.values(row)[0]);
}
// 查询数据
async function selectAll(dbName, tableName, limit = 100) {
const conn = await createConnection(dbName);
const [rows] = await conn.execute(
`SELECT * FROM \`${tableName}\` LIMIT ?`,
[limit]
);
await conn.end();
return rows;
}
// 主函数
async function main() {
const args = process.argv.slice(2);
const command = args[0];
try {
let result;
switch (command) {
case 'list-databases':
result = await listDatabases();
break;
case 'list-tables':
result = await listTables(args[1]);
break;
case 'select-all':
result = await selectAll(args[1], args[2], parseInt(args[3] || 100));
break;
default:
console.error('未知命令:', command);
process.exit(1);
}
console.log(JSON.stringify(result, null, 2));
} catch (error) {
console.error('错误:', error.message);
process.exit(1);
}
}
if (require.main === module) {
main();
}
设置执行权限:
bash
chmod +x mysql-tool.js
6.5 创建 SKILL.md
markdown
---
name: mysql-manager
description: 全面的 MySQL 数据库管理工具。支持连接数据库、执行查询、数据导入导出、备份恢复、表结构管理等操作。使用前需要配置数据库连接信息。
---
# MySQL 数据库管理 Skill
这个 skill 提供全面的 MySQL 数据库操作功能。
## 配置
数据库连接信息存储在 `~/.claude/skills/mysql-manager/config.json` 中。
默认配置:
```json
{
"host": "localhost",
"port": 3306,
"user": "root",
"password": "root"
}
支持的操作
数据库管理
- 列出所有数据库
- 创建数据库
- 删除数据库
- 查看数据库大小
表管理
- 列出所有表
- 创建表
- 删除表
- 查看表结构
数据查询
- SELECT 查询
- 条件查询
- 统计查询
数据操作
- 插入数据
- 更新数据
- 删除数据
导入导出
- 导出为 CSV
- 导出为 JSON
- 导出为 SQL
- 从 SQL 导入
备份与恢复
- 备份数据库
- 恢复数据库
使用示例
使用 mysql-manager 列出所有数据库
使用 mysql-manager 查询 users 表的数据
使用 mysql-manager 备份 mydb 数据库
安全注意事项
-
配置文件包含敏感信息,确保权限设置正确
-
生产环境使用只读用户进行查询
-
删除操作前务必确认
-
定期备份重要数据
6.6 创建使用文档
markdown# MySQL Manager Skill 使用指南 ## 安装 1. 创建目录: ```bash mkdir -p ~/.claude/skills/mysql-manager cd ~/.claude/skills/mysql-manager -
安装依赖:
bash
npm install mysql2
- 配置数据库连接:
编辑config.json文件
命令参考
数据库管理
bash
# 列出所有数据库
node mysql-tool.js list-databases
# 列出所有表
node mysql-tool.js list-tables mydb
# 查询数据
node mysql-tool.js select-all mydb users 10
在 Claude Code 中使用
使用 mysql-manager 列出所有数据库
使用 mysql-manager 查询 test 数据库中 users 表的数据
使用 mysql-manager 备份 mydb 数据库
故障排除
连接失败
检查:
-
MySQL 服务是否运行
-
配置文件中的连接信息是否正确
-
防火墙是否允许连接
6.7 测试 Skill
步骤 1:测试连接
bashcd ~/.claude/skills/mysql-manager node mysql-tool.js list-databases
预期输出:
json
[
"information_schema",
"mysql",
"performance_schema",
"test"
]
步骤 2:在 Claude Code 中测试
重启 Claude Code,然后:
使用 mysql-manager 列出所有数据库
步骤 3:测试查询功能
使用 mysql-manager 查询 test 数据库中 users 表的数据
6.8 扩展功能
添加更多命令:
- 创建数据库:
javascript
async function createDatabase(dbName) {
const conn = await createConnection();
await conn.execute(`CREATE DATABASE IF NOT EXISTS \`${dbName}\``);
await conn.end();
return `数据库 ${dbName} 创建成功`;
}
- 导出为 CSV:
javascript
async function exportToCSV(dbName, tableName, outputPath) {
const conn = await createConnection(dbName);
const [rows] = await conn.execute(`SELECT * FROM \`${tableName}\``);
await conn.end();
const headers = Object.keys(rows[0]).join(',');
const csvRows = rows.map(row =>
Object.values(row).map(val =>
typeof val === 'string' ? `"${val}"` : val
).join(',')
);
const csv = [headers, ...csvRows].join('\n');
await fs.writeFile(outputPath, csv, 'utf8');
return `导出成功: ${outputPath}`;
}
- 备份数据库:
javascript
async function backupDatabase(dbName, outputPath) {
const cmd = `mysqldump -u ${config.user} -p${config.password} ${dbName} > "${outputPath}"`;
await execPromise(cmd);
return `备份成功: ${outputPath}`;
}
6.9 实战演练
任务 1:查看数据库列表
使用 mysql-manager 列出所有数据库
任务 2:查询表数据
使用 mysql-manager 查询 test 数据库中 t_user 表的前 10 条数据
任务 3:插入测试数据
使用 mysql-manager 在 test 数据库的 t_user 表中插入 10 条测试数据
任务 4:导出数据
使用 mysql-manager 将 t_user 表导出为 CSV 文件
任务 5:备份数据库
使用 mysql-manager 备份 test 数据库
6.10 总结
通过这个实战案例,你学会了:
- ✅ 如何规划 Skill 的功能
- ✅ 如何创建 Skill 的目录结构
- ✅ 如何编写配置文件
- ✅ 如何实现核心功能
- ✅ 如何编写 SKILL.md
- ✅ 如何测试 Skill
- ✅ 如何扩展功能
关键要点:
- 配置文件分离敏感信息
- 错误处理要完善
- 文档要详细
- 测试要充分
第七章:常见问题与解决方案
7.1 安装相关问题
问题 1:无法添加官方市场
错误信息:
Failed to add marketplace
可能原因:
- 网络连接问题
- 无法访问 GitHub
- 代理设置问题
解决方案:
- 检查网络连接:
bash
ping github.com
- 配置 Git 代理(如果在国内):
bash
git config --global http.proxy http://proxy.example.com:8080
git config --global https.proxy https://proxy.example.com:8080
- 使用 VPN 或代理
问题 2:Skills 安装后不显示
症状:
- 安装成功但 Claude 看不到 skills
- 询问"你有哪些 skills"时没有列出
解决方案:
- 重启 Claude Code(最常见原因):
bash
# 退出
exit
# 重新启动
claude-code
- 检查安装位置:
bash
ls ~/.claude/plugins/cache/
-
重新安装:
/plugin uninstall example-skills
/plugin install example-skills@anthropic-agent-skills
问题 3:依赖安装失败
错误信息:
npm ERR! Cannot find module 'mysql2'
解决方案:
- 进入 skill 目录:
bash
cd ~/.claude/skills/mysql-manager
- 安装依赖:
bash
npm install mysql2
- 如果还是失败,清除缓存:
bash
npm cache clean --force
npm install
7.2 使用相关问题
问题 4:Skill 执行失败
错误信息:
Error: Command failed
排查步骤:
- 检查命令是否正确:
bash
# 手动测试命令
cd ~/.claude/skills/mysql-manager
node mysql-tool.js list-databases
-
查看错误详情 :
Claude 通常会显示详细的错误信息
-
检查权限:
bash
# 确保脚本有执行权限
chmod +x mysql-tool.js
- 检查配置文件:
bash
# 验证 JSON 格式
cat config.json | python -m json.tool
问题 5:Claude 选错了 Skill
症状:
- 你想用 A skill,但 Claude 用了 B skill
解决方案:
-
明确指定 skill:
使用 docx skill 创建文档(而不是"创建文档")
-
提供更详细的描述:
使用 mysql-manager skill 查询数据库
-
检查 SKILL.md 的 description :
确保描述清晰,不会与其他 skills 混淆
问题 6:配置文件找不到
错误信息:
Error: ENOENT: no such file or directory
解决方案:
- 检查文件是否存在:
bash
ls ~/.claude/skills/mysql-manager/config.json
- 检查路径是否正确 :
在脚本中使用绝对路径:
javascript
const configPath = path.join(__dirname, 'config.json');
- 创建配置文件:
bash
cd ~/.claude/skills/mysql-manager
cat > config.json << EOF
{
"host": "localhost",
"port": 3306
}
EOF
7.3 数据库相关问题
问题 7:无法连接数据库
错误信息:
Error: connect ECONNREFUSED
Error: Access denied for user
解决方案:
- 检查 MySQL 服务是否运行:
bash
# Windows
sc query MySQL
# Mac
brew services list | grep mysql
# Linux
systemctl status mysql
- 检查连接信息:
bash
# 测试连接
mysql -h localhost -u root -p
- 检查防火墙:
bash
# Linux
sudo ufw status
# Windows
netsh advfirewall show allprofiles
- 检查用户权限:
sql
-- 在 MySQL 中执行
SHOW GRANTS FOR 'root'@'localhost';
问题 8:备份失败
错误信息:
mysqldump: command not found
解决方案:
- 安装 MySQL 客户端工具:
bash
# Ubuntu/Debian
sudo apt-get install mysql-client
# Mac
brew install mysql-client
# Windows
# 下载 MySQL Installer
-
添加到 PATH(Windows):
将 C:\Program Files\MySQL\MySQL Server 8.0\bin 添加到系统 PATH
-
使用完整路径:
javascript
const mysqldumpPath = 'C:\\Program Files\\MySQL\\MySQL Server 8.0\\bin\\mysqldump.exe';
7.4 性能相关问题
问题 9:查询很慢
症状:
- 查询大表时响应很慢
- Claude 长时间无响应
解决方案:
- 限制查询数量:
javascript
// 默认限制 100 条
async function selectAll(dbName, tableName, limit = 100) {
// ...
}
- 添加索引:
sql
CREATE INDEX idx_name ON users(name);
- 使用分页:
javascript
async function selectPage(dbName, tableName, page, pageSize) {
const offset = (page - 1) * pageSize;
const [rows] = await conn.execute(
`SELECT * FROM \`${tableName}\` LIMIT ? OFFSET ?`,
[pageSize, offset]
);
return rows;
}
问题 10:内存占用过高
症状:
- Node.js 进程占用大量内存
- 系统变慢
解决方案:
- 使用流式处理:
javascript
const stream = conn.query(`SELECT * FROM large_table`).stream();
stream.on('data', (row) => {
// 处理每一行
});
- 及时关闭连接:
javascript
try {
// 操作
} finally {
await conn.end();
}
- 限制连接池大小:
json
{
"connectionLimit": 5
}
7.5 文档相关问题
问题 11:Word 文档创建失败
错误信息:
Cannot find module 'docx'
解决方案:
- 全局安装 docx:
bash
npm install -g docx
- 或在项目中安装:
bash
cd /path/to/project
npm install docx
问题 12:PDF 处理失败
错误信息:
pdftoppm: command not found
解决方案:
- 安装 Poppler:
bash
# Ubuntu/Debian
sudo apt-get install poppler-utils
# Mac
brew install poppler
# Windows
# 下载 Poppler for Windows
7.6 调试技巧
技巧 1:启用详细日志
在脚本中添加日志:
javascript
console.log('开始执行:', command);
console.log('参数:', args);
console.log('配置:', config);
技巧 2:使用调试模式
bash
# Node.js 调试
node --inspect mysql-tool.js list-databases
技巧 3:测试单个功能
bash
# 单独测试每个函数
node -e "require('./mysql-tool.js').listDatabases().then(console.log)"
技巧 4:查看 Claude Code 日志
bash
# 查看日志目录
ls ~/.claude/logs/
# 查看最新日志
tail -f ~/.claude/logs/latest.log
7.7 获取帮助
官方资源
-
Claude Code 文档:
-
Skills 仓库:
-
问题反馈:
社区资源
- Discord 社区
- Stack Overflow(标签:claude-code)
- GitHub Discussions
寻求帮助的技巧
提问时提供:
- 完整的错误信息
- 你的操作步骤
- 系统环境信息
- 相关的配置文件(去除敏感信息)
好的提问示例:
问题:mysql-manager skill 无法连接数据库
环境:
- OS: Windows 10
- Node.js: v20.9.0
- MySQL: 8.0.35
错误信息:
Error: connect ECONNREFUSED 127.0.0.1:3306
已尝试:
1. 确认 MySQL 服务正在运行
2. 可以用 mysql 命令行连接
3. 配置文件中的信息正确
配置文件(已去除密码):
{
"host": "localhost",
"port": 3306,
"user": "root"
}
附录:完整命令参考
A. Claude Code 基本命令
bash
# 启动 Claude Code
claude-code
# 查看版本
claude --version
# 查看帮助
claude --help
# 退出
exit
B. Plugin 管理命令
bash
# 添加市场
/plugin marketplace add anthropics/skills
# 浏览插件
/plugin browse
# 安装插件
/plugin install example-skills@anthropic-agent-skills
/plugin install document-skills@anthropic-agent-skills
# 卸载插件
/plugin uninstall example-skills
# 列出已安装插件
/plugin list
C. 文件操作命令
Windows
bash
# 查看目录
dir %USERPROFILE%\.claude
# 进入目录
cd %USERPROFILE%\.claude\skills
# 创建目录
mkdir my-skill
# 删除目录
rmdir /s my-skill
# 查看文件内容
type config.json
# 编辑文件
notepad config.json
Mac/Linux
bash
# 查看目录
ls -la ~/.claude
# 进入目录
cd ~/.claude/skills
# 创建目录
mkdir -p my-skill
# 删除目录
rm -rf my-skill
# 查看文件内容
cat config.json
# 编辑文件
nano config.json
# 或
vim config.json
D. Node.js 命令
bash
# 初始化项目
npm init -y
# 安装依赖
npm install mysql2
npm install docx
# 全局安装
npm install -g docx
# 查看已安装包
npm list
# 运行脚本
node script.js
# 调试模式
node --inspect script.js
E. Git 命令
bash
# 克隆仓库
git clone https://github.com/anthropics/skills.git
# 查看状态
git status
# 拉取更新
git pull
# 查看日志
git log --oneline -10
F. MySQL 命令
bash
# 连接数据库
mysql -h localhost -u root -p
# 导出数据库
mysqldump -u root -p mydb > backup.sql
# 导入数据库
mysql -u root -p mydb < backup.sql
# 查看进程
mysqladmin -u root -p processlist
G. 常用 Skill 命令模板
MySQL Manager
bash
# 列出数据库
node mysql-tool.js list-databases
# 列出表
node mysql-tool.js list-tables mydb
# 查询数据
node mysql-tool.js select-all mydb users 10
# 导出 CSV
node mysql-tool.js export-csv mydb users output.csv
# 备份
node mysql-tool.js backup mydb backup.sql
文件统计
bash
# 统计当前目录
node file-stats.js .
# 统计指定目录
node file-stats.js /path/to/directory
附录 B:配置文件模板
1. SKILL.md 模板
markdown
---
name: skill-name
description: 详细描述这个 skill 的功能和使用场景
---
# Skill Name
简短的介绍。
## 功能
- 功能 1
- 功能 2
- 功能 3
## 使用方法
详细的使用说明...
## 示例
使用 skill-name 做某事
## 配置
如果需要配置,在这里说明。
## 依赖
列出所需的依赖。
## 注意事项
重要的注意事项。
2. config.json 模板
json
{
"host": "localhost",
"port": 3306,
"user": "username",
"password": "password",
"database": "dbname",
"options": {
"key": "value"
}
}
3. package.json 模板
json
{
"name": "skill-name",
"version": "1.0.0",
"description": "Skill description",
"main": "index.js",
"scripts": {
"test": "node test.js"
},
"dependencies": {
"mysql2": "^3.0.0"
},
"author": "Your Name",
"license": "MIT"
}
4. README.md 模板
markdown
# Skill Name
简短描述。
## 安装
```bash
cd ~/.claude/skills/skill-name
npm install
配置
编辑 config.json:
json
{
"key": "value"
}
使用
命令行
bash
node tool.js command
Claude Code
使用 skill-name 做某事
命令参考
| 命令 | 说明 | 示例 |
|---|---|---|
| command1 | 说明 | node tool.js command1 |
| command2 | 说明 | node tool.js command2 |