红联Linux门户
Linux帮助

ubuntu下zsh安装使用

发布时间:2015-08-20 10:52:29来源:linux网站作者:格林先生

为什么要用zsh

zsh和linux默认的bash一样都是shell的一种,不过由于zsh具有很强的功能以及很高的可配置性,所以受到很多使用着的喜爱。

在介绍zsh之前有必要先解释一下shell的概念,shell是Unix/类Unixn系统的一个外壳,其主要用于计算机内核与外部命令及应用程序之间的沟通,也就是将用户输入的命令或者应用程序的命令翻译成内核能够理解的形式,让内核将工作结果再返回给用户或应用程序。

shell和内核交互的基本功能虽然是固定的,但是由于每个人的审美和功能要求不同,shell呈现给用户的界面形式,功能配置要求却可以多种多样。所以也就出现了各种各样的shell,常见的主要有sh,bash,csh。如果想知道系统中安装了的shell,可以通过cat /etc/shells查看;若要查看当前进程中的shell种类可以使用命令:ps | grep $$ | awk ‘{print $4}’ .

那shell有这么多种,又为什么要选择zsh呢?zsh号称终极shell,其牛逼之处就在于它可以通过并不复杂的配置,变得功能无比强大。


如何安装zsh

首先当然是在系统中安装zsh,我使用的系统是Ubuntu 15.04, 在它上面安装十分简单,只需要输入命令:sudo apt-get install zsh执行即可。

安装完之后并不是系统就自动将默认shell改为zsh了,还需要使用命令:chsh -s /bin/zsh修改默认shell,之后重启电脑,打开终端,你就见到了你日后离不开的zsh了。


配置zsh

安装完zsh只能算你的牛逼shell之路迈出了一小步,因为等着你的是对于zsh无穷无尽的探索.

俗话说未经过配置的zsh,还不及bash好用,所以zsh的配置是决定了你的shell好用与否的关键.还好github上有个帮你快速入门的zsh项目,叫做:oh my zsh.


安装oh my zsh

安装相当简单,具体可以参考官方主页上的README;但是我的自动安装不知道怎么回事一直安装不起来,只能使用手动安装了,虽然也并不复杂.


zshrc

配置主要在~/.zshrc中完成,配置的主要任务就是设置主题(可以在官方主页上查看各个主题的预览形式),使用插件,设置命令别名。

zsh的别名设置不仅仅只是设置通用别名那么简单,还能针对不同的文件类型设置对应的打开程序,比如:

alias -s py=vi #在命令行中直接输入python文件,会默认使用vim打开

aliias -s gz=’tar -xzvf’表示自动解压后缀为gz的压缩包.

插件也是在.zshrc中进行配置,找到plugins关键词,在其后的括号中添加即可.

我使用的插件:plugins=(git autojump sudo ubuntu colored-man cp)


插件

oh my zsh项目提供了一百多种哦个各式插件,均在~/.oh-my-zsh/plugins目录下。我常用的就是git,autojump,sudo这三个插件。

1、git:当你处于一个 git 受控的目录下时,Shell 会明确显示「git」和 branch,并且提供了很多的命令别名简化输入,命令内容可以参考~/.oh-my-zsh/plugins/git/git.plugin.zsh

2、autojump:zsh 和 autojump 的组合形成了 zsh 下最强悍的插件.在Ubuntu下它的安装及其简单,只需要使用命令:sudo apt-get install autojump即可。

autojump是跳转目录的利器,zsh会自动记录你访问过的目录(可以通过:j –stat查看) ,对于访问过的目录可以直接使用:j + 目录名进行一键直达,而且目录名支持模糊匹配和自动跳转.

3、sudo:我们经常会碰到这种情况,输入玩命令后,发现该条命令的运行是需要权限的,这时回到最前面再加上sudo命令的话又太过麻烦,这时就是该插件发挥作用的时候,只需要按ESC+ESC,就会自动在最前面添加sudo指令。


在使用之前需要对默认的zshrc进行修改–取消有用的功能前的注释

1、兼容 bash,原来使用 bash 的兄弟切换过来毫无压力,该咋用咋用。

2、强大的历史纪录功能,输入 grep (需要紧跟着一个空格) 然后用上下箭头可以翻阅你执行的所有grep 命令。

3、智能拼写纠正,使用前需要取消配置文件中的注释,输入gtep green * -R,系统会提示:zsh: correct‘gtep’ to ‘grep’ [nyae]?

4、各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。触发补全只需要按一下或两下 tab 键,补全项可以使用 ctrl+n/p/f/b上下左右切换。比如你想杀掉 java 的进程,只需要输入 kill java + tab键,如果只有一个 java 进程,zsh 会自动替换为进程的 pid,如果有多个则会出现选择项供你选择。ssh + 空格 + 两个tab键,zsh会列出所有访问过的主机和用户名进行补全

5、智能跳转:见autojump。

6、目录浏览和跳转:输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。

7、在当前目录下输入 .. 或 … ,或直接输入当前目录名都可以跳转,你甚至不再需要输入 cd 命令了。

8、通配符搜索:ls -l */.sh,可以递归显示当前目录下的 shell 文件,文件少时可以代替 find,文件太多就歇菜了。

9、更强的别名:见zshrc。

10、插件支持:见插件。

11、支持在Emacs中使用,推荐配合multi-term使用,该模式很好的解决了emacs快捷键和shell冲突的问题,是在emacs下使用zsh的不错选择.


Linux下安装终极Shell Zsh:http://www.linuxdiyf.com/linux/2436.html

给Zsh的Vi模式添加指示符:http://www.linuxdiyf.com/linux/12330.html

将oh-my-zsh变成真正的my zsh :http://www.linuxdiyf.com/linux/12887.html