centos 7里安装zsh来提升shell的高逼格

zsh本体的安装

先用chsh -l查看当前的bash情况,如下:

1
2
3
4
5
6
7
8
9
   [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方法安装:

1
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,如下图:
paradin

这个时候需要把/root/.zcompdump改一个名字,比如叫.zcompdump-bak,然后重新ssh连接即可。

autojump插件安装

autojump这个插件安装之后,zsh会自动记录你访问过的目录,通过j + 目录名可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过hadoop-1.0.0目录,输入j hado即可正确跳转。j –s可以看你的历史路径库,安装方法如下:

1
git clone git://github.com/joelthelion/autojump.git

然后在autojump目录里执行./install.sh,此时屏幕会出现如下的显示:
paradin

把上面那个[[ -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插件安装

这个插件安装之后主要效果就是命令高亮,如果是错误的命令,颜色是红色,正确的命令是绿色的,安装方法如下:

1
2
3
4
5
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

感谢您请我喝咖啡~O(∩_∩)O,如果要联系请直接发我邮箱chenx1242@163.com,我会回复你的
-------------本文结束感谢您的阅读-------------