Zsh 简明教程
Zsh 简明教程
如果你是一名开发者,每天恐怕有大量时间要花在终端(Terminal)里。
大多数 Linux 系统和早期的 macOS 默认使用的 Shell 是 Bash。它虽然通用,但显得不够现代:自动补全不够智能、语法高亮缺失、配置繁琐。
今天要介绍的是 Zsh(Z Shell)。
它被称为 "终极 Shell",兼容 Bash,但提供了更强大的功能。从 macOS Catalina 开始,Zsh 已经成为了 Mac 的默认 Shell。
本文介绍如何快速上手 Zsh,以及如何通过 Oh My Zsh 让它变得极其好用。
一、 安装 Zsh
查看你的系统当前使用的 Shell,可以运行下面的命令:
echo $SHELL
如果输出 /bin/zsh,说明你已经在使用 Zsh 了。如果不是,你需要先安装它。
macOS
macOS 预装了 Zsh。如果你想安装最新版,可以使用 Homebrew:
brew install zsh
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install zsh
Linux (CentOS/RHEL)
sudo yum install zsh
安装完成后,需要将 Zsh 设置为默认 Shell:
chsh -s $(which zsh)
重启终端,你应该就能进入 Zsh 了。
二、 安装 Oh My Zsh
光有 Zsh 还不够,它的默认配置依然很简陋。Zsh 的真正威力在于它的生态系统。
Oh My Zsh 是一个开源的社区驱动框架,用来管理 Zsh 的配置。它提供了数千个插件和主题。
安装非常简单,运行下面的一行代码(需要 curl 或 wget):
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
安装完成后,你的终端提示符应该已经变了,看起来更丰富多彩。
Zsh 的配置文件位于用户主目录下的 .zshrc 文件中。
vim ~/.zshrc
三、 常用配置与插件
Oh My Zsh 的核心在于 Plugins(插件) 和 Themes(主题)。
3.1 修改主题
打开 .zshrc,找到 ZSH_THEME 这一行。
默认主题是 robbyrussell。如果你喜欢带有更多信息的(比如完整路径、Git 状态),推荐使用 ys 或者 agnoster。
# 修改为 ys 主题
ZSH_THEME="ys"
修改后,执行 source ~/.zshrc 生效。
3.2 必备插件
Oh My Zsh 默认启用了 git 插件(提供大量 Git 别名)。为了提高效率,我推荐安装以下两个 "杀手级" 插件。
1. zsh-autosuggestions (自动建议)
当你输入命令时,它会根据历史记录自动以灰色字体提示后续内容,按 → 键即可补全。
安装:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
2. zsh-syntax-highlighting (语法高亮)
命令输入正确显示绿色,错误显示红色,防止手误。
安装:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
启用插件
编辑 .zshrc,找到 plugins=(...) 这一行,将新插件加入括号中(注意插件名之间用空格分隔,不要用逗号):
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
z
)
注:z 是 Oh My Zsh 内置插件,用于快速跳转到访问过的目录,无需额外安装。
保存后,再次运行 source ~/.zshrc。
四、 常用操作清单
Zsh 大部分操作与 Bash 兼容,但它在导航和缩写上做了大量优化。
以下是 Zsh 最常用的快捷操作:
| 场景 | 命令/快捷键 | 说明 | 示例 |
|---|---|---|---|
| 智能补全 | Tab |
强大的补全,不只是文件名,还支持参数 | 输入 git c 按 Tab,自动列出 checkout/commit 等 |
| 历史搜索 | Ctrl + r |
交互式搜索历史命令 | 按下后输入关键词,回车执行 |
| 路径别名 | .. |
返回上一级目录(等同 cd ..) |
直接输入 .. |
| 多级跳转 | ... / .... |
返回上两级 / 上三级目录 | 直接输入 ... |
| 快速跳转 | d |
列出最近访问过的目录栈,按数字跳转 | 输入 d,然后输入 1 跳转到列表1的目录 |
| 模糊跳转 | z [关键词] |
跳转到包含关键词的历史目录(需启用 z 插件) | z work 可能跳转到 /home/user/code/workspace |
| 后缀别名 | alias -s |
针对文件后缀定义打开方式 | alias -s py=vim,输入 a.py 直接用 vim 打开 |
| 通配符 | ** |
递归匹配子目录 | ls **/*.log 列出当前及子目录下所有 log 文件 |
五、 结语
工具的选择,往往决定了效率的上限。
Zsh 配合 Oh My Zsh,能够极大地提升命令行操作的体验。一旦习惯了它的智能补全和跳转功能,你就很难再回得去 Bash 了。
更多高级用法,可以参考以下链接。

浙公网安备 33010602011771号