这些相见恨晚的命令行工具,你用过几个?
不管你是一个程序猿,亦或是一个运维人员,工作中的很多时间都会跟命令行工具打交道。下面介绍一下我在工作中常用的几个非常好用的命令行工具,废话少说,直接上干货!
1. tldr
是Too long,Don't read首字母缩写,它是简化版的man pages查看工具。有些命令长时间不使用时有生疏,通常情况下,这些命令常用的使用场景和高频使用参数固定那么几个。这个时候,我们当然可以使用命令进行查阅,但更多的时候,我们使用tldr命令就够了。如下图所示,图片左半部分是指令查询到的指令使用说明,太长不想读,除非你是想详细了解下命令的使用;右半部分是命令给出的使用说明,内容一目了然,十分清爽。该命令的安装也很简单,一行命令搞定,开箱即用。

2. fish shell
毋庸置疑,shell是使用最频繁也最重要的工具。颜值即正义。目前我正使用的就是。它是一个非常优秀的终端shell。拥有很多开箱即用的功能,比如:语法自动推荐和补全、语法高亮,基于网页进行可视化配置,修改主题、命令提示符等。

fish shell非常适合初学者,因为我们几乎无需进行任何复杂的设置即可安装使用。但它有一个缺点,由于它使用的脚本语法与其他Shell有所差异,因此通常用户不能把拷贝自网上的脚本直接粘贴使用。你必须将不兼容的命令更改为合法的脚本,或者启动一个Bash会话以运行Bash脚本。即便如此,我还是强烈推荐去使用它。如果你是一个爱折腾星人,自己添加相关插件来扩展Fish Shell的功能折腾去吧,三个插件管理工具推荐给大家, , , 以及 。
3. pyenv, nodenv 以及 rbenv
可以轻松实现Python版本的切换。官方网站有详细的使用教程。或者你可以直接使用前面提到的来查阅常用命令。

不同的项目Python版本以及开发环境会有差异,Python的版本管理相对复杂,如果你不小心的话,很容易弄乱配置关系。该工具可以十分优雅地解决上面的问题,它可以全局或“按项目文件夹”切换Python版本,而且每个版本都是相互隔离的。
对了,有一个名为 的工具,它可以将,,及其他env进行统一管理。它提供了的版本管理,如果你也有版本管理的需求,一定记得尝试使用一下。
4. htop
是的升级版。工具是非常基础的监控工具,提供的功能有限,因此很多人转去使用。比起,优势很明显——除了功能更加完善以外,它的色彩搭配也很丰富,整体上使用起来更加友好。PS:还有常用的用于监控IO和网络的以及工具,感兴趣的朋友可以试一下。

5. glances
展示的信息比 更加全面。它是一个跨平台的监控工具,除了支持命令行使用以外,它还提供API接口,Web UI以及支持各种数据导出格式,因此你可以将系统监控提高到一个新档次。因此我在这里强烈推荐一波!

6. fzf
—

7. axel
使用了多线程加速下载文件,并且还可以平衡不同服务器之间的负载。它支持HTTP,HTTPS,FTP和FTPS协议,下载大型文件时可以替代、。

8. jq
可以在终端中将json数据处理以及格式化显示,支持高亮,可以替代。

9. fd
类似于系统自带的 命令,但使用起来更简单,查找速度更快,并且具有良好的默认设置。它的输出颜色配置很漂亮,简直是颜值党的福音,而且根据,它的执行速度甚至比的还要快。

不管你想找到一个名为“target”的文件,但是不确定文件的扩展名,还是查找一个存放所有target的目录,而不单是一个文件。你可以撸起袖子,开始为find命令编写那些复杂的正则表达式,也可以直接命令行运行 。反正对我来说,当然选择最简单的那个啦。
默认情况下,会忽略隐藏的以及在列出的文件和目录。大多数时候,这是比较合理的。但是在极少数特殊情况下需要禁用此功能,我会给该命令设置一个别名: ,这样一来就方便多了。
10. multitail
是个用来实现同时监控多个文档、类似tail命令的功能的终端工具。它与tail的最大区别就是它会在控制台中打开多个窗口,这样使同时监控多个日志文档成为可能。

11. bat
类似于在终端中常用的用于显示文件内容的命令,但是效果更佳。它增加了语法高亮显示,git gutter标记(如果适用),自动分页(如果文件很大)等功能,并且使得输出的内容阅读起来更加友好。

12. ctop 和 lazydocker
当你使用Docker并对其监控时,这两个工具会很有帮助。使用了Docker容器的顶级接口。它可以为你:
展示正在运行和已停止的容器列表。
展示统计信息,例如内存、CPU使用率以及针对每个容器的其他详细信息窗口(例如绑定的端口等其他信息)。
提供快捷菜单,方便快速停止、杀掉指定容器进程或显示给定容器的日志。

ctop的实时监控示例
这比你尝试从命令中找出所有这些信息要方便多了。但是,才是我最喜欢的Docker工具。

lazydocker的实时监控示例
如果你认为很酷,请你尝试使用后再做决定!它是一个非常成熟的拥有终端UI界面的工具,提供了非常丰富的功能用于管理Docker,非常值得各位去体验。
以上就是我要推荐的几个比较使用的终端工具,如果有新的推荐,我会实时更新。