答案1
从技术上讲,这是两个不同的问题。我先回答第二个问题:
第一个问题——在 WSL2 中启动 Linux shell 有没有首选方法?
在我看来,启动 WSL 实例的首选方法是微软推出的新 Windows 终端,可在 Microsoft Store 或开放源码形式在 Github 上。Windows Terminal 将在其默认设置下自动检测任何已安装的 WSL 发行版并为其创建菜单启动器。它是迄今为止功能最丰富的原生 Windows 应用程序终端,尽管它也可能的安装 X 服务器并使用大量 Linux GUI 终端。
提示:我建议安装一个书呆子字体它们支持附加的字形。
第二个问题——您列出的三个命令之间的区别。
之前有一个答案,其中有一些很好的细节是从 Microsoft devblog 复制过来的。我将采用与上一个答案略有不同的方法,并提供更多细节:
wsl.exe
(或者就wsl
在 cmd 或 PowerShell 下)是您提到的三个中最新的一个。还有许多其他选项可以与 一起使用wsl
。请参阅这一页了解更多信息。选项包括:- 启动不同的发行版或实例
- 以任何用户身份启动默认或不同的发行版(对于 root 用户来说非常方便)
- 导出发行版/实例以用于备份或克隆目的
- 重新导入以前导出的发行版 - 恢复备份或克隆实例。
- 设置默认 WSL 版本(1 或 2)
- 更改现有实例/发行版的版本
ubuntu
:这只是 Microsoft Store(以前称为“UWP”)应用的“应用执行别名”。只有通过商店安装时才会出现。您可以在 Windows 应用执行别名设置屏幕中看到它。它的效果和你启动应用程序,即在“Ubuntu 终端”(名字很差劲,但我在 Canonical 网站上找到了这样称呼它的参考资料)中启动默认的 Ubuntu 安装。我不确定这背后的“真正”终端是什么,但它有点问题,似乎不受支持。
bash
: 根据本文档,bash
是“历史命令”,“仍然可以使用”。老实说,在我看来,这离“弃用”只有一步之遥。
答案2
文章 调用 WSL 的指南 解释每次调用之间的细微差别,每次调用都略有不同:
韋斯特
第一种方法(也是推荐的!)将启动您的默认发行版。此外,它会在您调用命令的当前工作目录中启动发行版。您可以使用“wslconfig”工具更改默认发行版。
*Ubuntu
或者,您可以通过名称指定要启动的确切发行版。我们现在在商店中有多个发行版,可能有些情况下您希望启动未标记为默认的发行版。以 Ubuntu 为例,只需调用“ubuntu”即可。这将使用默认 shell 启动发行版用户空间。
狂欢
这将尝试在默认发行版中启动 bash。即使您已将发行版配置为具有另一个默认 shell(例如 zsh),它仍将尝试启动 bash。