为什么是 WSL ?
WSL 全称是 Windows Subsystem for Linux,也就是运行在 Windows 上的 Linux 子系统,可以让我们在 Windows 上无缝地运行 GNU/Linux 环境。由于本人工作时使用的是 macOS 系统,虽然在家里的 PC 上配置了最新的 Powershell + oh-my-posh,但是和 macOS 上的体验相比还是差远了,正好在 B 站上也一直刷到安利 WSL 的视频,本人除了大学时期用虚拟机跑 Ubuntu 做过作业之外也没怎么接触过 Linux 了,闲着也是闲着,赶紧来试试吧。
安装 WSL
微软的 官方文档 上写得比较清楚,稍微总结一下吧:
-
启用「适用于 Linux 的 Windows 子系统」可选功能,使用管理员身份运行以下命令:
1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
-
检查 Windows 版本,如要使用 WSL2,对于 x86_64 Windows 的版本要求是 1903 或更高版本。
-
启用「虚拟机平台」可选功能,使用管理员身份运行以下命令:
1
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
执行完此命令后,重新启动 计算机。
-
下载 Linux 内核更新包,使用 官方文档 中提供的链接。
-
将 WSL 2 设置为默认版本,运行以下命令:
1
wsl --set-default-version 2
-
安装 Linux 子系统,在此本人选择的版本是 Ubuntu 22.04,在 Microsoft Store 中搜索下载即可。安装完成后首次启动需要输入用户名与密码,之后就可以快乐地玩耍了。
配合 VSCode
VSCode 是一个非常强大的文本编辑器,我们都知道在 Powershell 中使用命令 code
可以直接在我们指定的目录下打开 VSCode,非常方便;而在 WSL 中我们也可以通过一个插件实现此功能,这个插件就是 WSL,安装完毕后我们在 WSL 中也可以直接使用 code
命令启动 VSCode 来写代码了。
安装 Zsh + oh-my-zsh
最后要做的就是安装 Zsh + oh-my-zsh 来替换 Ubuntu 默认的终端了,至于为啥选择 Zsh,属于是「为了这点醋才包的这顿饺子」了,用习惯了而已。
-
在 Ubuntu 上安装 Zsh 非常简单,只要运行以下命令即可:
1
sudo apt install zsh
-
由于网络原因,在国内直接通过 官方 的方法安装 oh-my-zsh 可能会出现连接失败的情况,我们可以使用 Gitee 上国内镜像的脚本进行安装,运行以下命令:
1
sh -c "$(wget -O- https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"
-
安装 zsh-autosuggestions & zsh-syntax-highlighting 插件,分别用于命令自动补全与语法高亮,运行以下命令:
1 2
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
此时两个插件就已经安装完成,只需要在
.zshrc
中添加相关配置即可启用:plugins=( git zsh-autosuggestions zsh-syntax-highlighting )
重启终端 后即可生效
到这里,整个 WSL 的开发环境便已经搭建完毕了。
备份
WSL 并不像 VMware 一样有快照的功能,环境要是玩坏了就得重新搭建,比较麻烦。但是我们可以通过备份的方式将我们配置好的 WSL 导出,要是玩坏了就直接导入,勉强可以替代虚拟机软件的快照功能。
-
通过
wsl -l
查看已安装的 Linux 子系统,如:1 2 3
@Henry ➜ ~ wsl -l 适用于 Linux 的 Windows 子系统分发版: Ubuntu-22.04 (默认)
-
运行
wsl -t Ubuntu-22.04
停止此 Linux 子系统。 -
运行
wsl --export Ubuntu-22.04 'E:\Virtual machine\Ubuntu-22.04.tar'
导出此 Linux 子系统到E:\Virtual machine\Ubuntu-22.04.tar
目录下。 -
要是玩坏了,运行
wsl --unregister Ubuntu-22.04
删除被玩坏的 Linux 子系统后,通过wsl --import Ubuntu-22.04 <InstallLocation> 'E:\Virtual machine\Ubuntu-22.04.tar'
导入 Linux 子系统,<InstallLocation>
为安装路径,可自定义。
个人体验
搭建完 WSL 后本人也是稍微玩了一下,感觉还是比较丝滑的,相比于通过类似 VMware 的虚拟机软件来运行 Linux,WSL 没有那么严重的割裂感,当然功能也是少了很多(笑),我们在文件资源管理器里面也可以看到被挂载的 Linux 子系统,可以直接访问它的文件系统,好了,就介绍到这儿吧。