小时候看黑客帝国,电影中那一串串各种颜色的数字迅速滚动过屏幕,哇,好酷。
然而后来接触到真实的终端时,才发现这个黑底白字的东西这么枯燥乏味,探索计算机世界的兴趣之火简直就要被浇灭了,说好的狂拽酷炫呢?
事实上,大多数的终端都是高度支持自定义的,只要你爱折腾,你可以让它随心所欲地变化,要实现电影中的效果也并非不可。
然而电影效果终究是电影效果,我们在实际的工作和学习中需要的是一个高效、美观的终端,而不是一个单纯用来“装 Bi”(这个Bi是和谐音,只是恰巧跟你脑子里想的那个读音重合了)的外壳。
我们知道,现在最流行的shell
是bash
,绝大多数的Linux预装且保持默认的正是它。其他流行的shell
还包括sh
、csh
、ksh
、tcsh
、dash
等,而今天我们的主角,则是zsh
以及基于zsh
的定制版oh-my-zsh
。
zsh
是一个支持高度个性化的shell
,但是从零开始进行配置需要花费大量的时间,因此让很多程序员望而却步。同时有些人可能担心有些bash
命令在zsh
下得不到支持,这一点大家可以放心,根据我平时的经验,绝大多数bash
下的操作在zsh
下都可以被很好地支持,兼容度极高。
zsh
目前来看,并不是所有的Linux发行版会预装zsh
,因此我们可以先检查下我们的系统里是否包含它:
# dain @ localhost in ~ [14:00:29]
$ whereis zsh
/bin/zsh
# dain @ localhost in ~ [14:00:34]
$ which zsh
/bin/zsh
whereis
和which
命令都能满足我们的要求,可以看到,我的Mac里已经存在了zsh
,如果没有的话,我们就需要安装下zsh
。
在Mac下:
# dain @ localhost in ~ [14:00:36]
$ brew install zsh
在CentOS下:
# dain @ localhost in ~ [14:00:50]
$ sudo yum install zsh
在Ubuntu和Debian下:
# dain @ localhost in ~ [14:01:00]
$ sudo apt install zsh
在Arch和Majaro下:
# dain @ localhost in ~ [14:01:15]
$ sudo pacman -S zsh
不出意外,我们的zsh
应该就安装好了。我们可以查看下版本:
# dain @ localhost in ~ [14:06:08]
$ zsh --version
zsh 5.3 (x86_64-apple-darwin17.0)
在Mac下,需要我们先保证HomeBrew已经安装,大家可以自行搜索安装。
git
安装Oh My Zsh
之前,我们还要保证git
已经安装:
# dain @ localhost in ~ [14:08:38]
$ whereis git
/usr/bin/git
# dain @ localhost in ~ [14:08:33] C:129
$ git --version
git version 2.17.1 (Apple Git-112)
如果尚未安装git
则需要进行安装:
在Mac下:
# dain @ localhost in ~ [14:00:36]
$ brew install git
在CentOS下:
# dain @ localhost in ~ [14:00:50]
$ sudo yum install git
在Ubuntu和Debian下:
# dain @ localhost in ~ [14:01:00]
$ sudo apt install git
在Arch和Majaro下:
# dain @ localhost in ~ [14:01:15]
$ sudo pacman -S git
Oh My Zsh
Oh My Zsh
相当于是一个提供了预设个性化配置的zsh
,我们可以使用curl
或者wget
下载安装脚本并执行:
# dain @ localhost in ~ [14:09:07]
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# dain @ localhost in ~ [14:15:14]
$ sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
不是所有的系统或发行版都预装了wget
,所以使用curl
是一个比较保险的方式。
shell
修改我们要将zsh
修改为我们的默认shell
:
# dain @ localhost in ~ [14:30:22]
$ chsh -s /bin/zsh
Changing shell for dain.
Password for dain:
chsh: no changes made
因为我的默认shell
已经是zsh
,所以这里的输出可能跟你的不太一样。
可能会有很多人建议下载Powerline
和PowerFonts
,使用agnoster
主题,我最初也是这一套配置方案,然而后来我发现了一个更好的方案,只需要几秒钟即可搞定。
那就是ys
主题。使用这一主题不需要任何额外的配置,只需要打开我们的~/.zshrc
文件,将主题修改为ys
即可:
# 找到如下这一行,将引号中的部分修改为`ys`即可
ZSH_THEME="ys"
最终实现的效果如下图,包含了用户、Host、工作目录、时间选项,并且另起一行用于用户输入,在输出结果的末尾也会加一行空行,同时还搭配了美观的配色。这一方案可以轻易地将多次的输入输出分开,不会让用户产生混淆,使用这一方案,在翻阅历史输入输出时会特别高效,当然,上述的Powerline
方案也可以实现这一目标,只是其配置相对于这一方案复杂了许多。
# dain @ localhost in ~ [14:30:17] C:130
$ echo "Hello World"
Hello World
# dain @ localhost in ~ [14:30:22]
$
当然,主题这种东西也不光是看是否高效,还得考虑个人习惯以及个人审美风格,因此大家完全可以考虑不同的主题和配置方案,网上有丰富的教程指导,这一过程不会太过不愉快。
好了,到此为止,我们的终端就配置好了,快去享用它吧!