学习使用WSL
Windows的cmd也好Powershell也好,实在难用。决定研究一下怎么使用wsl,提升开发效率
安装WSL
开启WSL
在 控制面板–>程序和功能 页面找到 Windows 功能 ,在 Windows 功能 窗口中勾选 适用于 Linux 的 Windows 子系统 功能,点击确定,并按照提示重启电脑。
安装wsl2内核
通过下面链接下载内核文件并安装
https://learn.microsoft.com/en-us/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package
将wsl默认版本设为wsl2
1 | wsl --set-default-version 2 |
安装喜欢的WSL发行版
在 Windows 应用商店搜索 WSL ,然后搜索栏会提示”在 Windows 上运行 Linux”,点进去,选择自己喜欢的 Linux 发行版,安装即可。
常用命令
https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands
列出已安装的 Linux 发行版
1 | wsl --list --verbose |

设置分发版的wsl版本
1 | wsl --set-version <分发版> <版本> |
常见错误
打开wsl报Error: 0x80370114
检查【虚拟机平台】是否勾选
配置网络环境
==下面配置需要windows版本为23h2==
wsl默认使用NAT模式,当windows有挂代理的时候,并不能在wsl中生效
在%userprofile%下面的.wlsconfig 文件中写下面的配置:
[wsl2]
[experimental]
autoMemoryReclaim=gradual # 开启自动回收内存,可在 gradual, dropcache, disabled 之间选择
networkingMode=mirrored # 开启镜像网络
dnsTunneling=true # 开启 DNS Tunneling
firewall=false # 开启 Windows 防火墙
autoProxy=true # 开启自动同步代理
sparseVhd=true # 开启自动释放 WSL2 虚拟硬盘空间
重启wsl
1 | wsl --shutdown && wsl |
如果你遇到 docker 无法从 Windows 访问的问题,这个是 iptables 的问题,在 /etc/docker/daemon.json 里添加一句 “iptables”: false 再重启就好了
与VSCode结合
启动wsl
vscode选择远程资源管理器,右侧目标选择WSL Targets。
可以看到下方出现了运行中的wsl
WSL迁移
我有多台Windows电脑,实在不希望配好一台电脑的wsl后从头开始配置另一台,所以学习了一下怎么迁移wsl虚拟机
先关闭wsl
1 | wsl --shutdown |
列出wsl,获取到虚拟机的NAME
1 | > wsl -l -v |
使用命令将其导出为.tar文件
1 | wsl --export Ubuntu-22.04 E:\my_file\Ubuntu-22.04.tar |
要等一会,生成好文件后将它传输到另一台电脑上
在另一台电脑上使用import命令将其导入
1 | wsl --import <虚拟机名> <虚拟机安装路径> <tar文件路径> --version 2 |
然后就可以在另一台电脑上用配置好的wsl了