我需要使用适用于 Linux 的 Windows 子系统。我只是为了好玩,bash
在命令窗口中输入了命令,令我惊讶的是,它启动了。这很令人惊讶,因为我从未安装过 WSL1,而 Microsoft 的安装指南等文档暗示你必须安装。我可能几年前安装过其他 Linix 子系统,但我不记得这样做过。
我没有运行 WSL2 所需的 W10 版本(我的是 18362.1082),所以如果是 WSL,那一定是 WSL1。除此之外,我不知道它是什么风格或版本的 Linux。我为此尝试了普通的 Linux 命令,例如 cat /etc/os-release,它回复说没有这样的文件。
文档说 Linux 管理员凭据与 W10 凭据无关。所以我还运行whoami
查看是否已建立用户,它给了我与 W10 安装相同的名称。当我尝试使用命令sudo
查看密码是否相同时,它说bash: sudo: command not found
。所以有些不对劲。
我如何确定我这里有什么?如何判断这是一个完全设置的 WSL1 实例,如果是,它运行的是哪种 Linux 版本?管理员密码是什么?还是我仍然需要执行上面链接的安装指南中的所有步骤?
更新 1
我发现这里我应该能够通过wsl
在命令行中输入来启动 wsl。当我这样做时,它说 wsl 未被识别为命令,所以我想这意味着 wsl1 未安装。但是已经安装了一些 linux,所以现在的问题是是否可以安全地安装 wsl1 来覆盖它,或者我是否需要先卸载现有的(如果是,该怎么做)。
答案1
仅仅因为你在某个地方有一些 Bash 并不意味着你已经安装了 WSL。
首先,您应该检查bash
实际位于何处:
where bash
或者,在 PowerShell 中:
Get-Command bash
除非你得到C:\Windows\system32\bash.exe
,否则它很可能不是 WSL,而是像 Git Bash、MinGW32 或诸如此类的东西。
要使用 WSL,除了启用 Windows 功能外,您还需要安装发行版。您会记得类似的东西。
答案2
我在这里发现我应该能够通过在命令行中输入 wsl 来启动 wsl。当我这样做时,它说 wsl 未被识别为命令,所以我想这意味着 wsl1 未安装。但是已经安装了一些 linux,所以现在的问题是是否可以安全地安装 wsl1 来覆盖它,或者我是否需要先卸载现有的(如果是,该怎么做)。
Windows Subsystem for Linux
这确实意味着你当前没有安装可选的
文档说 Linux 管理员凭据与 W10 凭据无关。因此,我还运行了 whoami 来查看是否已建立用户,它给出了与我的 W10 安装相同的名称。当我尝试使用 sudo 命令查看密码是否相同时,它显示 bash:sudo:未找到命令。
这也表明 Linux bash shell(即Windows Subsystem for Linux
)实际上并未安装在您的系统上。您可以通过查看任务管理器中的进程名称来确定实际安装了哪个 bash 环境。
我没有运行 WSL2 所需的 W10 版本(我的是 18362.1082),所以如果是 WSL,那一定是 WSL1。除此之外,我不知道它是什么风格或版本的 Linux。我为此尝试了普通的 Linux 命令,例如 cat /etc/os-release,它回复说没有这样的文件。
由于您正在运行 18362.1049+ (1903) 或 18363.1049+ (1909),因此您绝对可以运行 WSL2。WSL1 和 WSL2 都与当前版本的 VMWare 虚拟化产品完全兼容。
. 之前的第一个数字是您的主版本号,因此对于版本 1903,它将显示为 18362。. 之后的数字是您的次要版本号,这将让您知道您的机器上是否有反向移植。此反向移植的次要版本号为:1049。总而言之,如果您的 Windows 版本 18362 或 18363 上的次要版本号为 1049 或更高,那么您就有反向移植和运行 WSL 2 发行版的能力。
资料来源: