如何从命令行启动 WSL Ubuntu“控制台”

Yor*_*ubs 1 windows powershell windows-store cmd.exe windows-subsystem-for-linux

我正在努力从命令行(例如 PowerShell 或 CMD)启动 WSL“Ubuntu 20.04”商店应用程序(或任何商店应用程序)。

当我从“开始”菜单运行 Ubuntu 20.04 时,它会在一个带有 Ubuntu 图标和正确窗口标题(“Ubuntu 20.04 LTS”)的窗口中启动。我希望从命令行启动时获得相同的应用程序窗口。

我已经搜索了很多,并找到了引用的页面start shell:AppsFolder\{folder}!App(例如start shell:AppsFolder\Microsoft.WindowsStore_8wekyb3d8bbwe!App),但我无法使其适用于 Ubuntu Store 应用程序。我觉得这有点复杂——有没有更简单的方法?如果不是,那么 Ubuntu 上是如何工作的呢?

我熟悉该wsl命令,但如果我wsl -d Ubuntu-20.04从“开始”菜单运行,生成的窗口将具有通用 WSL/Linux/Penguin 图标,而不是 Ubuntu 图标。窗口标题也不C:\Windows\system32\wsl.exe是“Ubuntu 20.04 LTS”。

如果我从 CMD 运行相同的wsl命令,它仍然具有 CMD 图标。

也许我可以使用 DOS/CMDTITLE命令,但我只想有一个可用于启动 Store 应用程序的命令。这可能吗?

相比之下,“普通” .exeWindows 应用程序可以很容易地从 CMD 或 PowerShell 启动。

我对 Ubuntu WSL 的解决方案感到非常满意,而且如果有一种简单(尤其是可编程)的方式来运行所有Windows 应用商店应用程序,那就太好了。

Not*_*1ds 5

简短回答:

从 CMD 或 PowerShell:

start ubuntu.exe
Run Code Online (Sandbox Code Playgroud)

如果start在 PowerShell 下没有别名,请尝试:

start-process ubuntu.exe
Run Code Online (Sandbox Code Playgroud)

更多详情:

ubuntu.exe是从 Microsoft Store 安装的“Ubuntu”应用程序的“应用程序执行别名”,尽管它也可能是:

  • ubuntu2004.exe:如果您从商店安装了“版本化”“Ubuntu 20.04”
  • ubuntu1804.exe:如果您安装了“版本”“Ubuntu 18.04”
  • 我假设您仍然没有已弃用的 16.04 版本。

您可以通过转到Windows 设置中的管理应用程序执行别名来查看这一点。许多商店应用程序都包含一个.exe旨在启动商店应用程序的“fake”。您可以禁用它,但我假设它已启用。如果没有,当然启用它。

当您从“开始”菜单运行 Ubuntu 时,它当然会运行 Store 应用程序。此应用程序在旧版 Windows 控制台中运行 WSL,并执行一些其他操作,例如设置应用程序图标和字体。这几乎是我从命令行运行它所能发现的唯一区别。

当您ubuntu.exe从命令行运行(或其他 WSL 应用程序执行别名之一)时,它将当前终端中启动。ipconfig.exe例如,它与键入 相同。它保留了“所属”终端(由 CMD 或 PowerShell 启动)的当前特征——相同的应用程序图标、相同的字体等。

当使用start(CMD) 或Start-Process(PowerShell) 命令运行时,它会在 Windows 中启动一个单独的进程(而不是作为当前 shell 的子进程)。Windows 在新终端(默认情况下为 Windows 控制台)中启动它,并且 WSL 可能会施展一些魔法来表示“如果我是终端的所有者,则设置图标和字体”。