zsh本体的安装
先用chsh -l
查看当前的bash情况,如下:
[root@zabbix ~]# chsh -l /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh /usr/bin/tmux [root@zabbix ~]#
如果是centos的话,使用yum install -y zsh
来安装zsh,装完了zsh然后就是装oh my zsh
,使用wget方法安装
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
再使用which zsh
查看安装的zsh在/usr/bin/zsh
,这个时候使用chsh -s /usr/bin/zsh
,出现了Shell changed.
这样就切换到了zsh界面,需要logout退出连接重进。
重新连接就会发现bash界面就变了,原本是路径的地方变成了一个小图标。界面主题是可以变化的,比如我个人比较喜欢af-magic
这个模板,于是乎就把/root/.zshrc
里的ZSH_THEME="robbyrussell"
改成ZSH_THEME="af-magic"
,保存文件,再一次退出连接重新进入就能看见模板变化了。
如果在使用vim
的时候发现了tab键的补全爆错_arguments:451: _vim_files: function definition file not found
,如下图:
这个时候需要把/root/.zcompdump
改一个名字,比如叫.zcompdump-bak
,然后重新ssh连接即可。
autojump插件安装
autojump
这个插件安装之后,zsh会自动记录你访问过的目录,通过j + 目录名
可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过hadoop-1.0.0
目录,输入j hado
即可正确跳转。j –s
可以看你的历史路径库,安装方法如下:
git clone git://github.com/joelthelion/autojump.git
然后在autojump
目录里执行./install.sh
,此时屏幕会出现如下的显示:
把上面那个[[ -s /root/.autojump/etc/profile.d/autojump.sh ]] && source /root/.autojump/etc/profile.d/autojump.sh autoload -U compinit && compinit -u
复制到/root/.zshrc
的文件里,最好复制在source $ZSH/oh-my-zsh.sh
这句话上面,保存之后source ~/.zshrc
即可。
zsh-Syntax-highlighting插件安装
这个插件安装之后主要效果就是命令高亮,如果是错误的命令,颜色是红色,正确的命令是绿色的,安装方法如下:
cd .oh-my-zsh/plugins yum install -y git #如果已经安装了git就不用执行的 git clone git://github.com/zsh-users/zsh-Syntax-highlighting.git source /root/.oh-my-zsh/plugins/zsh-Syntax-highlighting/zsh-Syntax-highlighting.zsh添加到 .zshrc 的最后面 source ~/.zshrc
效果立竿见影。
尾声
至此,你现在的zsh应该具备如下几个特性:
1、各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。触发补全只需要按一下或两下tab
键,补全项可以使用ctrl+n/p/f/b上下左右
切换。比如你想杀掉java的进程,只需要输入kill java + tab键
,如果只有一个java进程,zsh会自动替换为进程的pid,如果有多个则会出现选择项供你选择。ssh + 空格 + 两个tab键
,zsh会列出所有访问过的主机和用户名进行补全;
2、即使你没有安装autojump
,只要输入d
,就会列出你在这个回话中访问的目录,输入前面的序号,就可以直接跳转;
3、可以忽略cd命令,输入..
或者...
和当前目录名都可以跳转;
当然,除了上面几点,zsh还有很多丰富的插件可以使用,这就需要继续的探索了...
参考资料
https://github.com/robbyrussell/oh-my-zsh
http://macshuo.com/?p=676