1. 序言

shell的历史比较悠久,现在Linux系统下默认的shell就是bash。尽管如此,相信大家接触命令行多了之后,都会感到十分的不方便。国外的计算机操作者也是有同样的感觉。因此某位大神发明了zsh,这个工具的有点是功能及其的强大,缺点是配置过于复杂。因此大神玩家玩转,而菜鸟玩家就只能望而兴叹了。 菜鸟玩家感慨的多了,就有大神站出来,为我们搞了一个oh-my-zsh,同样强大然而设置起来却要简单多了!(当然,对于新手来说,还是很难懂)

我们普通玩家可以跳过前面的shell直接来到oh-my-zsh即可。

2. 安装

2.1. 安装前先查看当前用户使用的shell

echo $SHELL  #查看当前用户shell
1

20200707012133_17192770faa78d432afe4bb0e63c1b04.png 如上图所示,如果你不是zsh那么你就要看看你有没有安装shell了。

2.2. 查看系统安装的shells

cat etc/shells
1

20200707012245_a13ed2b95c135c86c9a124cd25a0676a.png

如上图所示,我已经安装了zsh如果你没有的话,那你就要开始下载并且安装zsh了。

2.3. 安装zsh

oh-my-zsh是基于zsh的,所以我们先安装zsh

apt install -y zsh #ubuntu版本安装
yum install -y zsh #centos版本安装
brew install zsh # MAC版本安装
1
2
3

安装好了之后记得重新输入:

cat etc/shells
1

查看当前shell。 确认安装好了之后,让我们切换当前用户的默认shellzsh

chsh -s /bin/zsh
1

如果对chsh命令不明白的话,可以输入chsh -h来查看用途。

➜  ~ chsh -h
用法:chsh [选项] [登录名]

选项:
  -h, --help                    显示此帮助信息并退出
  -R, --root CHROOT_DIR         chroot 到的目录
  -s, --shell SHELL             该用户帐号的新登录 shell
1
2
3
4
5
6
7

切换完成后记得重启服务器生效。

sudo reboot # 服务器重启命令
echo $SHELL # 重启后查看当前shell
1
2

安装完zsh后我们开始安装oh-my-zsh

2.4. 安装oh-my-zsh

哦,通过在终端中运行以下命令之一来安装My Zsh。 您可以使用 curlwget , 通过命令行在计算机上安装该软件 。

