1.兼容bash,原来使用bash的兄弟切换过来毫无压力。
2.强大的历史纪录功能,在用方向上键查找历史命令时,zsh支持限制查找。比如输入ls然后再按方向上键,则只会查找用过的ls命令。而此时使用bash则会仍然按之前的方式查找,忽略ls。
3.多个终端会话共享历史记录。
4.各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。触发补全只需要按一下或两下tab键,补全项可以使用ctrl+n/p/f/b上下左右切换。比如你想杀掉java的进程,只需要输入kill java + tab键,如果只有一个java进程,zsh 会自动替换为进程的 pid,如果有多个则会出现选择项供你选择。ssh+空格+两个tab键,zsh会列出所有访问过的主机和用户名进行补全。
5.智能跳转:安装了autojump之后,zsh 会自动记录你访问过的目录,通过 j + 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过hadoop-1.0.0目录,输入j hado 即可正确跳转。j –stat 可以看你的历史路径库。
6.目录浏览和跳转:输入 d,即可列出你在这个会话里访问的目录列表,输入列表前的序号,即可直接跳转。在当前目录下输入…或 … ,或直接输入当前目录名都可以跳转,你甚至不再需要输入cd命令了。
7.通配符搜索:ls -l **/*.sh,可以递归显示当前目录下的 shell 文件,文件少时可以代替find,文件太多还是用find。
系统中普通用户和root用户都会有一个默认shell,可以通过在当前用户下使用echo $SHELL
查看当前用户的默认shell。下面操作是在root用户下。
sudo apt-get install zsh
zsh 的配置文件位置:~/.zshrc
sudo apt-get install git
github地址:https://github.com/robbyrussell/oh-my-zsh
可以通过以下两种方式进行安装:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
oh-my-zsh 的默认安装目录:~/.oh-my-zsh
为 root 用户设置 zsh 为系统默认 shell:
chsh -s /bin/zsh root
或者
vi /etc/passwd 手动修改
重新恢复 root 用户默认 shell 到 bash:
chsh -s /bin/bash root
插件不要装得太多,否则会使终端反应变慢。
oh-my-zsh 默认自带了一些默认插件,存放在~/.oh-my-zsh/plugins
目录中,oh-my-zsh默认是只启用 git 插件。设置方法是先编辑~/.zshrc
文件,添加需要用的插件到plugins=( [plugins...])
中,然后执行source ~/.zshrc
激活即可。
github地址:https://github.com/wting/autojump
安装命令:
sudo apt-get install autojump
配置说明文件位置:
/usr/share/doc/autojump/README.Debian
添加指令到~/.zshrc
最后一行:
. /usr/share/autojump/autojump.sh
激活插件:
source ~/.zshrc
插件使用方法:j是autojump的封装,j可以配合使用autojump的所有选项,–help查看选项。
j foo
jc bar
jo music
github地址:https://github.com/zsh-users/zsh-autosuggestions
克隆仓库到oh-my-zsh的插件目录:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
添加插件到oh-my-zsh的插件列表(vi ~/.zshrc):
plugins=( [plugins...] zsh-autosuggestions)
激活插件:
source ~/.zshrc
插件使用方法:
当键入命令时,将会看到光标处于柔和灰色,提示可能会键入的命令。如果按下 →键 或 End键,光标会跳到缓冲区的末尾,表示接受建议,用建议替换命令行缓冲区的内容。
github地址:https://github.com/zsh-users/zsh-syntax-highlighting
克隆仓库到oh-my-zsh的插件目录:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
添加插件到oh-my-zsh的插件列表(vi ~/.zshrc):
plugins=( [plugins...] zsh-syntax-highlighting)
激活插件:
source ~/.zshrc
主题列表在/root/.oh-my-zsh/themes
目录下,部分主题如下所示(实在太多了):
3den.zsh-theme gallois.zsh-theme nicoulaj.zsh-theme
adben.zsh-theme garyblessington.zsh-theme norm.zsh-theme
af-magic.zsh-theme gentoo.zsh-theme obraun.zsh-theme
afowler.zsh-theme geoffgarside.zsh-theme peepcode.zsh-theme
agnoster.zsh-theme gianu.zsh-theme philips.zsh-theme
alanpeabody.zsh-theme gnzh.zsh-theme pmcgee.zsh-theme
amuse.zsh-theme gozilla.zsh-theme pure.zsh-theme
apple.zsh-theme half-life.zsh-theme pygmalion.zsh-theme
arrow.zsh-theme humza.zsh-theme re5et.zsh-theme
aussiegeek.zsh-theme imajes.zsh-theme refined.zsh-theme
avit.zsh-theme intheloop.zsh-theme rgm.zsh-theme
awesomepanda.zsh-theme itchy.zsh-theme risto.zsh-theme
bira.zsh-theme jaischeema.zsh-theme rixius.zsh-theme
... ...
更改主题的方法是编辑~/.zshrc
配置文件,可以看到ZSH_THEME="robbyrussell"
设置项,robbyrussell
就代表了默认主题(同时也是oh-my-zsh作者的名称),然后提取主题列表中点之前的字符串,替换掉旧的主题名(例如ZSH_THEME=“gallois”),最后执行source ~/.zshrc
即可使主题设置生效。下图为几种主题的效果。
直接在终端中,运行uninstall_oh_my_zsh
即可卸载。不使用的话其实没必要卸载,chsh -s /bin/bash
切换到bash就和以前一样了。
参考网址: