使用Oh My Zsh美化终端

前言

传统的 Bash 功能相对简陋且不美观。本文采用的系统是 Debian12(Ubuntu 也一样),安装 Zsh 以及 Oh My Zsh,对终端进行美化。Oh My Zsh 是 Zsh 的一个扩展工具集,提供了丰富的功能和主题,让终端界面更加个性化和高效。

我用的是 root 用户,所以运行指令不需要加上 sudo,非 root 用户安装等指令还需加上 sudo。



环境配置

安装基本工具

首先,更新系统并安装必要的工具:

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

安装 Oh My Zsh

官网:http://ohmyz.sh/。安装方式任选一个即可:

1
2
3
4
5
6
7
8
9
10
11
# 使用 curl 安装
curl -fsSL https://install.ohmyz.sh | sh

# 使用 wget 安装
wget -O- https://install.ohmyz.sh | sh

# 使用国内镜像(curl)
curl -fsSL https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh | sh

# 使用国内镜像(wget)
wget -O- https://gitee.com/pocmon/ohmyzsh/raw/master/tools/install.sh | sh

从 .bashrc 迁移配置(可选)

如果你曾在 Bash 中自定义了一些环境变量或别名,在切换到 Zsh 后,需要手动迁移这些配置。操作步骤如下:

1
2
3
4
5
6
7
8
# 查看原 Bash 配置文件
cat ~/.bashrc

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

# 使配置生效
source ~/.zshrc

如果是 root 用户,执行 sudo su 后再次进行上述操作。



配置主题

自定义主题

1
2
3
4
5
6
7
8
9
10
wget -O $ZSH_CUSTOM/themes/haoomz.zsh-theme https://cdn.haoyep.com/gh/leegical/Blog_img/zsh/haoomz.zsh-theme

# 编辑 .zshrc 文件,设置主题
nano ~/.zshrc

# 设置主题为 haoomz
ZSH_THEME="haoomz"

# 使配置生效
source ~/.zshrc

image.png|300

推荐主题

可以在内置主题样式截图中查看所有 zsh 内置的主题样式和对应的主题名。这些内置主题已经放在 ~/.oh-my-zsh/themes 目录下,不需要再下载:

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

image.png|300

powerlevel10k

根据 What’s the best theme for Oh My Zsh? 中的排名,以及自定义化、美观程度,强烈建议使用 powerlevel10k 主题:

1
2
3
4
5
6
7
8
# 克隆 Powerlevel10k 主题
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

# 在~/.zshrc设置主题
ZSH_THEME="powerlevel10k/powerlevel10k"

# 使配置生效
source ~/.zshrc

完成后,终端会自动引导你配置 powerlevel10k 主题。



安装插件

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

插件推荐

最后,记得启用所有插件。

zsh -autosuggestions

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

安装方式:把插件下载到本地的 ~/.oh-my-zsh/custom/plugins 目录:

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

extract

oh-my-zsh 内置了 extract 插件。extract 用于解压任何压缩文件,不必根据压缩文件的后缀名来记忆压缩软件。

使用 x 命令即可解压文件:

1
2
# 使用 x 解压文件
x file.tar.gz

启用插件

1
2
3
4
# 修改~/.zshrc中插件列表
plugins=(git zsh-autosuggestions zsh-syntax-highlighting z extract web-search)

source ~/.zshrc


Tips

配置本地代理

如果你配置了本地代理,并希望终端的 git 等命令使用代理,那么可以在 ~/.zshrc 中添加:

1
2
3
4
5
6
7
8
9
10
11
# 为 curl wget git 等设置代理 
proxy () {
export ALL_PROXY="socks5://127.0.0.1:10809"
export all_proxy="socks5://127.0.0.1:10809"
}

# 取消代理
unproxy () {
unset ALL_PROXY
unset all_proxy
}

这里假设本地代理的端口是 10809

以后在使用 git 等命令之前,只需要在终端中输入 proxy 命令,即可使用本地代理。

卸载 Oh My Zsh

终端输入 :

1
uninstall_oh_my_zsh

手动更新 Oh My Zsh

如果自动更新提示被误触关闭,可以通过以下命令手动更新:

1
upgrade_oh_my_zsh

快捷键

快捷键 功能描述
Ctrl + A 跳到行首
Ctrl + E 跳到行尾
Ctrl + U 删除光标前的所有字符
Ctrl + K 删除光标后的所有字符
Ctrl + W 删除光标前的一个单词(空格为分隔符)
Ctrl + Y 粘贴删除的内容
Ctrl + L 清屏(类似 clear 命令)
Ctrl + C 终止当前运行的命令(如果命令运行时卡住,按此可中止)
Ctrl + D 退出当前 Shell 会话(等同于 exit 命令)
Ctrl + Z 将当前命令挂起并发送到后台(可以用 fg 恢复)
Ctrl + R 启动历史命令搜索,可以反向搜索历史命令
Ctrl + S 停止屏幕输出(再次按 Ctrl + S 恢复)
Ctrl + Q 继续屏幕输出(用于恢复 Ctrl + S 停止的输出)
Tab 自动补全命令或文件名
Shift + Tab 向后自动补全(撤回补全)
Alt + . 插入上一个命令的最后一个参数
Alt + C 将光标移动到当前路径的文件夹名称的中间位置
Alt + / 补全当前目录路径
Up Arrow 上一条历史命令
Down Arrow 下一条历史命令
Ctrl + P 上一条历史命令(类似于 Up Arrow
Ctrl + N 下一条历史命令(类似于 Down Arrow
Ctrl + X Ctrl + E 在编辑器中打开当前命令(默认是 vi 编辑器)


参考

  1. zsh 安装与配置,使用 oh-my-zsh 美化终端 | Leehow的小站
  2. Zsh 安装与配置 - 使用 Oh My Zsh 美化终端
  3. Oh My Zsh 使用指南 - Awesome Top 中文社区