WSL使用指南

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 查看已安装发行版
wsl -l -v

# 设置默认发行版
wsl --set-default <Distribution Name>

# 启动默认发行版
wsl

# 启动指定发行版
wsl -d <Distribution Name>

# 指定登录用户启动 wsl
wsl -u <User Name>

# 更改发行版的默认用户
<DistributionName> config --default-user <Username>

# 关闭 wsl 的运行
wsl --shutdown

# 关闭指定发行版
wsl --terminate <Distribution Name>

更多命令见 WSL 官网

访问宿主机网络服务

在 wsl 中,可使用虚拟宿主机IP访问宿主机服务。使用以下命令查询宿主机IP:

1
ip route show | grep -i default | awk '{ print $3}'

打开 WSL Hyper-V 防火墙时,得到的是WSL虚拟防火墙的IP,没打开是 WSL 虚拟的IP,可使用 powershell 命令 ipconfig 查看。

宿主机访问 wsl 网络服务

默认情况下(即WSL 配置 localhostForwarding=true),wsl 映射端口到宿主机,可直接用 localhost 访问 wsl 网络服务。

注:WSL2 配置 networkingMode=mirrored 时,localhostForwarding 配置无效,可在 wsl 中用 localhost 访问宿主网络服务。

PhpStorm / WebStorm WSL 前端开发环境配置

1、创建项目

WSL 中用 npm 创建 vue 项目。

(不用 pnpm 是因为:用 WSLpnpm 安装 node 包后,Windows 下的 PhpStorm 2023.2.1 识别不出,希望官方能早点解决。)

1
2
3
npm create vite@latest my-vue-app -- --template vue
cd my-vue-app
npm i

2、打开项目

wsl 前端开发

用 PhpStorm/WebStorm 打开 WSL 项目。

3、配置 Node.js 和 npm

wsl 前端开发

打开 Node.js 和 npm 配置,解释器选择 WSL 上的 Debian /usr/bin/node,包管理器选择 WSL 上的 npm

4、运行开发环境

wsl 前端开发

打开 PhpStorm 的终端窗口,终端自动进入 WSL 上的项目文件夹,输入 npm run dev 启动开发服务器,支持热加载。用浏览器打开 http://localhost:5173/ 浏览页面,编辑 src/components/HelloWorld.vue 文件,不需要刷新就能看到页面热更新。

PHPStorm 配置 WSL PHP 开发文件

WSL 跨文件操作性能比较差,WSL Debian PHP 解释器执行 Windows 上的代码速度会很慢,因此 PHP 项目代码要保存在 WSL Debian 中。

1、打开项目文件夹

点击 PHPStorm 的 文件 > 打开,选择 \wsl$\Debian 目录,找到 WSL Debian 系统上的项目文件夹,这样就可以打开 WSL Debian 上的项目文件夹了。

2、WSL Debian 安装 PHP

1
2
3
4
sudo apt update
sudo apt install php php-dev php-gd php-curl php-mysql \
php-mbstring php-redis php-xdebug php-intl php-zip \
composer
阅读更多

WSL 迁移发行版文件位置

迁移 wsl 系统的文件位置的方法是:导出再导入。我这里操作的发行版是 Debian,你根据需要更换就可以,如 Ubuntu。

1、停止 wsl 运行的虚拟机

1
2
3
4
5
# 停止全部虚拟机
wsl --shutdown

# 只停止 Debian
wsl -t Debian

2、导出

导入导出有两种模式,一种是导出 tar 文件,再把 tar 文件导入到指定的文件夹,生成新的虚拟硬盘;另一种是导出 vhdx (虚拟硬盘)文件,再把虚拟硬盘导入,继续使用该虚拟硬盘。我们用第二种方法操作。

1
wsl --export Debian D:\WSL\Debian-12-ext4.vhdx --vhd

也可以直接把 C:\Users\[user]\AppData\Local\Packages\[distro]\LocalState\[distroPackageName]\ext4.vhdx 复制到指定位置再导入。

3、卸载掉要迁移的发行版

1
wsl --unregister Debian

4、导入

1
wsl --import-in-place Debian D:\WSL\Debian-12-ext4.vhdx

5、设置默认用户

如果不设置,默认将用 root 用户登录。

1
Debian config --default-user <username>