欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用 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,具体参考:

  1. 升级 Windows 10 v2004 和 wsl2
  2. Windows Terminal 配置

安装

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
}

最终效果

使用 oh-my-zsh 美化 Windows Terminal Ubuntu 终端