文章目录
- modern-unix:用现代工具替换那些老旧的 Unix 命令
modern-unix:用现代工具替换那些老旧的 Unix 命令
在终端里敲了这么多年命令,cat、ls、grep、find这些工具一直都在,能用,但体验谈不上好。modern-unix 这个仓库收集了一批现代替代品,GitHub 上拿到了 32,939 个 Star。
这些工具不是从零造轮子,大多用 Rust 写的,针对原版的痛点做了改进。下面挑几个有代表性的说说。
文件查看:bat 替代 cat
bat是cat的替代品,加了语法高亮和 Git 集成。查看代码文件的时候不用再单独开编辑器,终端里直接就能看到带颜色高亮的内容,还能显示行号和 Git 变更标记。
目录列表:eza 和 lsd 替代 ls
ls命令的输出信息比较朴素。eza继承自exa,支持颜色分类、Git 状态显示、树形结构等特性。lsd功能类似,保持了和ls的向后兼容,切换成本低。
搜索:ripgrep 替代 grep,fd 替代 find
ripgrep搜索速度比grep快很多,而且自动遵守.gitignore规则,不会把无关文件混进搜索结果。fd是find的替代品,语法更直觉,默认忽略隐藏文件和 gitignore 里的文件。
差异查看:delta 替代 diff
delta对git diff的输出做了格式优化,支持语法高亮、行号显示、并排对比,看代码变更比默认的 diff 输出清楚得多。
磁盘和系统监控:dust、duf、bottom、glances
duf替代df,用表格形式展示磁盘使用情况,比df的输出易读。dust替代duf(不是上面那个duf,是 GNU 的du),用可视化的方式展示目录占用空间。bottom和glances是系统监控工具,替代top/htop,提供了更丰富的终端图形界面。
其他实用工具
fzf是模糊搜索工具,能用在各种场景里,命令历史、文件选择、进程查找都能用上。zoxide替代cd,会根据使用频率智能跳转目录。jq处理 JSON 数据,相当于 JSON 版的sed。sd替代sed做文本替换,语法更直觉。hyperfine是命令行基准测试工具,能量化对比不同命令的执行效率。lazygit把常用 Git 操作做成了终端交互界面,不用记那么多命令参数。
这些工具各自独立安装,不需要一次性全换。根据自己日常用到的命令,挑几个装上试试,用习惯了再逐步替换。大部分工具都能通过包管理器直接安装,比如brew install bat或apt install ripgrep。
stall bat或apt install ripgrep`。