2.4.1. [](#via-curl)via curl

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
1

2.4.2. [](#via-wget)via wget

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

2.4.3. [](#manual-inspection)Manual inspection

从您尚不了解的项目中检查安装脚本是一个好主意。 为此,您可以先下载安装脚本,仔细检查安装脚本,然后一切正常,然后运行它:

curl -Lo install.sh https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
sh install.sh
1
2

如果没有安装git的话可能会报错,所以记得提前安装git

2.4.4. 国内用户镜像加速安装

git clone https://github.91chifun.workers.dev//https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh #先下载
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc # 然后覆盖文件
1
2

如果你连接github速度比较快的话,就不用使用这个加速了。

3. oh-my-zsh主题更换

主题的配置文件在~/.zhsrc. 使用:

sudo vim ~/.zshrc
1

打开文件后进行修改。修改完后输入下列命令更新配置生效:

source ~/.zshrc
1

3.1. 默认主题robbyrussell

20200707022637_c0da39c210df55df49c798ca4b179aba.png

一般来说,新手使用这个主题就可以了,不用去动。 https://github.com/ohmyzsh/ohmyzsh/wiki/Themes 上面是主题的地址,喜欢哪个可以去选。我一般就使用默认的主题,以后大家有时间也可以去慢慢折腾。 系统自带主题放在目录~/.oh-my-zsh/themes下。 20200707025927_678f7fe5f30622dbf6bb24ba7f4fc722.png 高亮的就是你目前使用的主题。 由于是隐藏文件,记得使用ls -a来查看。

3.2. 使用随机主题

ZSH_THEME="random" 在你的配置文件,将robbyrussell修改为random即可进入随机主题。每次进入之后他会随机给你安排一个主题。

3.2.1. 随机使用两个主题

如果您想从自己喜欢的主题列表中选择随机主题,请执行以下操作:

ZSH_THEME_RANDOM_CANDIDATES=(
  "robbyrussell"
  "agnoster"
)
1
2
3
4

如上所示,把对应的文件删掉,修改为以上内容即可。每次进入后他会随机在这两个主题里载入。如果有更多更喜欢的,可以按照格式在下面添加。 20200707023234_5ab7bfb65633bf4f0d56a3b5ddc7b516.png

3.2.2. 屏蔽主题

如果只知道您不喜欢的主题,则可以将其类似地添加到黑名单中:

ZSH_THEME_RANDOM_BLACKLIST=(pygmalion tjkirch_mod)
1

4. oh-my-zsh插件配置

4.1. 插件目录

oh-my-zsh有几百个插件,很多插件都很细致化,大概有好几百个,而oh-my-zsh也自带了很多插件。 你可以在~/.oh-my-zsh/plugins目录中查看。

20200707030244_6ffb350a89c42e51c875c022c589b3ca.png

每个插件都自带一个README.md自述文件,在安装插件前你可以进入插件目录查看。如果你有动手能力的话,你甚至可以徒手更改。

4.2. 使用插件的方法

sudo vim ~/.zshrc # 打开配置文件
1

20200707023602_6e06497fb2c17b277756e11439b21923.png 如上,oh-my-zsh的插件位置在上图所示。

如果你的插件比较多的话,他看起来会像这个样子。

plugins=( git bundler dotenv osx rake rbenv ruby )
1

如果你插件比较多话,建议你竖排显示,会比较直观。 例如,这可能开始看起来像这样:

plugins=(
  git
  bundler
  dotenv
  osx
  rake
  rbenv
  ruby
)
1
2
3
4
5
6
7
8
9

4.2.1. 自带插件与外部插件的安装方法

4.2.1.1. 自带插件安装方法

oh-my-zsh有许多自带插件,安装的时候只需要按照前面的格式,在后面加上,然后输入:

source ~/.zshrc
1

让配置生效即可。

4.2.1.2. 外部插件安装方法

外部插件一般需要下载,大多数插件一般都在github有地址。 这里有一部分精选的插件名单,有需要的可以直接去下载: https://project-awesome.org/unixorn/awesome-zsh-plugins

4.2.2. 最常规的插件介绍

插件有很多,这里主要给大家介绍几种大家比较常见的插件:

4.2.2.1. 目录跳转插件

4.2.2.1.1. z插件的安装与使用

z是小写的,属于oh-my-zsh自带的插件。安装方法很简单,直接在plugins后面添加z,然后

source ~/.zshrc
1

即可。 掘金的大神已经总结好了z的用法,我这里直接粘贴过来,大家如果不过瘾可以去原帖看。 20200707110114_34e6361c5a76abc397608fd1bde8580e.png

4.2.2.1.2. autojump插件的安装与使用

手动安装:

git clone git://github.com/wting/autojump.git #下载链接
cd autojump
./install.py 
# 卸载的话使用 ./uninstall.py
# 国内用户可以用下面这个加速下载地址,能下载就无视下面这条
git clone https://github.91chifun.workers.dev//https://github.com/wting/autojump.git 
1
2
3
4
5
6

20200707111415_e7a0f0344a3b1cc325428c44d4d16d87.png

安装好后会提示你复制以下内容到!/.zshrc

[[ -s ~/.autojump/etc/profile.d/autojump.zsh ]] && . ~/.autojump/etc/profile.d/autojump.zsh
autoload -U compinit && compinit -u
1
2

然后记得在你的plugins添加autojump,出来后

source ~/.zshrc
1

即可使用。

使用方法: autojump -h 帮助命令,可以查看主要的参数和用法

➜  ~ autojump --help
usage: autojump [-h] [-a DIRECTORY] [-i [WEIGHT]] [-d [WEIGHT]] [--complete]
                [--purge] [-s] [-v]
                [DIRECTORY [DIRECTORY ...]]

Automatically jump to directory passed as an argument.

positional arguments:
  DIRECTORY             directory to jump to

optional arguments:
  -h, --help            show this help message and exit
  -a DIRECTORY, --add DIRECTORY
                        add path
  -i [WEIGHT], --increase [WEIGHT]
                        increase current directory weight
  -d [WEIGHT], --decrease [WEIGHT]
                        decrease current directory weight
  --complete            used for tab completion
  --purge               remove non-existent paths from database
  -s, --stat            show database entries and their key weights
  -v, --version         show version information
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

只要你使用过cd命令切换过的目录,你可以直接使用j命令跳转到该目录 20200707112507_d2746c820a47308deb6a7ddd972dd708.png 如上所示,红字表示你直接跳转到的目录。

4.2.2.2. zsh-autosuggestions命令建议补全插件

输入命令时候会给出建议,然后通过按键盘补全。 20200707115230_ffa6f622e381f0fb4d51ce6a9f8c5aec.png (预览图)

安装:

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

还是在~/.zshrc中配置。 20200707115334_951f5f5febe15139232a7053fef00c55.png 如上图所示。 配置完后记得

source ~/.zshrc

这样的话基本就生效了。

调色:

当你重新打开终端的时候可能看不到变化,可能你的字体颜色太淡了,我们把其改亮一些:

cd ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
vim zsh-autosuggestions.zsh # 修改 ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=10'
1
2

4.2.2.3. zsh-syntax-highlighting(命令语法高亮)

zsh-syntax-highlighting 插件可以使你终端输入的命令有语法高亮效果。

Before: clipboard.png  After:   clipboard.png

Before: clipboard.png  After:   clipboard.png

Before: clipboard.png  After:   clipboard.png

安装方法如下(oh-my-zsh 插件管理的方式安装):

1.Clone项目到$ZSH_CUSTOM/plugins文件夹下 (默认为 ~/.oh-my-zsh/custom/plugins)

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# 5. 国内加速下载地址
git clone https://github.91chifun.workers.dev//https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
1
2
3

2.在 Oh My Zsh 的配置文件 (~/.zshrc)中设置:

plugins=(其他插件 zsh-syntax-highlighting)
1

3.运行 source ~/.zshrc 更新配置后重启

4.2.2.4. 目录增强插件——K

k是新的l,哟

k 是一个zsh脚本/插件,用于使目录列表更易读,在文件和目录上添加了一些颜色和一些git状态信息。

仓库git状态

仓库工作树git状态

文件大小从绿色(较小(<1k))到红色(较大(> 1mb))分级。

人类可读的文件大小

的人类可读文件的大小可以通过使用显示 -h 标志,这就要求 numfmt 命令是可用的。 OS X /达尔文没有 numfmt 默认命令,因此GNU的coreutils需要安装,它提供 gnumfmt 的是 k 还将如有,请使用。 GNU coreutils可以通过 自制软件 安装在OS X上 :

brew install coreutils

1
2

文件重量颜色

日期随着年龄而消失。

烂日期

安装 将k克隆到您的自定义插件仓库中

git clone https://github.com/supercrabtree/k $ZSH_CUSTOM/plugins/k
# 6. 国内用户加速地址
git clone https://github.91chifun.workers.dev//https://github.com/supercrabtree/k.git $ZSH_CUSTOM/plugins/k
1
2
3

然后作为插件加载到您的 .zshrc

plugins=(k)
1

补一张使用前和使用后的效果图。 20200707182745_4a5e7f3f8bf1558750046ef66a0b8023.png

4.2.2.5. git-flow补全插件

git-flow的命令很长,同时系统一般也没有做自动补全,因此加一个非常有必要。

安装

git clone https://github.com/bobthecow/git-flow-completion ~/.oh-my-zsh/custom/plugins/git-flow-completion
# 7. 国内用户加速地址
git clone https://github.91chifun.workers.dev//https://github.com/bobthecow/git-flow-completion.git ~/.oh-my-zsh/custom/plugins/git-flow-completion
1
2
3

安装好后,编辑~/.zshrc然后保存,并且source生效。

5. 总结

5.1. 使用oh-my-zsh前先下载或者查看zsh有没有安装

cat etc/shells 
# 不同版本下安装zsh
apt install -y zsh #ubuntu版本安装
yum install -y zsh #centos版本安装
brew install zsh # MAC版本安装
1
2
3
4
5

安装好了记得更换默认shell:

chsh -s /bin/zsh
1

5.2. 安装oh-my-zsh

sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 国内用户镜像加速下载安装
git clone https://github.91chifun.workers.dev//https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh #先下载
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc # 然后覆盖文件
1
2
3
4

5.3. 主题

一般默认主题即可,有一定技巧后可以选择去更换主题。

5.4. 插件的下载、安装与设置

5.4.1. 下载位置

系统自带插件位置在/home/ubuntu/.oh-my-zsh/plugins 下载的的自定义插件安装位置在/home/ubuntu/.oh-my-zsh/custom/plugins 放在这两个位置都能生效。

5.4.2. 安装位置

~/.zshrc文件里的

plugins =(git z ... ... )
1

20200707232947_bba85a61228d5fd5f5ce0372c5da16bf.png

类似这种位置,两种文件的摆放形式都行,看个人喜欢。

5.4.3. 修改完后操作

source ~/.zshrc
1

5.4.4. 常用插件批量下载

git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
# 代码补全插件
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# 语法高亮插件
git clone https://github.com/supercrabtree/k $ZSH_CUSTOM/plugins/k
# 目录增强插件
git clone https://github.com/bobthecow/git-flow-completion ~/.oh-my-zsh/custom/plugins/git-flow-completion
# git-flow补全插件
1
2
3
4
5
6
7
8

github速度连接比较慢的可以用以下加速地址替换

# 代码补全插件
git clone https://github.91chifun.workers.dev//https://github.com/wting/autojump.git 
# 语法高亮插件
git clone https://github.91chifun.workers.dev//https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# 目录增强插件
git clone https://github.91chifun.workers.dev//https://github.com/supercrabtree/k.git $ZSH_CUSTOM/plugins/k
# git-flow补全插件
git clone https://github.91chifun.workers.dev//https://github.com/bobthecow/git-flow-completion.git ~/.oh-my-zsh/custom/plugins/git-flow-completion
1
2
3
4
5
6
7
8

上述文件下载后,进行配置

5.4.5. ~/.zshrc默认配置

plugins=(z git autojump zsh-autosuggestions zsh-syntax-highlighting zsh-completions k git-flow-completion)
1

插件配置如上。(由于autojump设置有点复杂,就不追加在这里了) 然后输入:

source ~/.zshrc
1

即可大功告成。 后续的配置就要大家自己去设置了。