程序员效率工具 命令行 2025
现代 CLI 四件套:fd + ripgrep + fzf + bat 完全指南
现代 CLI 四件套把 find、grep、cat 和文件选择体验重新做了一遍,适合每天在大代码库里搜索、预览和跳转。
四件套分别解决什么问题
fd 替代 find,负责更符合直觉的文件名搜索;ripgrep 替代 grep,负责高速内容搜索;fzf 提供交互式模糊选择;bat 替代 cat,提供语法高亮、行号和 Git 变更标记。
这四个工具单独使用已经高效,真正的价值在于组合。rg 找包含目标函数的文件,fzf 做交互选择,bat 预览上下文,最后 xargs 交给编辑器打开,整个过程不需要离开终端。
brew install fd ripgrep fzf bat
# Ubuntu/Debian 可使用 apt install fd-find ripgrep fzf batfd:更好用的文件搜索
传统 find 强大但语法重,fd 默认递归、默认彩色输出、默认遵守 .gitignore。搜索 TypeScript 文件可以写 fd -e ts,而不是写一长串 find 条件。
fd 对项目目录尤其友好。它不会默认钻进 node_modules、dist、.git 这些噪音目录,搜索结果更接近程序员想看到的文件集合。
fd config
fd -e ts src/
fd -t d components
fd -H .envripgrep:大项目里的内容搜索
ripgrep 用 Rust 编写,默认并行遍历目录并遵守 .gitignore。查找 useState、TODO、错误码或函数名时,rg 往往比传统 grep 更快,也更少出现无关结果。
建议把 rg 当作日常搜索入口,而不是只在想起时使用。内容搜索一旦足够快,程序员会更愿意在动手改代码前先理解项目。
rg "TODO"
rg -i "error" logs/
rg "function\\s+\\w+" -t js
rg -l "console.log"fzf:让任何输出都变成可选择界面
fzf 的核心思想很简单:任何命令输出都可以通过管道交给它过滤。文件列表、Git 提交、进程列表、历史命令、端口信息,都能变成可搜索可选择的界面。
当 fzf 和 bat 配合时,终端会有接近图形文件选择器的体验,但速度仍然保持命令行级别。页面下方的 fzf 管道生成器可以直接拼出常见组合。
fzf 管道命令生成器
选择输入来源、预览方式和输出动作,生成常用 fzf 工作流。
继续阅读
参考资料
- awesome-cli-apps - GitHub
- fzf - A command-line fuzzy finder - GitHub
- 13 CLI Tools Every Developer Should Master in 2025 - HostZealot
- CLI Essentials: fd, rg, fzf, bat - Medium