WSL 官方文档,比如以下内容必读:
安装方式
打开 powershell 或者 cmd 窗口(以下简称“终端”),输入
1
wsl --install
以 WSL 2 方式安装 Ubuntu。你可以安装其他 Linux 系统,使用 wsl --list --online
查看:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
以下是可安装的有效分发的列表。
使用 'wsl.exe --install <Distro>' 安装。
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_8_5 Oracle Linux 8.5
OracleLinux_7_9 Oracle Linux 7.9
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
openSUSE-Leap-15.4 openSUSE Leap 15.4
openSUSE-Tumbleweed openSUSE Tumbleweed
如果需要更复杂的自定义安装,参考 官方安装文档。
正常情况下,它会自动下载相关工具和系统镜像,只要等待就好。(你需要良好的网络)
一些基本命令:
1
2
3
wsl --list --verbose
wsl --status
wsl --version
启动 WSL
在 Windows 下,做一件事有太多方式。。。
从终端输入 wsl
即可启动 Ubuntu 的虚拟机,初次进入要设置一个用户名和密码。
但我遇到 0x80370114 错误代码,没有成功启动。搜了一下,有建议去“安全”设置里弄 vmcompute.exe
,可我没有这个命令。
最后去“功能” (feature) 面板,勾选两个选项就能用了。(然后才有 vmcompute.exe
,不过已经不重要了)
除了这种直接方式,还有其他方式启用 wsl:
1
2
3
4
5
# 在 Ubuntu 主目录启动(没有 `~` 则在终端目录,该目录会被自动 mount)
wsl ~
# `ls -lah` 可以换成任何 linux 命令,直接后台启动虚拟机,然后基于终端目录操作
wls ls -lah
嗯,在 Windows 和 Linux 相互调用就是如此简单:从 Linux 调用 Windows 也仅仅需要把命令带上 .exe
,比如在 Windows 下使用 ipconfig
命令,在 Linux 需使用 ipconfig.exe
。
打开 wsl 文件启动:
\\wsl.localhost\Ubuntu
是 Linux 系统专用的目录,你可以在两个系统之间交互操作各自系统文件。见 filesystems 文档。在 SSH 客户端(比如 mobaxterm) 中启动:
或许还有很多隐藏的启动方式,但知道这些很重要,或许你意外的启动了虚拟机,但 wsl --list --running
可能没有列出它正在运行。
要知道,启动虚拟机是有成本的,在我的机器上,它需要 1G 左右的内存(使用 Ctrl-Shit-Esc
调出“任务管理器”):
关闭 WSL
貌似在很多情况下, wsl 会在完全没有被直接使用时自动关闭。这对于意外和临时打开 wsl 很好。
最基础的登出操作是在 Linux 输入 exit
命令:
1
2
3
4
5
6
E:\Rust $ wsl
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
username:/mnt/e/Rust$ exit
logout
此外,你还可以使用,这基本上能确保在各种启动的情况下,让虚拟机完全关闭:
1
wsl --shutdown
或者在上面展示的“任务管理器”手动终止 WSL 的进程(不推荐这种做法)。