0%

zsh+on-my-zsh配置教程指南

本文以CentOS 7为例,介绍zsh的配置使用教程。

准备
查看当前环境shell

1
echo $SHELL

查看系统自带那些shell

1
cat /etc/shells

安装zsh

1
2
yum install zsh # CentOS
brew install zsh # mac安装

将zsh设置为默认shell

1
2
3
4
5
6
7
8
chsh -s /bin/zsh # CentOS


# Mac如下
# 在 /etc/shells 文件中加入如下一行
/usr/local/bin/zsh
# 接着运行
chsh -s /usr/local/bin/zsh

可以通过echo $SHELL查看当前默认的shell,如果没有改为/bin/zsh,那么需要重启shell。

oh-my-zsh

配置zsh是一件麻烦的事儿,爱折腾的程序猿怎么可能忍受?!于是,oh-my-zsh出现了,有了这个东东,zsh配置起来就方便多了!

安装oh-my-zsh

有若干安装方式,介绍三种:
1.自动安装

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

2.手动安装

1
2
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

zsh主题
通过如下命令可以查看可用的Theme:

1
# ls ~/.oh-my-zsh/themes

如何修改zsh主题呢?
编辑~/.zshrc文件,将ZSH_THEME=”candy”,即将主题修改为candy。我采用的agnoster。

当你采用主题:ZSH_THEME=”agnoster”时,你的环境中可能需要安装powerline字体才能显示正确:

下载这个代码库powerline/fonts

1
2
3
4
5
6
7
8
# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts

如果你是在使用putty或者mobaxterm连接虚拟机的话,那么你需要安装DejaVuSansMono这个字体,然后设置工具的字体为它,这样你看到的效果才不会乱码。

安装特殊的箭头效果和符号内容

1
2
3
4
5
6
7

wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf
wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf

mv PowerlineSymbols.otf /usr/share/fonts/
fc-cache -vf /usr/share/fonts/ # 更新你系统的字体缓存
mv 10-powerline-symbols.conf /etc/fonts/conf.d/ # 其次安装字体配置文件。

Windows系统同样要安装这个符号字体,在仓库[powerline/powerline](https://github.com/powerline/...,直接点击就可以安装字体

zsh扩展
在~/.zshrc中找到plugins关键字,就可以自定义启用的插件了,系统默认加载git。

git插件
命令内容可以参考cat ~/.oh-my-zsh/plugins/git/git.plugin.zsh。

常用的:

1
2
3
4
5
6
7
8
9
10
11
12
13
gapa    git add --patch
gc! git commit -v --amend
gcl git clone --recursive
gclean git reset --hard && git clean -dfx
gcm git checkout master
gcmsg git commit -m
gco git checkout
gd git diff
gdca git diff --cached
gp git push
grbc git rebase --continue
gst git status
gup git pull --rebase

完整列表:https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git