解释器的介绍
Shell是中脚本编程语言,常见的Shell解释器有sh
,ash
,csh
,zsh
,bash
,fish
等等,当然用的最多的就是sh
和bash
.
sh
sh
的全称是Bourne Shell,由 AT&T 公司的Steve Bourne开发,为了纪念他,就用他的名字命名了.sh
是 UNIX 上的标准 Shell,很多 UNIX 版本都配有 sh
.可以说sh
是第一个流行的 Shell 解释器.它常见于一些嵌入式或工业定制化内核版本的Unix/Linux中,比如路由器,交换机中.
bash
bash
由 GNU 组织开发,保持了对 sh
Shell 的兼容性,并扩展了许多语法功能, 因此针对sh
编写的 Shell 代码可以不加修改地在 bash
中运行.bash
则是作为各种Linux发行版的默认Shell解释器,比如CentOS/Debian/Ubuntu.
虽然在很大程度上bash
可以作为一个正统的Shell,但它还是太弱了,常常能感觉到在终端中使用bash
时的一些繁琐步骤,比如用cd
命令一层层进入一个目录时的无奈感,当然你可以用tree
命令显示一下目录结构,但有时文件太多也会显得无力.
所以是时候加强它了,就像是存在有vi
的加强版vim
,bash
同样也有加强版,还不少,比如:csh
,fish
这些都是它的加强版.
其实我尝试用了zsh
和fish
,感觉都挺好,打个比喻的话,zsh
那就像是一个Vim,可高度定制;而fish
则有点像是IDE,直接就能用上许多牛逼的功能.但还是选择用了zsh
,并不是说fish
的定制不如zsh
,而是我发现了一个牛逼的开源库Oh My Zsh.
Oh My Zsh
首先要安装zsh
,我的电脑上跑的系统是上个月安装最新的Ubuntu 14.4,命令可以用sudo apt-get install zsh
,同时也在CentOS和Fedora虚拟机中安装了,命令是yum install zsh
.安装完后,并不是马上就生效了,要使用命令:sudo chsh -s $(which zsh)
,指定好启动的Shell解释器,然后退出在重登录就能生效了,如果是图形界面的系统,则需要重启生效.
安装完zsh
后使用命令:sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
,它会自动下载并安装Oh My Zsh.
完成后,可以修改~/.zshrc
文件,比如指定一些环境参数,或要加载zsh
的git插件,则可以添加如下内容,注意插件之间用换号或空格分隔,不要用其他符号分隔:
plugins=(
ubuntu
git
)
更换指定主题:
ZSH_THEME="agnoster"
当然也可以用随机主题:
ZSH_THEME="random"
或特定某些主题随机:
ZSH_THEME_RANDOM_CANDIDATES=(
"robbyrussell"
"agnoster"
)
这个时候的命令行终端已经变得十分的酷炫了;一些zsh
的特性,比如命令行提示,自动补全,目录查看等功能都很实用.
如果卸载zsh
,则务必要切换回原来的bash
解释器,使用命令:sudo chsh -s /bin/bash Username
,否则直接卸载将出现无法登录的情况.我亲身实践…