1. 序言
shell
的历史比较悠久,现在Linux系统下默认的shell
就是bash
。尽管如此,相信大家接触命令行多了之后,都会感到十分的不方便。国外的计算机操作者也是有同样的感觉。因此某位大神发明了zsh
,这个工具的有点是功能及其的强大,缺点是配置过于复杂。因此大神玩家玩转,而菜鸟玩家就只能望而兴叹了。 菜鸟玩家感慨的多了,就有大神站出来,为我们搞了一个oh-my-zsh
,同样强大然而设置起来却要简单多了!(当然,对于新手来说,还是很难懂)
我们普通玩家可以跳过前面的shell
直接来到oh-my-zsh
即可。
2. 安装
2.1. 安装前先查看当前用户使用的shell
echo $SHELL #查看当前用户shell
如上图所示,如果你不是zsh那么你就要看看你有没有安装shell了。
2.2. 查看系统安装的shells
cat etc/shells
如上图所示,我已经安装了zsh
如果你没有的话,那你就要开始下载并且安装zsh
了。
2.3. 安装zsh
oh-my-zsh
是基于zsh
的,所以我们先安装zsh
。
apt install -y zsh #ubuntu版本安装
yum install -y zsh #centos版本安装
brew install zsh # MAC版本安装
2
3
安装好了之后记得重新输入:
cat etc/shells
查看当前shell。
确认安装好了之后,让我们切换当前用户的默认shell
为zsh
。
chsh -s /bin/zsh
如果对chsh
命令不明白的话,可以输入chsh -h
来查看用途。
➜ ~ chsh -h
用法:chsh [选项] [登录名]
选项:
-h, --help 显示此帮助信息并退出
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 该用户帐号的新登录 shell
2
3
4
5
6
7
切换完成后记得重启服务器生效。
sudo reboot # 服务器重启命令
echo $SHELL # 重启后查看当前shell
2
安装完zsh
后我们开始安装oh-my-zsh
2.4. 安装oh-my-zsh
哦,通过在终端中运行以下命令之一来安装My Zsh。 您可以使用 curl
或 wget
, 通过命令行在计算机上安装该软件 。
2.4.1. [](#via-curl)via curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
2.4.2. [](#via-wget)via wget
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
2.4.3. [](#manual-inspection)Manual inspection
从您尚不了解的项目中检查安装脚本是一个好主意。 为此,您可以先下载安装脚本,仔细检查安装脚本,然后一切正常,然后运行它:
curl -Lo install.sh https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
sh install.sh
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 # 然后覆盖文件
2
如果你连接github
速度比较快的话,就不用使用这个加速了。
3. oh-my-zsh
主题更换
主题的配置文件在~/.zhsrc
.
使用:
sudo vim ~/.zshrc
打开文件后进行修改。修改完后输入下列命令更新配置生效:
source ~/.zshrc
3.1. 默认主题robbyrussell
一般来说,新手使用这个主题就可以了,不用去动。
https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
上面是主题的地址,喜欢哪个可以去选。我一般就使用默认的主题,以后大家有时间也可以去慢慢折腾。
系统自带主题放在目录~/.oh-my-zsh/themes
下。
高亮的就是你目前使用的主题。
由于是隐藏文件,记得使用ls -a
来查看。
3.2. 使用随机主题
ZSH_THEME="random"
在你的配置文件,将robbyrussell
修改为random
即可进入随机主题。每次进入之后他会随机给你安排一个主题。
3.2.1. 随机使用两个主题
如果您想从自己喜欢的主题列表中选择随机主题,请执行以下操作:
ZSH_THEME_RANDOM_CANDIDATES=(
"robbyrussell"
"agnoster"
)
2
3
4
如上所示,把对应的文件删掉,修改为以上内容即可。每次进入后他会随机在这两个主题里载入。如果有更多更喜欢的,可以按照格式在下面添加。
3.2.2. 屏蔽主题
如果只知道您不喜欢的主题,则可以将其类似地添加到黑名单中:
ZSH_THEME_RANDOM_BLACKLIST=(pygmalion tjkirch_mod)
4. oh-my-zsh
插件配置
4.1. 插件目录
oh-my-zsh
有几百个插件,很多插件都很细致化,大概有好几百个,而oh-my-zsh
也自带了很多插件。
你可以在~/.oh-my-zsh/plugins
目录中查看。
每个插件都自带一个README.md
自述文件,在安装插件前你可以进入插件目录查看。如果你有动手能力的话,你甚至可以徒手更改。
4.2. 使用插件的方法
sudo vim ~/.zshrc # 打开配置文件
如上,oh-my-zsh
的插件位置在上图所示。
如果你的插件比较多的话,他看起来会像这个样子。
plugins=( git bundler dotenv osx rake rbenv ruby )
如果你插件比较多话,建议你竖排显示,会比较直观。 例如,这可能开始看起来像这样:
plugins=(
git
bundler
dotenv
osx
rake
rbenv
ruby
)
2
3
4
5
6
7
8
9
4.2.1. 自带插件与外部插件的安装方法
4.2.1.1. 自带插件安装方法
oh-my-zsh
有许多自带插件,安装的时候只需要按照前面的格式,在后面加上,然后输入:
source ~/.zshrc
让配置生效即可。
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
即可。 掘金的大神已经总结好了z的用法,我这里直接粘贴过来,大家如果不过瘾可以去原帖看。
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
2
3
4
5
6
安装好后会提示你复制以下内容到!/.zshrc
[[ -s ~/.autojump/etc/profile.d/autojump.zsh ]] && . ~/.autojump/etc/profile.d/autojump.zsh
autoload -U compinit && compinit -u
2
然后记得在你的plugins
添加autojump
,出来后
source ~/.zshrc
即可使用。
使用方法:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
只要你使用过cd命令切换过的目录,你可以直接使用j命令跳转到该目录 如上所示,红字表示你直接跳转到的目录。
4.2.2.2. zsh-autosuggestions
命令建议补全插件
输入命令时候会给出建议,然后通过按键盘→
补全。
(预览图)
安装:
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
还是在~/.zshrc
中配置。
如上图所示。
配置完后记得
source ~/.zshrc
这样的话基本就生效了。
调色:
当你重新打开终端的时候可能看不到变化,可能你的字体颜色太淡了,我们把其改亮一些:
cd ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
vim zsh-autosuggestions.zsh # 修改 ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=10'
2
4.2.2.3. zsh-syntax-highlighting(命令语法高亮)
zsh-syntax-highlighting 插件可以使你终端输入的命令有语法高亮效果。
Before: After:
Before: After:
Before: After:
安装方法如下(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
2
3
2.在 Oh My Zsh 的配置文件 (~/.zshrc
)中设置:
plugins=(其他插件 zsh-syntax-highlighting)
3.运行 source ~/.zshrc
更新配置后重启
4.2.2.4. 目录增强插件——K
k是新的l,哟
k 是一个zsh脚本/插件,用于使目录列表更易读,在文件和目录上添加了一些颜色和一些git状态信息。
文件大小从绿色(较小(<1k))到红色(较大(> 1mb))分级。
人类可读的文件大小
的人类可读文件的大小可以通过使用显示 -h
标志,这就要求 numfmt
命令是可用的。 OS X /达尔文没有 numfmt
默认命令,因此GNU的coreutils需要安装,它提供 gnumfmt
的是 k
还将如有,请使用。 GNU coreutils可以通过 自制软件 安装在OS X上 :
brew install coreutils
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
2
3
然后作为插件加载到您的 .zshrc
plugins=(k)
补一张使用前和使用后的效果图。
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
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版本安装
2
3
4
5
安装好了记得更换默认shell:
chsh -s /bin/zsh
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 # 然后覆盖文件
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 ... ... )
类似这种位置,两种文件的摆放形式都行,看个人喜欢。
5.4.3. 修改完后操作
source ~/.zshrc
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补全插件
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
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)
插件配置如上。(由于autojump
设置有点复杂,就不追加在这里了)
然后输入:
source ~/.zshrc
即可大功告成。 后续的配置就要大家自己去设置了。