- 它们的功能有什么不同?其中一个更兼容还是其他?微软为什么要费心开发这两个看起来一模一样的?
- 文件位置。Windows 上 Ubuntu 上的 bash 文件位于
C:\Users\<username>\AppData\Local\lxss
,但 WSL 的文件在哪里?有一个答案声称它们位于C:\Users\<username>\AppData\Local\Lxss\rootfs
,但我发现它是空的。 - WSL 有“.exe”吗?对于 Windows 上 Ubuntu 上的 bash 来说,它是
"C:\Windows\sysnative\bash.exe"
。WSL 有没有类似的东西,这样我可以在 Visual Studio Code 中使用它?
答案1
“Windows 上的 Ubuntu 上的 Bash”基于 Windows Subsystem for Linux。WSL 是 Windows NT 内核上的 Linux 系统调用的实现,它允许您运行未经修改的 Linux 可执行文件(就像 Wine 对 Ubuntu 所做的那样)。“Windows 上的 Ubuntu 上的 Bash”只是 WSL 的一个应用程序。其他 Linux 发行版(如 openSUSE 或 Fedora)要么可用或即将可用。
WSL 有“exe”。最初有bash.exe
,后来有wsl.exe
,现在有ubuntu.exe
和 openSUSE-42.exe
。估计fedora.exe
很快就会出现。来自 MSDN 帖子在 WSL 中管理多个 Linux 发行版:
有三种方法可以启动并运行 WSL:
wsl.exe
或者bash.exe
wsl -c [command]
或者bash -c [command]
[distro]
,即ubuntu
——这与从 Windows 菜单启动已安装的应用程序相同。在前两种情况下,WSL 必须选择一个发行版来运行 - 默认发行版。如果您没有明确设置默认发行版,它将是第一个安装的发行版。
WSL 的文件位置取决于发行版,因为它们是从以下位置安装的应用程序商店:
您通过商店安装的每个发行版都会安装到该应用程序的 appdata 目录中。例如:
C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
答案2
四处寻找,希望对您有所帮助
来自 Microsoft
适用于 Windows Build 17092(版本 1903)及更早版本
在 1903 版之前的 Windows 10 中,应使用 WSL Config (wslconfig.exe) 命令行工具来管理在 Windows Subsystem for Linux (WSL) 上运行的 Linux 发行版。它允许您列出可用的发行版、设置默认发行版以及卸载发行版。
要列出分布,请使用:
wslconfig /list
列出适用于 WSL 的 Linux 发行版。如果列出了某个发行版,则表示该发行版已安装并可供使用。
wslconfig /list /all
列出所有发行版,包括当前不可用的发行版。它们可能正在安装、卸载或处于损坏状态。要设置在命令行上运行 wsl 时运行的默认分发版:
wslconfig /setdefault <DistributionName>
将默认分布设置为 。示例:(使用 PowerShell)
wslconfig /setdefault Ubuntu
将我的默认发行版设置为 Ubuntu。现在当我运行时wsl npm init
它将在 Ubuntu 中运行。如果我运行 wsl,它将打开一个 Ubuntu 会话。要取消注册并重新安装分发版:
wslconfig /unregister <DistributionName>
从 WSL 取消注册分发版,以便可以重新安装或清理。例如:
wslconfig /unregister Ubuntu
将从 WSL 中可用的发行版中删除 Ubuntu。运行时wslconfig /list
它不会列出。
适用于 Windows Build 17093 及更高版本
使用以下配置每个发行版的启动设置
wslconf
自动配置 WSL 中的某些功能,每次使用 wsl.conf 启动子系统时都会应用这些功能。
现在,这包括自动挂载选项和网络配置。
wsl.conf 位于 中的每个 Linux 发行版中
/etc/wsl.conf
。如果该文件不存在,您可以自行创建。WSL 将检测该文件的存在并读取其内容。如果该文件丢失或格式错误(即标记格式不正确),WSL 将继续正常启动。