0%

Mac 的终极 Shell -- ZSH

前言

目前常用的 Linux 系统和 OS X 系统的默认 Shell 都是 bash,但是真正强大的 Shell 是深藏不露的 zsh, 这货绝对是马车中的跑车,跑车中的飞行车,史称『终极 Shell』,但是由于配置过于复杂,所以初期无人问津,很多人跑过来看看 zsh 的配置指南,什么都不说转身就走了。直到有一天,国外某位大牛开源出一个能够让你快速上手的 zsh 项目,叫做『oh my zsh』,使得 zsh 逐渐流行起来。

ZSH

安装 zsh。

1
brew install zsh

安装完后在 Terminal 的设置中设置默认使用 zsh。

8F9622E7-901E-46F0-94D7-B5E7AEE04C08

Oh My Zsh

oh-my-zsh 是最为流行的 zsh 配置文件,提供了完善的插件体系,相关的文件在~/.oh-my-zsh/plugins目录下。GitHub 链接

安装 oh-my-zsh:

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

安装完成后source ~/.zshrc使之生效。

Configuration

.zshrc中添加配置,其中可以自定义alias用于简化命令,这里贴出我的配置。alias -s意为 define suffix aliases,譬如命令行输入xxx.gz就相当于tar -xzvf xxx.gz

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# compress relatived
alias -s gz='tar -xzvf'
alias -s tgz='tar -xzvf'
alias -s zip='unzip'
alias -s bz2='tar -xjvf'

# sublime text
alias subl="open -a 'Sublime Text'"
alias -s php=subl
alias -s rb=subl
alias -s html=crm
alias -s xml=subl
alias -s txt=subl
alias -s hbs=subl

# macdown
alias macdown="open -a MacDown"
alias -s md=macdown

# git relatived
alias gpom='git push -u origin master'
alias grao='git remote add origin'

# others
alias his='history'
alias la='ls -a'
alias ll='ls -alh'

添加如下配置后,可以使用subl a.txt或者直接输入a.txt通过 Sublime 打开文本文件。

1
2
alias subl="open -a 'Sublime Text'"
alias -s txt=subl

另外,添加了两个常用 Git 命令的缩写,其实 Oh My Zsh 已经包含了许多 Git 的简写命令,比如常用的gstgit status的简写。可以使用命令alias查看还有哪些简写命令。

插件

oh-my-zsh 有很多提升命令行效率的实用工具,我目前使用了如下四个插件,确实在使用过程中体验到效率的提升。安装完成后在.zshrc中打开插件,其中 git 是默认安装并开启的插件,前面也提到有许多简写命令,这里不多赘述,请自行查阅。

1
2
3
4
5
6
plugins=(
git
Z
zsh-syntax-highlighting
zsh-autosuggestions
)

Z

Z 插件,功能和 autojump 类似,使用z {path}实现目录间快速跳转,并且作为 oh-my-zsh 的内置组件,只需要在.zshrc中打开即可。

如图,Z 插件会记录你前往的目录,并根据进入次数计算权重(z -r查看权重),以后再进入该目录只用z ddd,会进行模糊匹配,前往权重最高的目录。

678A0E3A-EDE9-4D9B-AA39-A6E14DC6E2EC

zsh-syntax-highlighting

Zsh 语法高亮插件。安装后终端输入的命令正确会绿色高亮显示,输入错误会显示红色,用于在执行命令前检查是否有语法错误。

82881CCA-A343-45D1-9A1D-4DD8E77E1B78

安装 zsh-syntax-highlighting,完成后在.zshrc中添加。

1
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

zsh-autosuggestions

Zsh 命令自动补全插件,效率神器。如图输入命令时,会给出建议的命令(灰色部分)按键盘 补全。

8B1B4FDE-F810-4E90-B20A-37274ABDDFDE

安装 zsh-autosuggestions,完成后在.zshrc中添加。

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

参考