展示最终效果:

WSL7.png

WSL8.png

上一篇文章讲解了 WSL2 入门教程,下面我将介绍一下终端的美化

1. 安装 ZSH

1
sudo apt install zsh

然后将其配置为默认shell

1
2
cat /etc/shells # 列出系统中可用的 shell 列表
chsh -s /bin/zsh # 将 zsh 设置为默认 shell,或使用命令 chsh -s $(which zsh)
注意
此时设置的只是目前账户的 shell,root 或其他账户需要另行设置
如果使用 su 登录 root 时发现提示 su: Authentication failure 可能是没设置密码的问题,用以下命令设置 root 密码
1
sudo passwd root

exit 退出重新进入终端,这时就会变为 zsh shell,此时会出现如下图界面

zsh.png

可以根据说明按 1 来个性化配置,也可以直接按 2 用推荐配置,或者按 0q 什么也不设置,下方安装 ohmyzsh 时会自动生成新的 .zshrc,以前的 .zshrc 将重命名为 .zshrc.pre-oh-my-zsh

1
echo $SHELL # 可以查看现在使用的 shell

2. 安装 ohmyzsh

运行如下命令

1
2
sh -c "$(curl -fsSL https://install.ohmyz.sh/)"
# 过程中会从 Github 拉取仓库,慢的话切换网络环境

然后会有个提示,直接按回车就行

注意
由于换了 shell,原本在 ~/.bashrc 中的配置在 zsh 中不会生效,可以自己迁移到 ~/.zshrc

3. 切换主题

可以自己选择喜欢的主题,ohmyzsh 默认带了一些主题,可以去 ohmyzsh Themes 中查看
这里我推荐一下我一直在用的主题 powerlevel10k 需要自己安装,下面介绍一下安装方法

安装 Nerd Fonts 字体

Nerd Fonts 官网去下载一种自己喜欢的字体(我在用 UbuntuMono Nerd Font 字体),然后直接安装在 Windows 上(我这里用的是 WSL2,如果用的是其他系统,安装到对应系统即可),解压后选择全部 .ttf 文件,右键点击安装

nerdfonts.png

然后切换终端字体,以 Tabby 为例

tabby1.png

一般有三种可选,具体在字符宽度、间距等显示样式细节上有些区别,可以分别试试然后在下方的预览处选出自己最喜欢的

tabby2.png

安装 powerlevel10k

运行如下命令

1
2
3
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"

然后编辑 ~/.zshrcZSH_THEME 的值设置为 powerlevel10k/powerlevel10k,然后重新进入终端,此时会弹出 powerlevel10k 的初始配置,按照引导设置便可

4. 安装插件

ohmyzsh 默认会有很多插件,可以自己启用,参考 ohmyzsh Plugins
下面推荐一些插件

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

然后在 ~/.zshrc 中的 plugins 项中加入 zsh-syntax-highlighting

zsh-autosuggestions

根据用户之前输入过的命令,对当前正在输入的命令进行智能提示,使用如下命令安装

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

然后在 ~/.zshrc 中的 plugins 项中加入 zsh-autosuggestions

zsh-completions

增强命令补全功能,提供更丰富、智能的命令和参数补全建议,使用如下命令安装(这个插件启用与前面略微不同,参照 zsh-completions 安装说明

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

然后在 ~/.zshrc 中的 source "$ZSH/oh-my-zsh.sh" 行前加入如下的配置

1
2
3
fpath+=${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src
autoload -U compinit && compinit
source "$ZSH/oh-my-zsh.sh"

刷新 zsh 补全缓存

1
2
rm -f ~/.zcompdump # 删除旧缓存
compinit # 重新初始化补全

最后我的 .zshrc 配置如下

zshrc.png

顺便告诉大家一个收集了各种 ZSH 框架、插件、主题和教程的 Github 仓库 awesome-zsh-plugins

5. 关于 fastfetch

fastfetch 是一个用于获取系统信息并以美观的形式显示它的工具,好用又好玩,下面来介绍一下安装配置方法

安装可以参考 fastfetch installation
在 Ubuntu 上用 apt 安装的要落后好几个版本,想用最新版本要自己去 Github 仓库安装,示例如下

1
2
3
4
5
6
# 自己找到适合自己电脑架构的最新版下载链接替换掉下方命令的链接,链接前面的是文件保存名称
curl -L -o fastfetch-linux-amd64.deb https://github.com/fastfetch-cli/fastfetch/releases/latest/download/fastfetch-linux-amd64.deb
# 用 dpkg 安装
sudo dpkg -i fastfetch-linux-amd64.deb
# 如果想要卸载如下
sudo dpkg -r fastfetch

其配置文件位于 ~/.config/fastfetch/config.jsonc,如果没有文件夹或文件需要自己创建

1
2
3
mkdir -p ~/.config/fastfetch
cd ~/.config/fastfetch
touch config.jsonc

然后就要自己编辑配置,可以参考 fastfetch官方预设fastfetch配置Wiki

最后可以 fastfetch 尝试一下