一般Linux系统终端默认使用的是Shell是Bash。Bash作为底层的解释器功能已经非常强大了,但是对于以懒惰为动力的程序员来说,Bash的某些功能还不够强大,界面不够现代科技感。同时后起之秀zsh虽然功能非常强大,但是配置的过程太复杂,使用者也不是很多。
直到有一天,国外有个无聊的程序员开发出了一个让你快速上手的zsh项目,叫做oh-my-zsh,让你神功速成,最终可以让你的终端飞起来,我们先看一下效果图:
我使用的是Ubuntu 18.04,首先安装zsh:
sudo apt install git
sudo apt install zsh
把终端默认Shell换成zsh:
chsh -s /bin/zsh
自动安装oh-my-zsh:
sh -c "$(wget -O- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
安装完成之后退出当前会话重新打开一个终端窗口,你就可以见到这个彩色的提示了:
zsh 的配置主要集中在用户当前目录的.zshrc里,用vim打开.zshrc,可以看到有主题和插件的默认配置:
ZSH_THEME="robbyrussell"
plugins=(git)
在这个文件里面除了可以配置自己喜欢的插件和主题外,我们还能设置别名:
alias ll='ls -l'
alias la='ls -a'
alias vi='vim'
还能绑定快捷键:
bindkey -s '\eo' 'cd ..\n' # 按ALT+O 执行 cd ..
bindkey -s '\e;' 'ls -l\n' # 按 ALT+; 执行 ls -l
修改这些配置后,执行如下命令生效:
source ~/.zshrc
下面一边介绍zsh的强大功能,一边修改相应的配置:
和bash完全兼容,之前你怎么用bash这里还怎么用。
并不是传统基于正则表达式的色彩高亮,而是会动态判断你输入的是什么来显示不同高亮。
不光有强大的历史纪录功能:输入 grep 然后用上下箭头可以翻阅你执行的所有 grep 命令。而且还会在用灰色给你提示你上一个输入的命令记录。
各种补全:路径补全、命令补全,命令参数补全,插件内容补全等等。触发补全只需要按一下或两下 tab 键,补全项可以使用 ctrl+n/p/f/b上下左右切换。
你想杀掉 vim 的进程,只需要输入 kill vim + tab键,如果只有一个 vim 进程,zsh 会自动替换为进程的 pid,如果有多个则会出现选择项供你选择。
输入cd -命令,敲一个 tab 立刻就列出本次登陆后去过的最近几次路径,接着根据下面的提示输入数字按回车就可以了。
输入 d 再回车你会看到最近的历史记录,然后你就可以通过数字返回到某个历史记录中了。
安装了autojump之后,zsh 会自动记录你访问过的目录,通过 j + 目录名 可以直接进行目录跳转,而且目录名支持模糊匹配和自动补全,例如你访问过vim_config目录,输入j vim 即可正确跳转。j –stat 可以看你的历史路径库。
写到这,你可能会问,你说的这些功能oh-my-zsh默认并没有打开这些插件或者功能,所以我把我的配置文件上传到这里:
.zshrc
把上面这个配置的内容复制粘贴到你的 ~/.zshrc 文件里,保存,然后重新打开一个窗口,头一次运行会安装一些依赖包,稍等两分钟,以后再进入就瞬间进入了。头一次自动安装好所有插件后需要手动安装下autojump插件,然后重启终端即可:
$ cd ~/.antigen/bundles/wting/autojump
$ ./install.py
至此,zsh一出,谁与争锋!你赶紧也尝试下oh-my-zsh这个shell中的极品,让你的终端飞起来吧。