Oh My Zsh 替换你的 Bash Shell
Oh-My-Zsh is an open source, community-driven framework for managing your ZSH configuration. It comes bundled with a ton of helpful functions, helpers, plugins, themes, and a few things that make you shout…
1. Oh My Zsh 简介
无意中看见了 Linux 的一款 Shell,相比于 Bash 极其美艳,决定入坑试水一下,不试不知道,一试绝对有惊喜,不仅外观美艳而且功能强大,那还有不替换 Bash 的理由吗?搞起搞起……
Linux 提供了很多种 Shell ,想要查看系统有安装哪些 Shell 可以通过命令:chsh -l
或者 cat /etc/shells
进行查看。
cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
其中 Bash 是绝大多数 Linux 系统默认的 Shell,虽然 Zsh Shell 没有被所有 Linux 预安装,但几乎每一款 Linux 都包含 Zsh Shell, 根据不同版本的 Linux 可以用 apt-get、yum 等包管理器进行安装。
但是我们今天介绍的并非是 Zsh,而是 Oh My Zsh,这是个什么鬼了?虽说 Zsh Shell 很牛逼,但配置相当麻烦,所以阻挡了好多人尝试的勇气(我想这也是为啥 Zsh 不被 Linux 设为默认 Shell 的原因吧),但是永远不要低估一个爱折腾程序猿的创造力,国外一程序猿真就创造出了一款易于使用的 Zsh 版本: Oh My Zsh
Oh My Zsh 几乎兼容日常使用的所有 Bash Shell 指令,让你可以无缝接入,不需要再去花额外的时间去适应。当然还扩展了大量炫酷的指令,要不然干嘛用它对吧,而且支持更换主题和插件机制。下面就开始搞起吧!
2. 安装
安装 Oh My Zsh 首先需要安装 git 和 zsh,如果已经安装,请自行忽略。本文是基于 CentOS 介绍,其它 Linux 大致相同。
2.1 git 和 zsh 安装
# git
sodu yum install git
# zsh
sodu yum install zsh
2.2 Oh My Zsh 安装
Oh My Zsh 提供了 curl
和 wget
两种安装方式,选择任意一种自己方便的方式即可。
# via curl
sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# via wget
sudo sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
3. 配置使用
3.1 切换 Shell
安装完成之后,使用以下命令即可切换当前 Shell:
# chsh -s /bin/zsh
usermod $USER -s /usr/bin/zsh
退出当前终端连接,再次登入即可看到当前的 Shell 已经成功更改为 Oh My Zsh。
3.2 更改主题
Oh My Zsh 的配置文件路径为:~/.zshrc
,配置文件中的 ZSH_THEME
就是主题配置字段,如下默认为 robbyrussell
主题配色。更多主题配色可参考
Oh My Zsh 主题
,这里我推荐是用 ys
主题。
ZSH_THEME="robbyrussell"
3.3 其它 Linux 用户配置使用
Linux 其它用户想要使用 Oh My Zsh Shell,只需要拷贝当前用户家目录下的 ~/.zshrc
配置文件到当想要使用 Oh My Zsh Shell 用户的家目录下即可。需要注意的是配置文件中 Oh My Zsh 安装路径其它用户可以访问的到,所以最好更改为绝对路径,如下:
export ZSH=/home/ehlxr/.oh-my-zsh
4. 插件配置
Oh My Zsh 支持插件机制,配置插件可以大大简化相关繁琐重复的命令。例如默认开启的 git 插件,就可以使用以下图表中的简写命令了:
那如何配置其它的插件了?只需要在 Oh My Zsh 的配置文件 ~/.zshrc
中找到 plugins=(git)
字段,配置插件的名称即可,多个插件使用空格隔开。
那支持哪些插件了?Oh My Zsh 安装目录下的 plugins 目录下就是支持的所有插件。例如:ls ~/.oh-my-zsh/plugins
就可以看到所有支持的插件名称了。
Oh My Zsh 支持插件的简写说明可以参看 oh-my-zsh Plugins wiki 。
5. 常用命令简介
l
等价与ls -la
,查看当前目录下所有文件。- 打开目录不需要再敲
cd
,直接输入目录名即可。 TAB
提示更加聪明。- 聪明的历史记录,例如:敲下
ls
命令,按下键盘up
按键,就会带出以ls
开头的历史记录命令。
6. 常用插件
.zshrc
配置
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
export JAVA_6_HOME=$(/usr/libexec/java_home -v 1.8)
export JAVA_7_HOME=$(/usr/libexec/java_home -v 1.8)
export JAVA_8_HOME=$(/usr/libexec/java_home -v 1.8)
export ZSH=/Users/ehlxr/.oh-my-zsh
ZSH_THEME="ys"
plugins=(git wd autojump sublime sudo zsh-autosuggestions zsh-syntax-highlighting extract history-substring-search)
source $ZSH/oh-my-zsh.sh
alias h="hexo cl && hexo g && gulp && hexo d"
alias gacp='git add --all && git commit -v && git push'
alias gacpm='git add --all && git commit -m "update" && git push'
alias js='j --stat'
source ~/.bash_profile
6.1 git 插件
安装
直接在
.zshrc
中启用。效果
默认开启的插件,提供了大量
git
的alias
,参看 oh-my-zsh Plugins wiki 。
6.2 wd 插件
安装
直接在
.zshrc
中启用。效果
给常用目录添加一个标识,然后就可以快速的切换到常用的目录。参考 wd 。
6.3 autojump 插件
安装
# Mac,可以使用 brew 安装: brew install autojump # CentOS 可以使用 yum 安装: yum install -y epel-release yum install -y autojump-zsh
然后在
.zshrc
中启用。效果
autojump
按照你的使用频率记录路径,使得目录的跳转更为方便。参考 autojump
6.4 sublime插件
安装
直接在
.zshrc
中启用。效果
使用命令行打开
sublime
。 常用命令如下:st # 直接打开sublime st file_a # 用sublime打开文件 file st dir_a # 用sublime打开目录 dir stt # 在sublime打开当前目录,相当于 st .
6.5 sudo 插件
安装
直接在
.zshrc
中启用。效果
按
2
次esc
会在命令前自动输入sudo
6.6 zsh-autosuggestions 插件
安装
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
然后在
.zshrc
中启用。效果
根据历史记录智能自动补全命令,输入命令时会以暗色补全,按方向键右键完成输入。
6.7 zsh-syntax-highlighting 插件
安装
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
然后在
.zshrc
中启用。效果
fish shell
风格的语法高亮插件。输入的命令根据主题自动高亮。比如我的主题是ys-modified
,输入正确的命令是黄色,输入错误的命令是红色。
6.8 extract 插件
安装
直接在
.zshrc
中启用。效果
功能强大的解压插件,所有类型的文件解压一个命令
x
全搞定,再也不需要去记tar
后面到底是哪几个参数了。
6.9 history-substring-search 插件
历史命令搜索插件,如果和 zsh-syntax-highlighting
插件共用,要配置到语法高亮插件之后。
安装
git clone https://github.com/zsh-users/zsh-history-substring-search.git $ZSH_CUSTOM/plugins/history-substring-search
然后在
.zshrc
中启用。效果
上下键查询历史命令记录,可模糊匹配历史命令记录中任意字符串。