0%

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…

[Oh My ZSH!][1]

1. Oh My Zsh 简介

无意中看见了 Linux 的一款 Shell,相比于 Bash 极其美艳,决定入坑试水一下,不试不知道,一试绝对有惊喜,不仅外观美艳而且功能强大,那还有不替换 Bash 的理由吗?搞起搞起……

Linux 提供了很多种 Shell ,想要查看系统有安装哪些 Shell 可以通过命令:chsh -l 或者 cat /etc/shells 进行查看。

1
2
3
4
5
6
7
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 安装

1
2
3
4
5
# git
sodu yum install git

# zsh
sodu yum install zsh

2.2 Oh My Zsh 安装

Oh My Zsh 提供了 curlwget 两种安装方式,选择任意一种自己方便的方式即可。

1
2
3
4
5
# 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:

1
2
3
# 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 主题。

1
ZSH_THEME="robbyrussell"

3.3 其它 Linux 用户配置使用

Linux 其它用户想要使用 Oh My Zsh Shell,只需要拷贝当前用户家目录下的 ~/.zshrc 配置文件到当想要使用 Oh My Zsh Shell 用户的家目录下即可。需要注意的是配置文件中 Oh My Zsh 安装路径其它用户可以访问的到,所以最好更改为绝对路径,如下:

1
export ZSH=/home/ehlxr/.oh-my-zsh

4. 插件配置

Oh My Zsh 支持插件机制,配置插件可以大大简化相关繁琐重复的命令。例如默认开启的 git 插件,就可以使用以下图表中的简写命令了:

Oh-My-Zsh Git Aliases

那如何配置其它的插件了?只需要在 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 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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 中启用。

6.2 wd 插件

  • 安装

    直接在 .zshrc 中启用。

  • 效果

    给常用目录添加一个标识,然后就可以快速的切换到常用的目录。参考 wd

6.3 autojump 插件

  • 安装

    1
    2
    3
    4
    5
    6
    # 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
    常用命令如下:

    1
    2
    3
    4
    st          # 直接打开sublime
    st file_a # 用sublime打开文件 file
    st dir_a # 用sublime打开目录 dir
    stt # 在sublime打开当前目录,相当于 st .

6.5 sudo 插件

  • 安装

    直接在 .zshrc 中启用。

  • 效果

    2esc 会在命令前自动输入 sudo

6.6 zsh-autosuggestions 插件

  • 安装

    1
    git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

    然后在 .zshrc 中启用。

  • 效果

    根据历史记录智能自动补全命令,输入命令时会以暗色补全,按方向键右键完成输入。

6.7 zsh-syntax-highlighting 插件

  • 安装

    1
    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 插件共用,要配置到语法高亮插件之后。

  • 安装

    1
    git clone https://github.com/zsh-users/zsh-history-substring-search.git $ZSH_CUSTOM/plugins/history-substring-search

    然后在 .zshrc 中启用。

  • 效果

    上下键查询历史命令记录,可模糊匹配历史命令记录中任意字符串。


欣赏此文?求鼓励,求支持!
Title - Artist
0:00