人生苦短,我用 zsh !
1 什么是 shell ?
在计算机科学中,shell(外壳)是一种「提供使用者使用界面」的软件,区别于 kernel(内核),和它类似的有 Windows 下的 cmd.exe。简单来说,shell 就是一个「命令解释器」,外壳通过接收用户的命令来调用内核执行。
同时 shell 本身也是一门脚本语言,可以交互式执行用户编写的一系列命令。我们常常会写一些 shell 脚本,做一些自动化的工作。
通常情况下,shell 被分为两大类:
- 图形界面 shell (GUI shell)
- 命令行式 shell (CLI shell)
Windows Explorer 是一个典型的图形界面 shell,而我们常常说的 shell 一般是指 CLI shell ,在下文中如果无特别说明,shell 就是指 CLI shell。zsh 就是 CLI shell 的一种,除此之外还有 bash / sh / ksh 等,以及 Windows 下的 PowerShell 。
本文使用 Mac OS 作为演示环境,相同的命令一般在 Linux 下也能顺利执行。
打开命令行输入:
1 | cat /etc/shells |
可以看到当前系统中所有已经安装 shell 类型:
1 | List of acceptable shells for chpass(1). |
如果你对 Linux 有一定的了解就会知道,通常情况下 Linux 系统会把 bash 作为默认的系统 shell。bash 的全名为 Bourne Again SHell,Bourne 是某项工作的资助者的名字,以其命名了 Bourne shell。后来 GNU 成员为了 GNU / Linux 项目将先前的 Bourne shell 进行重新完善,就有了新的 Bourne Again Shell。为什么叫 Bourne Again Shell 呢?主要是Bourne Again
音同Born Again
,有「重生」之意。
2 zsh !!!
既然 bash 作为系统默认 shell,而且有 GNU 这样实力雄厚的开源大哥作为支持,自然也不会太差,那为什么要推荐用 zsh 呢?
主要是 zsh 有以下的优点:
- 命令提示
- 智能补全
- 色彩高亮
- 快速跳转
- 自动跳转
废话少说,先看东西。
1 | 安装 |
- 我现在启动了,为什么没有你说的那么厉害?
- 因为你还没配置好!
使用脚本自动配置
1 | cd ~ |
上面这部分可能因为网络原因无法成功。
1 | # 上面不行试试这个原始的 ohmyzsh |
更换一个非常棒的主题
1 | cd ~ |
接下来你就可以体验利器 zsh 的神奇之处,输入一些命令试试看吧~
3 插件
自动补全命令
1 | git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions |
autojump
1 | git clone https://github.com/joelthelion/autojump.git $ZSH_CUSTOM/plugins/autojump |