内容纲要
这里其实有一点“名字—行为—默认动作”的区别,逻辑特别简单,但很多人第一次用 WSL 时会搞不清。我给你讲透彻,让你以后看到 WSL 的各种命令都能一眼知道它在干嘛。
想象 WSL 有很多 Linux 发行版:
Ubuntu、Debian、Kali、openSUSE、…
每一个都像“独立的 Linux 虚拟机”。
✔ 核心区别一句话概括
wsl:启动默认发行版(Default Distro)
wsl -d Ubuntu:启动指定发行版 Ubuntu
它们本质上都是“进入某个 Linux 系统”,差别只是你进入的是哪一个。
一、wsl 是“默认进入”
当你执行:
wsl
系统会查:
- 你的默认发行版是谁(Default Distro)
- 然后直接进入它
你现在的默认是 Ubuntu,所以:
wsl
和:
wsl -d Ubuntu
效果看着一样。
但不是永远一样。
二、wsl -d Ubuntu 是“我点名要这个发行版”
这个命令是明确指定:
wsl -d Ubuntu
意思是:
“不管默认是谁,我现在要启动 Ubuntu 发行版。”
如果你未来安装了多个发行版,比如:
- Ubuntu
- Ubuntu-20.04
- Debian
- kali-linux
这两个命令就不一样了。
三、为什么现在看起来一样?
因为你的系统里只有 一个发行版(Ubuntu)。
所以:
wslwsl -d Ubuntu
最终都进入同一个系统。
四、看看你系统里有哪些发行版
你执行:
wsl --list --verbose
例如输出:
NAME STATE VERSION
* Ubuntu Running 2
Debian Stopped 2
星号 * 表示默认发行版。
五、如果你换默认发行版,wsl 才会变化
比如把 Debian 设为默认:
wsl --set-default Debian
然后:
wsl
就会进入 Debian,而:
wsl -d Ubuntu
还是 Ubuntu。
✔ 总结(非常清晰)
| 命令 | 含义 | 行为 |
|---|---|---|
wsl |
启动默认发行版 | 看星号在哪个发行版,就进哪个 |
wsl -d Ubuntu |
指定启动 Ubuntu | 永远进入 Ubuntu,不管默认是谁 |
你现在只有 Ubuntu 所以看不出区别,但当你未来搞多个发行版(做容器、训练、编译等),这两个命令的意义就明显了。