Linux/Unix提供了很多种的Shell,但是为什么要存在这么多的Shell。其实这就像你的同一种类型的衣服有不同的款式一般。记得有一个评论家说的,程序员就是负责把复杂的事情搞简单,然后再把简单的事情搞复杂,Linux真的是完全体现了这一点的精髓。一个功能可以使用各种软件包实现,每个软件包也有各种版本。所以,程序员真的十分喜欢Linux。但普通人对此就只能表示呵呵了。
很多程序员看到不爽的Shell,心情一好,顺手就写了一个符合自己心意的。开源社区游一圈,其他的程序员觉得这个新的Shell看起来还不错,而且自己对他还有点新想法。然后写一段代码Push。慢慢的就行成了一些新的标准。但是Shell的种类也越来越多了。
常用的Shell有以下几类:Bourne shell、C shell、Korn shell。
上图中的就是Ubuntu及其衍生版本自带的Shell,名字是bash,文件路径位/usr/bin/bash。bash是GNU计划编写的Unix Shell。他的名称是Bourne-Again Shell的首字母缩写。由布莱恩·福克斯创造。Bash同时也是很多Linux发行版本的默认命令行Shell。Bash优点在于和系统的集成化程度比较高,对于很多操作错误都有比较完善的提示。
注:Shell分为图形界面Shell和命令行界面Shell,这里只讨论命令行界面Shell。
ohmyzsh是对zsh的强化。zsh是一款功能强大的Shell终端软件,既可以作为一个交互式终端,也可以作为一个脚本解释器。它在兼容Bash的同时(默认不兼容,除非设置成emulate sh)还有很多的改进,这里不多做解释,有兴趣的可以查阅zsh的wiki。同时zsh还是OSX的默认命令行Shell。
Ubuntu及其衍生版本软件源中就有zsh。我们只需要使用apt命令安装它就可以了。
sudo apt install zsh
如果你的系统上没有安装git,可能需要先安装git。
sudo apt install git
同时,使用以下命令导入最新的ohmyzsh。
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
在输入完你的sudo密码之后就完成了ohmyzsh的安装。同时显示第一次进入ohmyzsh的界面。接下来我们就要对这个最初的zsh进行设置,比如让他使用我们心仪的主题。ohmyzsh附带了很多的主题样式,我们首先需要在下面的网页中查询你选中的主题的名字,并记下它。
https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
比如说我选择的是xiong-chiamiov,在~/.zshrc文件中找到ZSH_THEME,把等号后面的内容改为xiong-chiamiov。
ZSH_THEME="xiong-chiamiov"
保存并重启终端就可以看见界面样式的变化。
ohmyzsh项目还提供了完善的插件体系,相关的插件目录为~/.oh-my-zsh/plugins目录下,默认提供了100多种插件,大家可以根据自己的实际学习和工作环境采用。想了解某个插件的功能,只需要打开相关目录下的zsh文件看一下就知道,插件也是在。zshrc里面配置,找到plugins关键字,就可以加载你需要的插件了,特别说明,系统默认加载了git插件。
plugins=(git textmate ruby autojump osx mvn gradle)