前几天朋友问我:"你整天对着黑乎乎的终端窗口,不无聊吗?"
我想了想,好像还真不无聊。终端对我来说,大概就像厨房对于一个爱做饭的人——外人看着烟熏火燎,但自己待在里面,反而觉得踏实。
今天就随便聊聊我每天都在用的几个命令,不算教程,更像是一个老朋友的分享。

htop:系统的心电图
如果只让我推荐一个命令,那一定是 htop。
top 当然也能看进程,但 htop 用起来舒服太多了。彩色输出、鼠标支持、按 F3 搜索进程、F9 一键 kill……这些细节堆在一起,就是"能用"和"好用"的区别。
我有时候什么都不干,就开着 htop 看那些彩色的进度条跳来跳去。CPU 突然飙高的时候,一眼就能看出哪个进程在搞事情。VPS 内存快满了,也是 htop 先告诉我。
它像一个靠谱的老中医,不用你说哪里不舒服,搭个脉就全知道了。
rsync:被低估的搬运工
备份文件这件事,scp 当然能做,但 rsync 才是那个对的选择。
它的聪明之处在于——只传差异。一个 2GB 的数据库 dump,改了几行数据,rsync 只会把变化的那几 KB 同步过去。这在带宽有限的 VPS 上特别实用。
最常用的姿势:
rsync -avz --progress /local/path/ user@remote:/backup/path/
-a 保留权限和时间戳,-v 让你看到它在干什么,-z 压缩传输,--progress 给个进度条——这几个参数我打了不知道几百遍了,肌肉记忆已经刻进了手指。
我的博客数据库备份、照片同步、配置文件分发,全部靠 rsync。它从不说话,但从来没掉过链子。

jq:让 JSON 变回人话
搞 Web 开发或者调 API 的朋友都知道,JSON 返回的那一大坨数据,直接看能把眼看瞎。
这时候 jq 就是救星。
curl -s https://api.example.com/data | jq '.items[] | {.name, .price}'
一行就能把嵌套五层的 JSON 拍平,只取你关心的字段。它还有自己的查询语法,支持过滤、排序、聚合,基本上就是命令行的迷你数据处理引擎。
我第一次用 jq 的时候,感觉就像近视多年突然戴上了眼镜——世界原来可以这么清晰。
fzf:模糊搜索的快感
最后一个压轴的,是 fzf。
它的核心功能很简单——模糊搜索。但配合各种命令用起来,体验是质的飞跃。
Ctrl+R 搜索历史命令,打几个字母就定位到三个月前那条复杂的 docker-compose 命令;Ctrl+T 在当前目录模糊搜文件,比 find 快一个数量级;甚至可以和 vim 集成,打开文件时的体验像 VS Code 的 Ctrl+P。
我装完新机器的第一件事,就是 apt install fzf,然后配好快捷键。没了它,总感觉终端少了点什么。

写在最后
这些工具都不是什么新鲜东西。htop 出来十几年了,rsync 更是上古时代的产物。但它们有一个共同点:把一件事做好,然后不去打扰你。
没有弹窗,没有广告,没有"升级会员解锁更多功能"。你敲一行命令,它干一件事,干完闭嘴。这种安静,在今天的软件世界里越来越稀缺了。
如果你也是那种喜欢在终端里消磨时间的人,不妨试试这几个。也许它们也能让你的命令行,多一点点烟火气。

