使用 oh-my-zsh 美化 Windows Terminal Ubuntu 终端
程序员文章站
2022-07-14 09:31:19
...
环境
- 系统:Windows 10 Pro ×64
- 子系统:Ubuntu 20.04 LTS
- 终端:Windows Terminal
- 工具:PowerShell
- 字体:Powerline fonts
装备工作
这篇文章是基于 Windows 10 + wsl2 + Ubuntu 下进行的,确保你已经使用 wsl2 Ubuntu 子系统,并使用 Windows Terminal 终端打开 Ubuntu,具体参考:
安装
zsh
$ sudo apt install zsh
安装完 zsh 后,查看版本确保成功
$ zsh --version
zsh 5.8 (x86_64-ubuntu-linux-gnu)
设置 zsh 为默认 shell
$ chsh -s /bin/zsh
oh-my-zsh
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
安装后确保 oh-my-zsh 是最新的
$ omz update
Updating Oh My Zsh
From https://github.com/ohmyzsh/ohmyzsh
* branch master -> FETCH_HEAD
Current branch master is up to date.
__ __
____ / /_ ____ ___ __ __ ____ _____/ /_
/ __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \
/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / /
\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/
/____/
Hooray! Oh My Zsh has been updated and/or is at the current version.
To keep up on the latest news and updates, follow us on Twitter: https://twitter.com/ohmyzsh
Want to get involved in the community? Join our Discord: https://discord.gg/ohmyzsh
Get your Oh My Zsh swag at: https://shop.planetargon.com/collections/oh-my-zsh
Powerline fonts
这里的字体不是安装在 Ubuntu 里,而是安装在 Windows 系统让 Windows Terminal 使用的
依然在 Ubuntu 窗口,进入当前 Windows 的桌面,替换 CurrentUser 为你的 Windows 用户名
$ cd /mnt/c/User/CurrentUser/Desktop
在桌面目录下拉取 Powerline fonts 仓库
$ git clone https://github.com/powerline/fonts.git
然后打开 Windows 开始菜单,找到 Powershell 并右键使用管理员权限打开,进入 Powerline fonts 仓库目录
PS C:\Windows\system32> cd C:\Users\CurrentUser\Desktop\fonts
然后执行安装,但很大概率会出现以下错误
PS C:\Users\CurrentUser\Desktop\fonts> .\install.ps1
.\install.ps1 : 无法加载文件 C:\Users\CurrentUser\Desktop\fonts\install.ps1,因为在此系统上禁止运行脚本。
有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ .\install.ps1
+ ~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
执行以下命令,输入 Y 进行策略更改即可
PS C:\Users\CurrentUser\Desktop\fonts> set-ExecutionPolicy RemoteSigned
执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): Y
再次执行安装命令即可正常安装,安装过程需要等待几分钟,会一直弹窗显示正在安装的字体
PS C:\Users\CurrentUser\Desktop\fonts> .\install.ps1
配置
此时打开新的 Ubuntu 窗口即可看到已经是 zsh shell 了,接下来需要配置以让其更美观
修改 oh-my-zsh 主题
$ vi .zshrc
修改主题为:agnoster
# ZSH_THEME="robbyrussell"
ZSH_THEME="agnoster"
修改 Windows Terminal 字体
打开 Windows Terminal 设置,找到 fontFace 并配置为 Powerline 字体,具体使用哪个字体可以在 Windows 设置里查看并挑选自己喜欢的即可
...
"fontFace": "Liberation Mono for Powerline",
...
优化 zsh 显示
$ cd ~
$ vi .zshrc
让 zsh 默认进入 home 目录,并且也能跟 bash 一样使用 ll 等命令
cd ~
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
让 zsh 只显示用户名和目录路径,并且随机颜色
function pscolor() {
bgc=$((RANDOM%8))
fontc=default
if [[ $bgc == 3 || $bgc == 7 ]]; then
fontc=0
fi
echo $bgc $fontc
}
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment $(pscolor) "%(!.%{%F{yellow}%}.)$USER"
fi
}
最终效果