前几天看到给你的终端加点料 —— 自定义欢迎语,就心血来潮也想分享一下自己在terminal里常用的7个shell工具。这里就沿用「给你的终端加点料」这个题目啦(已取得原作者Xavier Wang同意)。下面分享的工具都可以通过Git clone或者Pacman,Homebrew,npm,pip等包管理工具直接安装,这里就不赘述各种安装指令了。

> Prezto:好用的zsh配置框架

Z shell(zsh)是一个常用的bash(一般系统的默认shell)替代品。zsh有很多插件,所以大家开发了很多配置框架用来方便安装和配置zsh的各种插件,如AntiGen,Oh-my-zsh,zplug等等。
我一直使用的zsh配置框架是Prezto,相比常用的Oh-my-zsh,Prezto相对轻量级,通过改动.zpreztorc能够非常简单地更换各种shell主题,实现命令行补全,在shell里使用vi和emacs的keybinding等等。这其中我最喜欢的就是shell里的vi keybinding啦。
Prezto里的vi keybinding
此外,Prezto还支持各种自定义module,例如下文所提及的Powerlevel10k主题和Enhancd替换cd命令都可以在.zpreztorc里加一行载入相关module的命令实现。
因为Prezto的方便好用,它已经成为我新系统必装的工具之一,.zpreztorc也常驻在.dotfile里啦。

> Powerlevel10k:随心定制的shell主题

Powerlevel10k是经典的zsh主题Powerlevel9k的一个fork,相比Powerlevel9k,它提升了性能,更新也更加及时。相比于一般的shell主题提供的固定格式,Powerlevel10k可以定制包括前缀,后缀,目录格式,形状等等各种shell元素,

Powerlevel10k的各种可用元素(来自:https://github.com/romkatv/powerlevel10k

而且通过一个简单的wizard就可以方便地拼装出自己喜欢的shell主题。

Powerlevel10k configuration wizard(来自https://github.com/romkatv/powerlevel10k

甚至还可以用Powerlevel10k复刻其它的主题😂。

用Powerlevel10k复刻各种主题(来自https://github.com/romkatv/powerlevel10k

Powerlevel10k也可以说是一款用了就回不去了的工具,赶紧来试试定制属于你自己的主题吧!

> xxxsay:不一样的cowsay

给你的终端加点料 —— 自定义欢迎语里教给了大家如何定义各式的欢迎语。这里就介绍另一种定制好玩的欢迎语的方法。

Cowsay是一个经典的linux小工具,原版可以在shell里输出一只说话的牛,可以说也是linux世界一个经典的搞怪小玩意了。

Cowsay(来自Wikimedia)

这个小工具当然也就燃起了大家的创作之魂,这里就提供了上千个不同的.cow file,调用你喜欢的哪一个就能制作一个别具一格的欢迎语。如果还没有你想要的,也可以在这里自己定制图案。

川建国镇楼

对于广大的二次元小伙伴们可能更喜欢Pokemonsay

我自己使用的是Parrotsay配合fortune命令生成随机的欢迎语。
fortune配合parrotsay(来自https://github.com/matheuss/parrotsay

Form follows function

上面这几个小工具帮我们搞定了外观形式,而下面这几个负责的就是各种好用的功能啦。

> Enhancd:增强版cd

不知大家有没有遇到过这种情况,用cd命令进入某个目录之后,想要跳转到之前访问过的目录,或者各种常用的目录?要做到这么一个简单的动作却往往要cd到很长的目录名里,即使有了自动补全也还是很繁琐。现在这个增强版cd,Enhancd就能帮你搞定各种文件的跳转。
通过调用fzf,fzy,peco等模糊搜索和过滤工具,Enhancd能帮你做到:
  • 跳转到之前访问过的目录
  • 通过部分匹配过滤目录名
  • 兼容原有cd命令
等等各种增强功能。
有了它,妈妈再也不用担心我迷失在茫茫文件海了!

> lsd:豪华版ls

替换了cd命令,我们现在要对ls下手了!lsd堪称豪华版ls,它能将各种文件和目录根据文件类型,访问权限等等渲染成不同颜色,还增加了各种文件类型的图标,配合prezto提供的各种自动补全和Enhancd的方便跳转,在shell里的文件操作方便程度堪比各种文件管理器。
类似功能的还有exacolorls,大家可以根据自己的喜好酌情挑选。

> tldr:太长不看版man pages

平时某个命令不会用的话我们一般会呼出帮助面板或者该命令的man pages。但往往这些man pages又长又晦涩。所以就有好心人制作了一款社区驱动的简单版man pages,叫做tldr(太长不看版man pages)。只要调用tldr,就能输出该命令的简洁明了的帮助信息,可以帮助我们省下大把阅读帮助面板的时间。

> Thefuck:终极大杀器wtf

最后压轴出场的就是终极大杀器thefuck!有没有经常手抖输错命令心里默念wtf?现在只要跟你的shell说wtf它就可以查找类似的命令帮你纠正这些错误命令啦!
如果把这玩意和power mode一块用,简直画美不看。。。

结语

仔细想想,Shell可以说是我们电脑里的Jarvis,听我们的话(命令行指令)帮我们干活(执行程序)。上面这些各式各样的小工具就是帮助我们更好地和Jarvis交流,相信将来某一天,兼容自然语言的shell或者更方便的交流方式能够彻底革命我们现在的人机交互。