原文写的是 12 个,这次又补了三个:ripgrep 14、fd、dust,凑到 15 个。Windows 上大部分用 scoop 装,一条 scoop install ripgrep fd dust 就完事,个别需要去 releases 页面手动下载。下面每个一句话,都是我真的天天在用的。
- ripgrep(rg):搜文件内容,比 grep 快太多,默认就跳过 .gitignore 里的东西,基本是我找代码里的关键字首选。
- fd:找文件名,比 find 好记,彩色输出还自带正则,平时
fd 配置文件一下就出来。 - dust:看磁盘占用,是 du 的替代品,一眼看清哪个目录最占地方,比
du -h直观。 - bat:带语法高亮的 cat,看单个文件内容很舒服,我把它设成了 cat 的别名。
- fzf:模糊查找,配合 rg 能在终端里交互式地搜文件,装了之后回不去了。
- jq:处理 JSON,curl 出来的接口返回直接
| jq格式化,调接口时离不开。 - htop:看进程和内存占用,比 top 好看也好操作,定位内存涨了是哪个进程就靠它。
- ncdu:交互式看目录大小,删东西前先跑一遍,避免误删大目录。
- zoxide:智能 cd,去过的目录直接
z 项目名跳转,不用敲一长串路径。 - eza:ls 的替代品,默认就显示 git 状态和图标,目录列表一眼清爽。
- delta:git diff 的高亮查看器,差异对比清楚很多,配置进 git 后就一直用着。
- tree:打印目录树,写文档或给别人讲结构时截图用,老工具但一直没被替代。
- watch:周期性执行命令,比如
watch -n 1 rg 某关键字,盯日志变化很方便。 - tmux:终端分屏和会话保持,远程连服务器时断了能恢复,我现在离不开。
- git-delta / lazygit:lazygit 是终端里的 Git 图形界面,提交、看差异、解决冲突都在一个界面搞定,比敲一堆 git 子命令省心。
我也不是一开始就集齐这 15 个。最早只有 rg 和 bat,是因为有次在几十万行日志里找一个报错栈找了半小时才去学的。之后每遇到一个重复、机械、费手的操作,就去搜「有没有命令行工具能替我干这个」,慢慢攒到现在。所以与其照单全收,不如从你每天最烦的那一步开始换工具。
补一句:这些工具大多有 Windows 版,但 Windows 的默认终端不好用,我是装了 Windows Terminal 之后才真正用顺的。个别像 lazygit 我更习惯在 WSL 里跑。版本方面我一般不追最新,scoop 提示有更新我再升,避免新版本改了行为把我脚本搞挂。至于「该装哪些」,我觉得先把 rg、fd、bat、fzf 这四个装上,剩下的等真遇到痛点再补,别一上来就把全家桶装齐。如果只能推荐一个,我会说先装 rg,它带来的提升最直观。rg 之外,fd 是我第二个离不开的,找文件名比 rg 更轻,日常用得比 rg 还频繁,两者基本是我打开终端必用的前两个。工具列表不在长,在于你真用得顺手,这份清单我每隔半年会清一遍,把半年没打开过的划掉,免得变成摆设。
最后说个真事:有次同事看我终端里 rg 一下就定位到问题,问我装的什么「神器」,我说是 ripgrep,他回去装了却说「没感觉」。后来才发现他是直接双击打开的 exe,没在终端环境里用,管道和快捷键全没用上。所以这些工具的价值一半在工具本身,一半在你愿意待在终端里——这点比工具清单本身重要,也是我写了这么多只想强调的一件事。