使用 Windows Terminal 打开 WSL 的 .exe

使用 Windows Terminal 打开 WSL 的 .exe

我刚刚安装了 Windows 终端,并自动使其与我的 Ubuntu 18.04 WSL 一起工作,也出现在右键单击菜单中,并且能够在启动 Windows 终端时轻松将其设置为默认 shell。

但是,在我通常的工作流程中,我也直接使用外部驱动器中的 WSL 安装目录中的 ubuntu1804.exe(在也包含 WSL 安装的 rootfs 目录的目录中)。

这对我来说很方便,因为它在/home/$USER目录中打开并可以作为单独的图标添加到任务栏中,而任务栏中的 Windows 终端则在中打开/mnt/c/Users/$USER

这个 ubuntu1804.exe 似乎在不同的控制台中打开,并且无法在 Windows 终端中打开它。

是否有任何 wsl 命令行设置来选择 Windows 终端作为默认环境,或者任何其他方法来获取它。

答案1

作为一些背景知识,ubuntu1804.exe它只是一个 Windows“应用程序执行别名”(只需在“开始”菜单中键入它即可查看相应的 Windows 设置屏幕)。它基本上运行 Microsoft Store(以前称为 UWP)应用程序。正如您所发现的,该应用程序会启动自己的终端,以(可怕的)名称“Ubuntu Terminal”而闻名。我确信他们使用了一些底层终端版本,但我不确定它是什么。

正如您已经发现的,Windows Terminal 是一个更好的选择。

正如它为你所做的那样,Windows Terminal 将自动检测从商店安装的 WSL 实例,并动态地为其创建配置文件。但它可能不会完全按照您想要的方式启动(例如,起始目录)。

你需要知道的另一件事是,该wsl.exe命令是启动实例的更好方法而不是ubuntu1804.exe

我想我听到了两个相关的问题:

  • 首先,如何让 Windows 终端启动 Ubuntu 到主目录,而不是%userprofile
  • 其次,如何从命令行启动它(例如,以便您可以创建一个快捷方式固定在任务栏上)。

您可以通过两种方式(至少)修复您的问题。第一种是修改您的启动脚本。我个人不推荐这样做——在我看来,第二种选择更好。但是如果您愿意,我会修改.profile(因为您可能只希望这发生在登录 shell 中)。只需cd ~在底部添加您的。我还没有测试过,但它应该可以工作,假设将ubuntu1804.exe默认 shell 作为登录 shell 启动。有可能不会。

不过,更好的选择是修改 Ubuntu 18.04 实例的 Windows Terminal 配置文件。如果您(或将来找到此答案的人)安装了多个 WSL 实例/发行版,我将在这里提供一些“额外”说明:

  • 首先,运行wsl.exe -l -v(在 PowerShell、Ubuntu WSL 或 CMD 中)。记下实例的名称。我假设这是Ubuntu18.04针对以下命令的。

  • 然后,在 Windows 终端中,打开设置(默认情况下为Ctrl+ ,,或使用菜单)。

  • 查找你的 Ubuntu 18.04 配置文件。它应该是这样的:

    {
        "guid": "{unique-to-you}",
        "hidden": false,
        "name": "Ubuntu 18.04",
        "source": "Windows.Terminal.Wsl",
    },
    

    source是动态配置文件。

  • 因为您要为其提供自己的配置文件设置,所以请将其注释掉。并添加一个commandline选项,如下所示:

    {
        "guid": "{unique-to-you}",
        "hidden": false,
        "name": "Ubuntu18.04",
        //"source": "Windows.Terminal.Wsl",
        "commandline": "wsl.exe ~ -d Ubuntu18.04",
        "cursorShape": "filledBox" // or put this in your 
    },
    

    请记住,wsl.exe ~ -d Ubuntu18.04应该使用我们之前所做的实际实例名称wsl -l -v

    当然, (据我所知,没有文档记录)~指示它从您的主目录启动。您也可以使用参数wsl.exe --cd,但它需要 Windows 路径,因此它必须是类似 的内容wsl.exe --cd "\\wsl$\Ubuntu18.04\home\username"

  • 现在,Windows 终端应该将您的实例启动到您的主目录中。

  • 因为听起来您已经将该配置文件设置为默认配置文件,所以您只需将 Windows 终端固定到任务栏并立即启动它就可以了。

  • 但是如果您有一个想要作为默认配置文件的其他配置文件,您仍然可以使用wt.exe -p Ubuntu18.04(或您的配置文件“名称” settings.json)启动 Windows 终端。

相关内容