Oh-My-Zsh

传统的 Bash 功能相对简陋,且界面不美观。本文将基于 Ubuntu 204 LTS 系统,介绍如何安装 Zsh,并通过 Oh-My-Zsh 对终端进行美化。

Oh My Zsh 是基于 Zsh 的一款扩展工具集,提供了丰富的功能和美化选项。

环境配置

安装基础工具

1
2
3
4
# 更新软件源
sudo apt update && sudo apt upgrade -y
# 安装 Zsh、Git 和 Curl
sudo apt install zsh git curl -y

安装 Oh My Zsh

官网:ohmyz.sh

可以选择以下任意安装方式:

Curl 方法:

1
sh -c "$(curl -fsSL https://install.ohmyz.sh)"

Wget 方法:

1
sh -c "$(wget -O- https://install.ohmyz.sh)"

国内镜像(Curl):

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

国内镜像(Wget):

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

注意:安装过程中,如果提示是否使用 Oh My Zsh 的默认配置模板覆盖现有的 .zshrc,建议同意,这样可以避免一些配置问题。

迁移 .bashrc 配置(可选)

如果你之前在 Bash 中自定义了一些环境变量或别名,不想失去,可以手动迁移到 Zsh 中

1
2
3
4
5
6
7
8
# 查看 bash 配置文件并手动复制自定义配置
cat ~/.bashrc

# 编辑 zsh 配置文件并粘贴自定义配置
vim ~/.zshrc

# 使新的 zsh 配置生效
source ~/.zshrc

提示:若以 sudo su 切换到 root 用户,需重复上述步骤以查看、复制并迁移配置。

配置主题

正如标题而言,炫酷的主题才是吸引我使用它的主要原因。Oh My Zsh 提供了大量的主题供我们选择。

自定义主题

下载自定义主题:

1
sudo wget -O $ZSH_CUSTOM/themes/haoomz.zsh-theme https://cdn.haoyep.com/gh/leegical/Blog_img/zsh/haoomz.zsh-theme

编辑 ~/.zshrc 文件,将 ZSH_THEME 设置为 haoomz,或选择其他主题如 lukerandallrobbyrussell 等。

1
2
3
vim ~/.zshrc
ZSH_THEME="haoomz"
source ~/.zshrc

推荐主题

你可以查看 Oh My Zsh 自带的主题样式,这些主题位于 ~/.oh-my-zsh/themes 目录,无需额外下载。

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

powerlevel10k

根据 What’s the best theme for Oh My Zsh 的推荐,powerlevel10k 主题美观且高度可定制,强烈推荐。

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

# 国内用户可使用 gitee 镜像
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 会引导你进行个性化配置,根据提示一步步设置,就能拥有一个专属的终端界面!

5i2km276ft.png

安装插件

Oh My Zsh 已内置了 Git 插件,其他内置插件位于 ~/.oh-my-zsh/plugins 目录下。以下是几个常用插件的介绍,更多插件可参考 awesome-zsh-plugins

推荐插件

zsh-autosuggestions

zsh-autosuggestions 是一个命令提示插件,它会根据你输入的命令自动提供建议,按右键即可快速接受。

安装方式:

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

zsh-syntax-highlighting

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

z

Oh My Zsh 内置 z 插件,它可以记住你访问过的目录,并根据模式快速跳转到目标目录。

extract

Oh My Zsh 内置 extract 插件,使用 x 命令即可解压任何压缩文件,无需记忆具体的解压命令。

启用插件

修改 ~/.zshrc 文件,启用所需插件:

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

然后重新加载配置:

1
source ~/.zshrc

实用技巧

root 用户配置

如果你在 sudo su 切换到 root 用户时发现终端仍然是默认的 Bash,建议为 root 用户也安装 Oh My Zsh。通过设置不同的主题来区分普通用户与 root 用户。

以下是 root 用户的 ~/.zshrc 配置示例:

1
2
3
4
ZSH_THEME="ys"
plugins=(
git zsh-autosuggestions zsh-syntax-highlighting z extract web-search
)

或:

1
2
3
4
ZSH_THEME="ys"
plugins=(
git colored-man-pages colorize cp man command-not-found sudo suse ubuntu archlinux zsh-navigation-tools z extract history-substring-search python zsh-autosuggestions zsh-syntax-highlighting
)

本地代理配置

如果你有本地代理,并希望终端中的 Git 等命令使用代理,可以在 ~/.zshrc 中添加以下函数:

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
}

卸载 Oh My Zsh

要卸载 Oh My Zsh,输入以下命令:

1
uninstall_oh_my_zsh

系统会提示:

1
Are you sure you want to remove Oh My Zsh [y/N]

输入 Y 后,终端会显示:

1
2
3
4
5
6
Removing ~/.oh-my-zsh
Looking for original zsh config...
Found ~/.zshrc.pre-oh-my-zsh -- Restoring to ~/.zshrc
Found ~/.zshrc -- Renaming to ~/.zshrc.omz-uninstalled-XXXXXX
Your original zsh config was restored. Please restart your session.
Thanks for trying out Oh My Zsh. It's been uninstalled.

手动更新 Oh My Zsh

如果你误关闭了 Oh My Zsh 的自动更新提示,可以通过以下命令手动更新:

1
upgrade_oh_my_zsh