首发于dotNET学堂
黑科技抢先尝(续) - Windows terminal中WSL Linux 终端的极简美化指南

黑科技抢先尝(续) - Windows terminal中WSL Linux 终端的极简美化指南

之前,本人写了一篇文章 黑科技抢先尝 - Windows全新终端初体验(附无需编译就能安装的Preview版本及代码Build全过程,介绍了玩转Windows terminal的两种方式。

今天这篇文章,主要介绍如何美化 Windows terminal 中 WSL 的 Linux 终端,依然是以本人最熟悉的Ubuntu为例,其他版本的 Linux 请参考本文的流程换用对应的命令。假定你已按我的上一篇文章已安装好 Windows terminal预编译版本,同时安装好了 Ubuntu,并设置号了 WSL的权限,然后就可以按本文继续操作了。

修改默认源,为apt-get安装提速

由于 Ubuntu官方的源实在是太慢了,建议大家缓存阿里云镜像的 Ubuntu 源,其具体操作步骤如下:

首先将原配置文件备份

sudo cp /etc/apt/sources.list /etc/apt/sources.list.20190516

然后 vim 打开sources.list,

sudo vim /etc/apt/sources.list

在vim 编辑器中,输入: 进入命令模式,然后输入

%s/security.ubuntu/mirrors.aliyun/g回车,进行全文替换操作;

随后再次输入:进入命令模式,输入%s/archive.ubuntu/mirrors.aliyun/g回车,进行第二次全文替换操作。

最后别忘了输入: 进入命令模式之后,输入wq回车以保存退出。

更新源:

sudo apt-get update; sudo apt-get upgrade

安装python 和 python pip

依次输入如下命令:

sudo apt-get install python3
sudo apt-get install build-essential
sudo apt-get install python-pip
pip install --upgrade pip

安装 zsh

sudo apt-get install zsh

安装powerline-font中的特定字体

github(我已手动下载挑选出来上传到这了)下载字体"DejaVu Sans Mono for Powerline",并安装。安装字体时,选择对应的哪一个ttf后缀的安装即可。

手动安装字体"Fira code" 或 "DejaVu Sans Mono for Powerline"

然后在命令行应用之,具体操作是在profiles.json中把字体设置成它,即可生效。


相应官网:

powerline/fonts: Patched fonts for Powerline users.

github.com/powerline/fo

安装powerline-shell

cd ~
mkdir src
cd src
git clone https://github.com/b-ryan/powerline-shell
cd powerline-shell
sudo python setup.py install

修改~目录下的配置文件 .bashrc 和 .zshrc

首先,插入一点背景知识:

ps1格式简介: shell有四种不同的命令提示,称为PS1,PS2,PS3和PS4。 PS代表Prompt String。Windows/Linux/Ubuntu都用得比较多的是PS1脚本。

"$PS1", "Prompt String 1" 指定命令行界面中的环境变量。

先编辑文件 .zshrc

vim ~/.zshrc

在末尾加入内容:

function powerline_precmd() {

    PS1="(powerline-shell --shell zsh ?)"

}



function install_powerline_precmd() {

  for s in "${precmd_functions[@]}"; do

    if [ "$s" = "powerline_precmd" ]; then

      return

    fi

  done

  precmd_functions+=(powerline_precmd)

}


if [ "$TERM" != "linux" ]; then

    install_powerline_precmd

fi

编辑完后更新文件 .zshrc

source ~/.zshrc

再编辑文件.bashrc

vim ~/.bashrc

在末尾加入内容:

function _update_ps1() {

    PS1="(powerline-shell ?)"

}



if [ "$TERM" != "linux" ]; then

    PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"

fi

编辑完后更新文件 .bashrc

source ~/.bashrc

然后,我随便输入几个命令:

sudo su
ls

此时Windows terminal中的效果如下:



我直接就使用这个默认主题了。


那么,如果要在命令提示符中插入emoji表情,怎么弄呢?就在下图相应的地方(对应文件 .bashrc)加~


此时的 terminal 为:


更有意思的玩法可以参考: loige.co/random-emoji-i


zsh主题定制

此外,如果想更深入地定制zsh主题,推荐安装oh_my_zsh,下面详细介绍。

安装 oh_my_zsh

Linux下安装oh-my-zsh,需要在终端输入命令:

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

如果 遇到证书类似问题

apt-get install ca-certificates

解决权限问题

如果启动时会出现zsh-syntax-highlighting权限问题,运行下面的命令即可:

compaudit | xargs chmod g-w,o-w

卸载oh_my_zsh的方法

uninstall_oh_my_zsh

从 Windows 10 的 Bash 中运行 WSL

对于windows 10中 WSL 独立的默认Bash窗口,只能选择字体"DejaVu Sans Mono for Powerline",可以在界面上选择后使用。 开始菜单中搜索 bash 并打开,


右键 属性-> 字体,选字体"DejaVu Sans Mono for Powerline"。



最后的运行结果是:




Scott Hanselman:

请注意我在 prompt 中也使用了Powerline 。 我正在使用Fira Code ,它含有我需要的glyphs,但你当然也可以使用改进过的Powerline字体或使用像Nerd Fonts它的字体补丁程序那样的工具制作自己的字体 。 此字体补丁程序通常用于获取你最喜欢的等宽字体,并为其添加Powerline glyphs。

注意:如果您看到字形有任何奇怪的间距问题,您可以尝试使用--use-single-width-glyphs来解决它。 通过发布,我认为所有这些小问题都将得到解决。 在我的终端环境下使用Fira Code没有任何问题,您的环境可能有所不同。


参考:

修改 WSL Ubuntu 18.04 默认源为阿里云镜像 - Windows - 大象笔记

sunzhongwei.com/modify-

b-ryan/powerline-shell: A beautiful and useful prompt for your shell

github.com/b-ryan/power

How to Install Powerline Fonts, Symbols for Bash on Windows 10 - The Customize Windows

thecustomizewindows.com


本文首发于本人的博客园博客 黑科技抢先尝(续) - Windows terminal中WSL Linux 终端的极简美化指南,如需转载,请知乎私信本人申请授权,转载时请在显眼的地方注明出处~

原创不易,你的支持和认可将让我写出更好的文章,更多干货可关注 公号「大白技术控」,持续输出优质的技术文章~

编辑于 2020-01-29 15:17