我一直用的都是系统默认的bash,不过Miedo用了zsh后就一直给我推荐,今天就试试这个传说中的终极shell。

听说zsh配置不好弄,不过网上一搜就发现很多人推荐的oh-my-zsh,由一个国外程序员开发的项目oh-my-zsh可以让你零基础快速上手zsh,看来这个项目应该对zsh的普及推广出了很大力。zsh和bash一样是一种shell,oh-my-zsh包含了zsh配置、大量插件及多种主题。

下面看看具体如何做。

安装zsh

我用的系统是openSUSE 42.1,首先要安装zsh。

zypper install zsh

安装oh-my-zsh

参考oh-my-zsh的说明文档,自动安装。

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

安装过程会下载oh-my-zsh整个项目到~/.oh-my-zsh目录下,并创建zsh的默认配置~/.zshrc,最后将默认shell设置为zsh。

zsh的tab补全很厉害,比如在home目录下键入cd doc命令,按下Tab会自动匹配到cd Documents/目录;如果键入cd命令加一个空格,然后按下Tab键,会自动列出当前目录中的所有子目录和文件,此时,如果继续按下Tab键,光标可以在出现的列表中移动,然后按下回车可以选中光标所在项。

再比如,在命令行键入kill vim并按下Tab键,如果当前有在运行的vim进程,会自动替换成对应的进程号。

更多特性有待使用中你进一步发掘…

配置oh-my-zsh

oh-my-zsh默认自带了很多插件,但是自动安装后只开启了git插件,在文件~/.zshrc中有一行:

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git)

看注释内容,默认插件一般位于~/.oh-my-zsh/plugins/,想要启用某个插件直接把该插件的名字加到下面的括号内,各个插件名字之间用空格隔开。

Plugins Overview有插件的介绍,根据需要选择并开启。

插件

oh-my-zsh和git的集成度比较高,在默认主题下,当你进入一个git仓库文件夹(及其子文件夹),zsh的命令提示行会自动显示git:(XXX),括号中的XXX是当前的branch名。另外,如果当前目录有未提交的改动或者新文件,命令提示行也会显示一个以示提醒。

另外要说的就是git插件自带的Aliases,执行命令alias可以看到多了很多git命令的alias,具体可以参见文件~/.oh-my-zsh/plugins/git/git.plugin.zsh

Cheatsheet给出了很多有用的功能介绍。

这个插件就是一个神器,可以随意在不同位置见跳跃。如果你经常进入目录~/AAA/BBB/CCC/DDD/EEE/FFF,在zsh命令行上键入z FFF直接就跳进去了(前提是你使用了一段时间让该插件可以积累一些数据才可以),而且支持模糊匹配。类似的插件还有autojump,autojump是python写的,而z是shell写的。

高亮显示man手册中的关键字。

命令没发现时,给出相关的包名字建议。

Alias h为列出命令历史,hsi搜索命令历史。

主题

oh-my-zsh默认使用的主题是robbyrussell,但是oh-my-zsh自带的主题有很多,都在~/.oh-my-zsh/themes/目录下放着,要想修改使用的主题,只要修改~/.zshrc,将ZSH_THEME指定为你想使用的即可。

# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
# ZSH_THEME="robbyrussell"
ZSH_THEME="robbyrussell"

另外,可以参考Themes发现更多的主题及其预览。

尽情的尝试吧!!!

zsh技巧

最后,网上搜zsh技巧之类的,多多练习,熟练使用后shell操作效率大增!

比如这里:zsh使用指南(译)


参考:

[1] http://macshuo.com/?p=676

[2] http://hczhcz.github.io/2014/03/27/oh-my-zsh.html

[3] http://swiftcafe.io/2015/10/31/cafe-time-omz/