Linux 配置 oh-my-zsh 总结
oh my zsh
shell
的类型有很多种,linux
下默认的是bash
,虽然bash
的功能已经很强大,但对于以懒惰为美德的程序员来说,bash
的提示功能不够强大,界面也不够炫,并非理想工具。
而zsh
的功能极其强大,只是配置过于复杂,起初只有极客才在用。后来,有个穷极无聊的程序员可能是实在看不下去广大猿友一直只能使用单调的bash
, 于是他创建了一个名为oh-my-zsh
的开源项目…
自此,只需要简单的安装配置,小白程序员们都可以用上高档大气上档次,狂拽炫酷吊炸天的oh my zsh
安装 zsh
以CentOS 7
为例:
查看系统当前使用的shell
$ echo $SHELL
/bin/bash
查看系统是否安装了zsh
$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
CentOS 7默认情况下没安装zsh
用yum
安装zsh
$ yum -y install zsh
查看shell
列表
$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
/bin/zsh
切换shell
为zsh
$ chsh -s /bin/zsh
Changing shell for root.
Shell changed.
重启服务器后,可使用reboot
重启后,查看当前shell
$ echo $SHELL
/bin/zsh
安装 oh my zsh
oh-my-zsh
源码是放在github
上,先确保你的机器上已安装了git
安装:
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
成功界面:
____ / /_ ____ ___ __ __ ____ _____/ /_
/ __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \
/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / /
\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/
/____/ ....is now installed!
Please look over the ~/.zshrc file to select plugins, themes, and options.
p.s. Follow us at https://twitter.com/ohmyzsh.
p.p.s. Get stickers and t-shirts at http://shop.planetargon.com.
配置 oh-my-zsh
和bash
不同,zsh
的配置文件是~/.zshrc
,实际上oh-my-zsh
的默认配置也够我们使用了,但是这样其真正的强大之处并不能得到很好的体现,因此我们可以继续看看对应的插件和主题功能
关于主题
oh-my-zsh
的主题非常丰富,可以用如下命令查看已有主题:
ls .oh-my-zsh/themes
选择主题如wedisagree
主题,进入.zshrc
配置文件进行修改
vim ~/.zshrc
将第11行改为ZSH_THEME="wedisagree"
,然后:wq
保存退出,主题就自动生效
关于插件
oh-my-zsh
的插件生态非常丰富,下面列出来的是我个人比较常用的插件,如果你有兴趣,可以取发掘能提高自身效率的插件~
注意:如果操作过程中出现_arguments:448: _vim_files: function definition file not found
错误,请执行:rm -f ~/.zcompdump
即可
incr
incr
是一款自动提示插件,功能非常强大,官网演示demo,感受一下:
安装:
wget http://mimosa-pudica.net/src/incr-0.2.zsh
mkdir ~/.oh-my-zsh/plugins/incr
mv incr-0.2.zsh ~/.oh-my-zsh/plugins/incr
echo 'source ~/.oh-my-zsh/plugins/incr/incr*.zsh' >> ~/.zshrc
source ~/.zshrc
可以开心的敲命令行了~
autojump
这款插件基本上算是必备插件了,在终端操作里面比较常用的算是文件夹之间的切换,这款插件极大地简化了路径跳转的操作,在一键直达的功能下,自动补全也就一般般了哈
先安装:
yum install autojump-zsh
chmod 777 /usr/share/autojump/autojump.bash
vim ~/.zshrc
# 加入插件列表
plugins=(
git
autojump
)
source ~/.zshrc
效果如下:
以前的cd code
现在可以直接j c
,路径越长,该插件效果就越明显
zsh-autosuggestions
这是一个命令自动补全插件,当你输入命令的几个字母,它会自动根据历史输入进行自动补全,然后按→
,安装也很简单:
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
vim ~/.zshrc
# 加入插件列表
plugins=(
git
autojump
zsh-autosuggestions
)
source ~/.zshrc
该插件已经在第一个动图有演示,这里不再重复
autoswitch_virtualenv
这个插件对于Python开发者来说可以算是神器了,在实际开发过程中,基本上一个Python项目就对应了一个新的虚拟环境,如果你使用pipenv
,当你需要进入项目的虚拟环境时候,就需要执行pipenv shell
命令,安装autoswitch_virtualenv
后,该插件可以自动地完成这些事情:
git clone "https://github.com/MichaelAquilina/zsh-autoswitch-virtualenv.git" "$ZSH_CUSTOM/plugins/autoswitch_virtualenv"
vim ~/.zshrc
# 加入插件列表
plugins=(
git
autojump
zsh-autosuggestions
autoswitch_virtualenv
)
source ~/.zshrc
该插件已经在第一个动图里面体现的很明显,这里不再重复演示
zsh-syntax-highlighting
这个插件的主要作用就是在提高颜值(高亮你的zsh可用命令),安装如下:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
vim ~/.zshrc
# 加入插件列表
plugins=(
git
autojump
zsh-autosuggestions
zsh-syntax-highlighting
)
source ~/.zshrc
效果如下图: