关于 cli-power-tools
cli-power-tools 是一项命令行操作技能,介绍如何使用搜索、文件、结构化数据和 HTTP 工具。适用于代码库分析、数据转换及相关终端工作流。
主要功能
- 01用 rg 和 fd 搜索文本与文件
- 02用 bat 和 eza 查看文件
- 03用 jq 和 yq 转换 JSON 与 YAML
- 04用 Nushell 构建结构化数据管道
- 05用 xh 发送 HTTP 请求
适用场景
- 01在代码库中搜索并追踪代码
- 02批量重构匹配模式的文件
- 03转换 JSON 或 YAML 数据
- 04调试 API 并解析日志
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ oakoss/ agent-skills --skill cli-power-tools安装后在 Claude Code 中输入/cli-power-tools确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/advanced-regex-and-jq.mdmodern-unix-toolbox.mdnushell-structured-data.md详细介绍
Utility Pro
概述
精通命令行环境,将原始文本和非结构化数据转化为可执行的洞察。结合 Rust 驱动的搜索工具(ripgrep、fd、bat)、结构化数据 Shell(Nushell)、JSON 操作工具(jq/yq)和现代 HTTP 客户端(xh),打造高性能的 CLI 工作流。
核心理念: 使用能够理解数据结构的专用工具,取代旧式文本解析管道(grep/awk/sed 链)。ripgrep 能理解 gitignore 规则,fd 能识别文件类型,jq 能处理 JSON,Nushell 能理解表格。
适用场景: 全代码库搜索与分析、多文件重构、JSON/YAML 转换管道、API 调试、目录导航、日志解析、磁盘使用情况审计、依赖追踪。
不适用场景: 基于 GUI 的任务、复杂的应用逻辑(应改为编写脚本)、需要交互式提示的任务。
快速参考
| 模式 | 工具 / 命令 | 要点 |
|---|---|---|
| 文本搜索 | rg "pattern" -g "*.tsx" | 比 grep 快 10-100 倍,并遵循 .gitignore |
| 文件搜索 | fd -e pdf or fd "pattern" | find 的快速替代方案,默认设置更智能 |
| 语法高亮读取 | bat file.ts | 支持语法高亮和 git 集成的 Cat |
| 目录跳转 | z project-name | 记住经常访问的目录 |
| 模糊搜索 | fzf or CTRL-T / CTRL-R | 交互式选择文件和历史记录 |
| 树形视图 | eza --tree --level=2 | 支持树形视图、元数据丰富的 ls 替代工具 |
| JSON 查询 | jq '.items[] | select(.active)' | 为 JSON 提供完整的函数式编程能力 |
| YAML 查询 | yq '.config.database' file.yml | 类似 jq 的 YAML 文件语法 |
| HTTP 请求 | xh POST api.example.com/v1/data key=value | 彩色显示、易于使用的 HTTP 客户端 |
| 多文件重构 | fd -e tsx -x sed -i 's/Old/New/g' {} | 查找文件后执行转换 |
| 结构化 Shell | ls | where size > 1mb | sort-by size | 使用 Nushell 表格,而非解析文本 |
| 日志解析 | rg "ERROR" --json | jq 'select(.type == "match") | .data.lines.text' | 将 ripgrep JSON 输出与 jq 筛选器结合使用 |
| 带搜索的文件预览 | fzf --preview 'bat --color=always {}' | 浏览文件并查看语法高亮预览 |
| 查找最近更改的文件 | fd --changed-within 1h | 查找在指定时间范围内修改的文件 |
| 按文件统计导出数量 | rg -c "pattern" -g "*.ts" | sort -t: -k2 -rn | 统计每个文件中的匹配项,并按频次排序 |
| JSON 格式转换 | yq -o json config.yml | 在 YAML、JSON、CSV 和其他格式之间转换 |
| 高级正则搜索 | rg -P "(?<=function\s)\w+" --only-matching | 使用 PCRE2 匹配前瞻 / 后顾模式 |
| 感知 Git 的文件列表 | eza -la --git --icons | 显示文件元数据和内联 Git 状态 |
工具概览
| 类别 | 现代工具 | 替代工具 | 主要优势 |
|---|---|---|---|
| 文本搜索 | ripgrep (rg) | grep、ag、git grep | 速度快、识别 .gitignore、支持 Unicode |
| 文件搜索 | fd | find | 默认设置智能、支持正则表达式、并行处理 |
| 文件查看器 | bat | cat、less | 语法高亮、Git 差异标记 |
| 目录跳转 | zoxide (z) | cd、autojump | 基于访问频率的排序、可回退到 fzf |
| 模糊查找器 | fzf | 手动管道传递 | 可用于任意列表的通用选择器 |
| 文件列表 | eza | ls、tree | 树形视图、Git 状态、图标 |
| JSON 处理 | jq | awk、Python 单行命令 | 类型化、函数式 JSON 转换 |
| YAML 处理 | yq | 用 sed 处理 YAML | 适用于 YAML 的 jq 兼容语法 |
| HTTP 客户端 | xh | curl、httpie | HTTPie 语法、Rust 速度、单个二进制文件 |
| 结构化 Shell | Nushell | bash + awk/sed | 类型化表格、原生格式转换 |
常见错误
| 错误 | 正确做法 |
|---|---|
在代码库搜索中使用 grep 而不是 ripgrep | 使用 rg,速度快 10–100 倍,且默认遵循 .gitignore |
将 ls 的输出传递给 grep 来筛选文件 | 使用 fd 查找文件,或使用 eza -D / eza --ignore-glob 列出文件 |
编写复杂的 awk 脚本处理结构化数据 | 使用原生支持 JSON、CSV 和 YAML 的 Nushell 或 jq |
在脚本中运行 rm -rf,却不先执行试运行 | 执行破坏性操作前,务必先添加验证或试运行步骤 |
| 在不需要时使用正则表达式捕获组 | 优先使用非捕获组 (?:...),以提升大规模扫描的性能 |
搜索 node_modules 或 .git 目录 | 使用默认跳过这些目录的 rg,或明确配置排除项 |
在 rg --json 中忘记使用 select(.type == "match") | ripgrep JSON 会输出 begin、match、context、end 和 summary 消息类型 |
使用 curl 的冗长标志语法 | 使用 xh,它提供彩色输出和兼容 HTTPie 的请求项语法 |
使用 cut/tr 在工具之间解析文本输出 | 使用 Nushell 管道,在每个阶段保留结构化数据 |
在正则表达式开头使用 .* 锚定 | 尽可能使用 ^ 锚定;未锚定的 .* 会导致昂贵的回溯 |
安装
所有工具均可通过常见的包管理器获取。大多数工具都是静态链接的单文件二进制程序。
| 工具 | macOS(Homebrew) | Linux(apt/cargo) |
|---|---|---|
| ripgrep | brew install ripgrep | apt install ripgrep 或 cargo install ripgrep |
| fd | brew install fd | apt install fd-find 或 cargo install fd-find |
| bat | brew install bat | apt install bat 或 cargo install bat |
| zoxide | brew install zoxide | cargo install zoxide |
| fzf | brew install fzf | apt install fzf |
| eza | brew install eza | cargo install eza |
| jq | brew install jq | apt install jq |
| yq | brew install yq | snap install yq 或 go install |
| xh | brew install xh | cargo install xh |
| Nushell | brew install nushell | cargo install nu |
Shell 集成(安装后添加到 Shell 配置中):
| 工具 | 所需的 Shell 集成 |
|---|---|
| zoxide | eval "$(zoxide init zsh)"(或使用 bash/fish 对应命令) |
| fzf | 从 fzf 安装目录中引入按键绑定和补全脚本 |
委派
- 大规模代码库搜索与分析:使用
ExploreAgent 运行 ripgrep 查询、追踪依赖项并梳理代码模式 - 多文件重构工作流:使用
TaskAgent 协调整个项目中的 fd、sed 和验证步骤 - 数据转换的流水线架构:使用
PlanAgent 设计结合 jq、Nushell 和 API 工具的结构化流水线
参考资料
- 现代 Unix 工具箱 -- ripgrep、fd、bat、zoxide、fzf、eza、终端设置
- 高级正则表达式和 jq -- 命名捕获组、前瞻/后顾、jq 过滤器、集成流水线
- Nushell 结构化数据 -- 表格范式、API 交互、脚本编写、Unix 互操作
评论
支持 Markdown