Zsh 安装与配置:使用 Oh My Zsh 打造高效终端

作为程序员,终端是我们每天都要面对的工具。一个好用且美观的终端配置能显著提升工作效率和心情。本文将介绍如何安装 Zsh 并配合 Oh My Zsh 框架来打造一个高效、美观的终端环境。

一、环境配置

1.1 安装基础工具

首先更新软件源,安装 zsh、git 和 curl:

1
2
3
4
5
# 更新软件源
sudo apt update && sudo apt upgrade -y

# 安装 zsh git curl
sudo apt install zsh git curl -y

将 zsh 设置为默认终端(注意不要加 sudo):

1
chsh -s /bin/zsh

1.2 安装 Oh My Zsh

Oh My Zsh 是一个管理 zsh 配置的开源框架,提供了丰富的主题和插件生态。官方网站:https://ohmyz.sh/

提供了多种安装方式:

方式 命令
curl sh -c "$(curl -fsSL https://install.ohmyz.sh/)"
wget sh -c "$(wget -O- https://install.ohmyz.sh/)"
fetch sh -c "$(fetch -o - https://install.ohmyz.sh/)"

如果访问 GitHub 较慢,可以使用国内镜像:

1
2
3
4
5
# Gitee 镜像(curl)
sh -c "$(curl -fsSL https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"

# Gitee 镜像(wget)
sh -c "$(wget -O- https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh)"

安装过程中会询问是否允许 Oh My Zsh 的配置模板覆盖现有的 .zshrc,选择同意即可。

Oh My Zsh 安装成功

1.3 迁移 .bashrc 配置(可选)

如果之前在 .bashrc 中有自定义配置(如环境变量、别名等),需要手动迁移到 .zshrc

1
2
3
4
5
6
7
8
# 查看 bash 配置
cat ~/.bashrc

# 编辑 zsh 配置文件,将需要的配置粘贴进去
nano ~/.zshrc

# 加载新配置
source ~/.zshrc

如果需要为 root 用户配置,先执行 sudo su 切换到 root,再执行上述命令。

二、配置主题

2.1 自定义主题

Oh My Zsh 支持丰富的主题配置。可以通过修改 ~/.zshrc 中的 ZSH_THEME 变量来切换主题:

1
2
3
4
5
6
7
nano ~/.zshrc

# 修改主题配置
ZSH_THEME="robbyrussell" # 默认主题

# 加载新配置
source ~/.zshrc

主题配置

2.2 查看内置主题

Oh My Zsh 内置了大量主题,可以在 官方 Wiki 查看所有主题预览,也可以直接查看本地主题文件:

1
cd ~/.oh-my-zsh/themes && ls

内置主题列表

2.3 推荐主题:Powerlevel10k

如果你追求极致的终端美化,强烈推荐 Powerlevel10k 主题。它拥有出色的自定义能力和美观的界面效果,是目前 Oh My Zsh 社区中最受欢迎的主题之一。

安装:

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

国内用户可使用 Gitee 镜像加速:

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

启用主题:

编辑 ~/.zshrc,设置:

1
ZSH_THEME="powerlevel10k/powerlevel10k"

保存后重新打开终端,Powerlevel10k 会自动启动配置向导,按照提示一步步选择你喜欢的样式即可。

Powerlevel10k 主题效果

三、安装插件

Oh My Zsh 的强大之处在于其丰富的插件生态。内置的 git 插件会随 Oh My Zsh 一起安装,以下是一些非常实用的插件推荐。

3.1 zsh-autosuggestions(命令自动补全)

这个插件会根据你的历史命令记录,在输入时自动提示可能的命令。按下 右方向键 即可接受建议。

安装:

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

国内加速:

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

zsh-autosuggestions 效果

3.2 zsh-syntax-highlighting(语法高亮)

这个插件能对命令进行实时语法校验:输入正确的命令显示为绿色,输入错误的命令显示为红色,避免执行错误命令。

安装:

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

国内加速:

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

zsh-syntax-highlighting 效果

3.3 z(目录快速跳转)

z 是 Oh My Zsh 内置的插件,无需额外安装。它能记住你访问过的目录,之后只需输入目录名称的一部分,就能快速跳转到目标目录。

例如你之前访问过 /home/user/projects/my-app,之后只需输入 z my-app 即可直接跳转。

z 插件效果

3.4 extract(万能解压)

extract 也是内置插件,它让你不再需要记住各种压缩格式对应的解压命令。不管是 .tar.gz.zip.rar 还是 .7z,统一使用 x 命令即可解压:

1
2
3
x filename.tar.gz
x filename.zip
x filename.rar

extract 插件效果

3.5 web-search(终端搜索)

web-search 是内置插件,支持在终端中直接进行搜索引擎查询,会自动打开浏览器跳转到搜索结果页面。

1
2
3
google zsh 配置教程
baidu oh my zsh 插件
bing terminal 美化

web-search 插件效果

3.6 启用插件

安装完插件后,需要在 ~/.zshrc 中启用它们。找到 plugins 配置项,将需要的插件添加进去:

1
plugins=(git zsh-autosuggestions zsh-syntax-highlighting z extract web-search)

插件配置

保存后执行以下命令使配置生效:

1
source ~/.zshrc

四、实用技巧

4.1 Root 用户配置

建议为 root 用户使用不同的主题,便于区分当前身份:

1
2
3
# root 用户的 ~/.zshrc
ZSH_THEME="ys"
plugins=(git zsh-autosuggestions zsh-syntax-highlighting z extract web-search)

4.2 配置终端代理

如果你使用代理工具,可以在 ~/.zshrc 中添加快捷的代理开关函数,方便 curl、wget、git 等工具走代理:

1
2
3
4
5
6
7
8
9
10
11
# 开启代理
proxy () {
export ALL_PROXY="socks5://127.0.0.1:1089"
export all_proxy="socks5://127.0.0.1:1089"
}

# 关闭代理
unproxy () {
unset ALL_PROXY
unset all_proxy
}

请根据你实际的代理端口修改 1089

使用时只需在终端输入 proxy 开启代理,输入 unproxy 关闭代理。

代理配置

WSL 用户的代理配置

如果你在 WSL(Windows Subsystem for Linux)中使用,需要动态获取宿主机 IP:

1
2
3
4
5
6
7
8
9
10
11
12
13
host_ip=$(cat /etc/resolv.conf | grep "nameserver" | cut -f 2 -d " ")

# 开启代理
proxy () {
export ALL_PROXY="http://$host_ip:10811"
export all_proxy="http://$host_ip:10811"
}

# 关闭代理
unproxy () {
unset ALL_PROXY
unset all_proxy
}

请根据你宿主机的 HTTP 代理端口修改 10811

4.3 更新与卸载

手动更新 Oh My Zsh:

1
omz update

卸载 Oh My Zsh:

1
uninstall_oh_my_zsh

执行后会提示确认,输入 Y 即可完成卸载,原有的 .zshrc 配置会被自动恢复。

总结

通过以上配置,我们得到了一个功能强大且美观的终端环境:

  • Zsh 作为 Shell 基础,提供更好的补全和交互体验
  • Oh My Zsh 提供框架支持,管理主题和插件
  • Powerlevel10k 主题带来出色的视觉效果
  • zsh-autosuggestionszsh-syntax-highlighting 提升输入效率
  • zextractweb-search 等插件简化日常操作

如果你还在使用默认的 Bash,不妨试试这套配置,相信会给你带来不一样的终端体验。