WSL 2 and Windows Terminal Experience
Warning! 早期版本,Microsoft 随时会改
看过我其他文章的同学应该都知道,我是不用 Windows 的.今天突然心血来潮体验了下 WSL2 和 Windows Terminal, 发现 WSL2 有进步, 不像 WSL1 那样 apt update 都得等半天. Terminal 也很爽. 字体主题都能配置. 为了方便后来的同学,简单贴一下
1. 安装WSL2
确认系统版本
请确定你的 Windows 版本高于 18917 ,属于 20H1 分支,运行winver
就可以看到版本号,现在还在 Preview 通道.没有的话可以在 UUP @rgadguard 和 UUP dump 下载UUP制作最新的预览版镜像.
启用虚拟机平台可选组件
首先在 Windows 程序和功能里勾选安装 Linux 子系统功能 然后 PowerShell 管理员运行:
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
然后会自动重新启动计算机.
设置WSL版本为WSL 2
修改发行版为 WSL2 需要在 PowerShell 中运行:
// Setting the Distro to WSL2
wsl --set-version <Distro> 2
// Example: Debian
// ~$ wsl -l
// Windows Subsystem for Linux Distributions:
// Debian (Default)
wsl --set-version Debian 2
// Restore to WSL 1
wsl --set-version Debian 1
新安装的发行版默认使用WSL2:
wsl --set-default-version 2
查看各个发行版的WSL版本:
wsl --list --verbose
或
wsl -l -v
2. 安装 Microsoft Terminal
在 官方仓库的 Release 已经有编译好的版本了, 下载安装就行, 写文章时的版本是 v0.2.1831.0.
3. 配置国内镜像源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.$(date +%Y%m%d%H%M%S)
sudo sed -i "s/deb.debian.org/mirrors.huaweicloud.com/g" /etc/apt/sources.list
sudo sed -i "s/ftp.debian.org/mirrors.huaweicloud.com/g" /etc/apt/sources.list
sudo sed -i "s/security.debian.org/mirrors.huaweicloud.com/g" /etc/apt/sources.list
3. zsh 配置
#!/bin/bash
sudo apt update && sudo apt install ca-certificates curl git zsh
# install oh-my-zsh
mkdir -p ~/.zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
# remove robbyrussell
sed -i "s/ZSH_THEME=\"robbyrussell\"//" ~/.zshrc
# set powerlevel9k.zsh
sed -i '1isource ~/.zsh/powerlevel9k.zsh' ~/.zshrc
# install zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
sed -i '1isource ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh' ~/.zshrc
~/.zsh/powerlevel9k.zsh
内容:
ZSH_THEME="powerlevel9k/powerlevel9k"
# Left
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir dir_writable vcs)
# Right
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs history ram load time)
# for nerd-font
POWERLEVEL9K_MODE="nerdfont-complete"
我觉得 powerlevel9k 配 nerd 字体包是很舒服的,WSL 终端的字体效果不好,我稍微配置了下,还不如 cmder. 新终端完美支持了 nerdfont, 解决了Windows 一大痛点.
我用的字体是DejaVuSansMono Nerd Font
, 在Releases · ryanoasis_nerd-fonts 下载, 双击安装. 可以只下载 DejaVuSansMono.zip
, 你想体验其他字体也可以直接下载. 现在 source ~/.zshrc
以后,字体应该还是默认的, 请看完第四部分
4. Terminal 设置
在 Terminal 使用快捷键 Ctrl+` 打开设置,用VS Code、记事本之类的文本编辑器打开,搜索 wsl.exe
可以找到 wsl 的部分
"defaultProfile" : "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
// for wsl
"colorScheme" : "Calamity",
"fontFace" : "DejaVuSansMono Nerd Font",
"guid" : "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
"startingDirectory" : "//wsl$/Debian/home/my/",
- defaultProfile 用来设置默认启动的命令行, wsl/powershell/cmd, 用 guid 来设置
// default value is powershell's guid
"defaultProfile" : "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
// wsl's guid
"guid" : "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}",
- 自带的 schemes 不多: “Campbell”/“One Half Dark”/“One Half Light”/“Solarized Dark”/“Solarized Light” 我看惯了Calamity, 就自己加了个. 在 iTerm2-Color-Schemes/windowsterminal 里也有其他的, 好像是之前的 schemes 都给 Windows Terminal 做了吧,我没仔细看。
// for WSL
"colorScheme" : "Calamity",
// for schemes
"schemes" :
[
{
"name": "Calamity",
"black": "#2f2833",
"red": "#fc644d",
"green": "#a5f69c",
"yellow": "#e9d7a5",
"blue": "#3b79c7",
"purple": "#f92672",
"cyan": "#74d3de",
"white": "#d5ced9",
"brightBlack": "#7e6c88",
"brightRed": "#fc644d",
"brightGreen": "#a5f69c",
"brightYellow": "#e9d7a5",
"brightBlue": "#3b79c7",
"brightPurple": "#f92672",
"brightCyan": "#74d3de",
"brightWhite": "#ffffff",
"background": "#2f2833",
"foreground": "#d5ced9"
},
- 自定义字体, 如果不知道怎么写, 可以在设置里搜字体, 抄设置里的.
"fontFace" : "DejaVuSansMono Nerd Font",
- 设置启动时在你 WSL的家目录 ~/ , 而不是Windows的家目录 /mnt/c/Users/${username}
"startingDirectory" : "//wsl$/your_distro/home/your_username/",
差不多就是这些, 感觉微软努努力还是能上台面的