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 管理员运行:
1 | Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform |
然后会自动重新启动计算机.
设置WSL版本为WSL 2
修改发行版为 WSL2 需要在 PowerShell 中运行:
1 | // Setting the Distro to WSL2 |
新安装的发行版默认使用WSL2:
1 | wsl --set-default-version 2 |
查看各个发行版的WSL版本:
1 | wsl --list --verbose |
2. 安装 Microsoft Terminal
在 官方仓库的 Release 已经有编译好的版本了, 下载安装就行, 写文章时的版本是 v0.2.1831.0.
3. 配置国内镜像源
1 | sudo cp /etc/apt/sources.list /etc/apt/sources.list.$(date +%Y%m%d%H%M%S) |
3. zsh 配置
1 | !/bin/bash |
~/.zsh/powerlevel9k.zsh
内容:
1 | ZSH_THEME="powerlevel9k/powerlevel9k" |
我觉得 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 的部分
1 | "defaultProfile" : "{58ad8b0c-3ef8-5f4d-bc6f-13e4c00f2530}", |
defaultProfile 用来设置默认启动的命令行, wsl/powershell/cmd, 用 guid 来设置
1
2
3
4// 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 做了吧,我没仔细看。
1 | // for WSL |
- 自定义字体, 如果不知道怎么写, 可以在设置里搜字体, 抄设置里的.
1 | "fontFace" : "DejaVuSansMono Nerd Font", |
- 设置启动时在你 WSL的家目录 ~/ , 而不是Windows的家目录 /mnt/c/Users/${username}
1 | "startingDirectory" : "//wsl$/your_distro/home/your_username/", |
差不多就是这些, 感觉微软努努力还是能上台面的