引言
做了这么多年开发,我一直在打磨自己的终端工作流。一个好的命令行工具可以帮你节省大量重复性操作的时间。这篇文章分享我最常用的 10 个工具,每个都附有实际使用场景和配置建议。
这些工具都是跨平台的(Linux/macOS/Windows via WSL),唯一的要求是你已经习惯了终端操作。
1. fd — 比 find 快 10 倍的文件搜索
fd 是 find 命令的现代替代品。它默认使用正则表达式,自动忽略 .gitignore 中的文件,并且输出带颜色。
# 搜索所有 markdown 文件
fd .md
# 在特定目录中搜索
fd pattern /path/to/search
# 搜索特定扩展名
fd -e py -e js
# 执行命令
fd -e jpg -x convert {} {.}.png
2. ripgrep (rg) — 史上最快的代码搜索
如果你还在用 grep -r,是时候换 rg 了。它默认递归搜索、自动跳过 .gitignore 文件、支持正则表达式,而且速度极快。
# 搜索关键字,显示行号
rg "TODO|FIXME"
# 只搜索 .ts 文件
rg -t ts "import.*from"
# 显示上下文
rg -C 3 "func main"
# 只显示文件列表
rg -l "pattern"
3. bat — 带语法高亮的 cat
bat 是 cat 的增强版。它内置语法高亮、显示行号、支持 Git 变更标记,并且可以与管道无缝协作。
# 查看文件(自动检测语言)
bat config.json
# 显示所有语言列表
bat --list-languages
# 作为 cat 使用(不带动画)
bat --plain file.txt
# 与 less 配合
bat file.go | less -RF
4. zoxide — 智能目录跳转
zoxide 学习你的目录访问模式,让你用最短的次数跳转到最常去的目录。
# 跳转到匹配的目录
z blog
# 等价于 cd ~/projects/my-blog
# 交互式选择(需要 fzf)
zi
# 列出高频目录
zoxide query -l
5. fzf — 通用模糊搜索
fzf 是一个通用命令行模糊查找器。它可以与任何列表形式的数据配合使用。
# 交互式文件搜索(替代 Ctrl+R)
vim **<TAB>
# Git 分支快速切换
git branch | fzf | xargs git checkout
# 杀进程
ps aux | fzf | awk '{print $2}' | xargs kill
6. lazygit — 终端 Git 客户端
如果你觉得命令行 Git 太繁琐,但又不想用 GUI,lazygit 是完美的中间方案。它在终端中提供了直观的 TUI 界面。
个人体验:用了 lazygit 之后,git add / git commit / git rebase 等操作效率提升了至少 3 倍。
7. tldr — 更友好的 man 手册
tldr 为常用命令提供简洁的示例说明,而不是冗长的 man page。
# 查看 tar 的常见用法
tldr tar
# 输出示例:
# tar
# 归档工具。
# - 创建归档: tar cf target.tar file1 file2 file3
# - 解压归档: tar xf source.tar
# - 创建 gzip: tar czf target.tar.gz file1 file2
8. httpie — 更人性化的 curl
httpie 让 HTTP 请求的发送和响应查看变得直观。
# GET 请求
http https://api.github.com
# POST JSON
http POST https://api.example.com/users name=John email=john@example.com
# 带认证头
http GET https://api.example.com/protected Authorization:"Bearer token123"
9. jq — JSON 命令行处理器
如果你经常处理 JSON 数据,jq 是必不可少的工具。
# 格式化 JSON
cat data.json | jq '.'
# 提取特定字段
jq '.name' data.json
# 复杂查询
curl -s https://api.github.com/repos/jqlang/jq/commits | \
jq '[.[] | {sha: .sha[0:7], author: .commit.author.name}]'
10. duf / ncdu — 磁盘空间分析
duf 提供磁盘使用率的概览视图,而 ncdu 则进入交互式模式让你逐层探索磁盘占用。
# duf - 概览所有挂载点
duf
# ncdu - 交互式浏览
ncdu /home
快速安装指南
| 工具 | brew (macOS) | apt (Debian) | 其他方式 |
|---|---|---|---|
| fd | brew install fd |
apt install fd-find |
GitHub Release |
| ripgrep | brew install ripgrep |
apt install ripgrep |
cargo install |
| bat | brew install bat |
apt install bat |
GitHub Release |
| zoxide | brew install zoxide |
apt install zoxide |
curl 安装 |
| fzf | brew install fzf |
apt install fzf |
Git 克隆 |
| lazygit | brew install lazygit |
— | go install |
总结
这 10 个工具基本覆盖了日常开发中文件搜索、代码搜索、文件查看、目录导航、模糊搜索、Git 操作、文档查询、API 调试、JSON 处理和磁盘管理等高频场景。给它们一周的适应时间,你很快就会发现自己再也回不去了。