Published on

zsh 安装与配置:9步打造高效命令行

Authors
  • avatar
    Name
    工程师Ali
    Twitter

zsh 是 Ali 日常开发过程中最常用的 shell,它大幅提升了开发效率,也不再为忘记命令而苦恼。配合使用 oh-my-zsh 在短时间内就可以配置出一个高效的命令行,推荐大家使用。这篇文章记录了 Ali 自用的 zsh 安装配置流程,共 9 步,10 分钟内就可以完成。

Table of Contents

zsh 介绍

zsh 是一个兼容 bash 的 shell,相较 bash 具有以下优点:

  • Tab 补全功能强大。命令、命令参数、文件路径均可以补全。
  • 插件丰富。快速输入以前使用过的命令、快速跳转文件夹、显示系统负载这些都可以通过插件实现。
  • 主题丰富。
  • 可定制性高。

关于 zsh 的更多的信息,可以访问 zsh.org查看。

安装 zsh

每个操作系统安装方式不一 ,这里只介绍我用过的操作系统的安装方法。

macOS:

brew install zsh

ubuntu:

sudo apt-get install zsh

ArchLinux/Manjaro

sudo pacman -S zsh

若你使用的是其他发行版本,则使用对应的包管理器安装即可。 安装好后,使用 cat /etc/shells 查看系统可以用的 shell: 查看系统可用 shell

使用 chsh -s /bin/zsh 命令将 zsh 设置为系统默认 shell。新开一个 Shell Session,就可以开始使用 zsh 了。

第一次运行 zsh 时会进入如下的配置引导页面: zsh 配置引导页面

输入 q 会直接退出配置引导,下一次运行 zsh 时会再次进入配置引导。

输入 0,也会退出配置引导,但是会在当前用户目录生成一个空白的文件 .zshrc,下一次运行时就不会再进入配置引导。下一次运行时是否再进入配置引导,取决于用户目录下是否存在.zshrc 文件。

输入输入 1 后,就开始进行配置,如下: zsh 配置引导提示

未经配置的 zsh,看起来很朴素: 默认 zsh 主题样式

由于 zsh 配置较为复杂,推荐大家使用配置管理工具来配置 zsh,花很少时间就可以得到一个称手的 zsh。下面介绍如何使用 oh-my-zsh 来修改 zsh 的主题和安装常用的插件。

安装 oh-my-zsh

安装 oh-my-zsh 之前,需要确保本地已经安装了 git。

使用 curl 下载脚本并安装:

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

或者使用 wget 下载脚本并安装:

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

然后同意使用 Oh-my-zsh 的配置模板覆盖已有的 .zshrc安装 oh-my-zsh

在配置过程中,脚本会提示将 zsh 设为默认的 shell:

设置 zsh 为默认shell

这样就安装好 oh-my-zsh 了,下面我们开始通过 oh-my-zsh 来配置 zsh 。

配置 zsh

修改主题

https://github.com/ohmyzsh/ohmyzsh/wiki/Themes 中查看内置的主题样式和对应的主题名。这些内置主题已经放在 ~/.oh-my-zsh/themes 目录下,不需要再下载。

oh-my-zsh 内置主题

除了内置主题外,还可以选择其他开源的主题,强烈推荐尝试一下 powerlevel10k 主题,一个顶十个,项目地址为:https://github.com/romkatv/powerlevel10k

oh-my-zsh 安装这个款主题的方法:使用 git 将文件 clone 只指定文件夹 ~/.oh-my-zsh/custom/themes/powerlevel10k ,命令如下:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

使用 vim 编辑 .zshrc,键入以下内容并保存:

ZSH_THEME="powerlevel10k/powerlevel10k"

最后,执行 source ~/.zshrc 配置生效,这时会提示对主题进行配置,按照提示进行即可。

安装插件

oh-my-zsh 已经内置了 git 插件,内置插件可以在 ~/.oh-my-zsh/plugins 中查看 ,下面介绍一下我常用的三个插件,更多插件可以在 awesome-zsh-plugins 里查看。

zsh-autosuggestions

zsh-autosuggestions 是一个命令提示插件,,当你输入命令时,会自动推测你可能需要输入的命令,按下右键可以快速采用建议。效果如下:

zsh-autosuggestions 插件效果

安装步骤:

  1. 把插件下载到本地的 ~/.oh-my-zsh/custom/plugins 目录:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
  1. .zshrc 中,把 zsh-autosuggestions 加入插件列表:
plugins=(
    # other plugins...
    zsh-autosuggestions  # 插件之间使用空格隔开
)
  1. 开启新的 Shell 或执行 souce ~/.zshrc,就可以开始体验插件。

zsh-syntax-highlighting

zsh-syntax-highlighting 是一个命令语法校验插件,在输入命令的过程中,若指令不合法,则指令显示为红色,若指令合法就会显示为绿色。效果如下: zsh-syntax-highlighting 插件效果

安装步骤:

  1. 把插件下载到本地的 ~/.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
  1. .zshrc 中,把 zsh-syntax-highlighting 加入插件列表:
plugins=(
    # other plugins...
    zsh-autosuggestions
    zsh-syntax-highlighting
)
  1. 开启新的 Shell 或执行 souce ~/.zshrc,就可以开始体验插件了。

z

z 是一个文件夹快捷跳转插件,对于曾经跳转过的目录,只需要输入最终目标文件夹名称,就可以快速跳转,避免再输入长串路径,提高切换文件夹的效率。效果如下:

z 插件效果

安装步骤:

  1. 由于 oh-my-zsh 内置了 z 插件,所以只需要在 .zshrc 中,把 z 加入插件列表:
plugins=(
    # other plugins...
    zsh-autosuggestions
    zsh-syntax-highlighting
    z
)
  1. 开启新的 Shell 或执行 souce ~/.zshrc,就可以开始体验插件了。

设置 alias

zsh 支持为较长命令设置一个别名,这样在使用时可以快捷输入。

这里以 cd ~/projects/alicode/blog 这个命令来举例:

  1. .zshrc 中键入:
alias cdblog="cd ~/projects/alicode/blog"
  1. 开启新的 Shell 或 souce ~/.zshrc,以使配置生效。生效后就可以使用 cdblog 进行跳转了。

除了自己设置 alias 之外,一些插件也内置内很多 alias。最常用的是 git 插件内置的 alias。例如,ga 就代表 git add,更多 git 插件内置 alias 可以在 git plugin alias 中查看。

其他

遇事不决,多敲 Tab。