扩展zsh

解释器的介绍

Shell是中脚本编程语言,常见的Shell解释器有sh,ash,csh,zsh,bash,fish等等,当然用的最多的就是shbash.

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这些都是它的加强版.

其实我尝试用了zshfish,感觉都挺好,打个比喻的话,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,否则直接卸载将出现无法登录的情况.我亲身实践…