在 Windows 上的特定或当前文件夹中启动 WSL Ubuntu

在他的开发机器上安装 Linux 和 Ubuntu 子系统时,我可以简单地切换(或启动)到 Ubuntu shell

enter image description here

但默认情况下,Ubuntu shell 在 /home/techsupp文件夹中启动。有没有可能强制它在同一个文件夹启动,而不是我使用的 Ubuntu命令?

所以在我的例子中,我应该在

/mnt/h

谢谢你。

我已经试过了:

H:\>ubuntu help
Launches or configures a linux distribution.


Usage:
<no args>
- Launches the distro's default behavior. By default, this launches your default shell.


run <command line>
- Run the given command line in that distro, using the default configuration.
- Everything after `run ` is passed to the linux LaunchProcess call.


config [setting [value]]
- Configure certain settings for this distro.
- Settings are any of the following (by default)
- `--default-user <username>`: Set the default user for this distro to <username>


clean
- Uninstalls the distro. The appx remains on your machine. This can be
useful for "factory resetting" your instance. This removes the linux
filesystem from the disk, but not the app from your PC, so you don't
need to redownload the entire tar.gz again.


help
- Print this usage message.

我还在 uservoice: https://wpdev.uservoice.com/forums/266908-command-prompt-console-windows-subsystem-for-l/suggestions/13421103-let-us-right-click-open-bash-here-from-explorer?tracking_code=8a8bc624c72a8336565fcd6d5737d712上发现了这个请求

请投票。

59450 次浏览

如果你使用 wsl.exe,它会以工作目录启动 WSL。但是 wslubuntu的不同之处在于,如果你已经安装了两个或多个发行版(e,g,Ubuntu 和 Fedora) ,默认的发行版将会启动。可以通过运行 wslconfig /setdefault Ubuntu将默认设置为 Ubuntu。

参考文献: [1] https://learn.microsoft.com/en-us/windows/wsl/wsl-config

ubuntu run

运行 < 命令行 >
在当前工作目录中运行提供的命令行
命令行,则启动默认的 shell。

据我所知,这种效果和运行 ubuntu是一样的,只不过它是从工作目录开始的。

这个命令甚至可以在浏览器中右键点击打开这个命令。改编自 这篇文章:

  • 重新编辑到 HKEY_CLASSES_ROOT\Directory\Background\shell并创建一个新密钥
  • 编辑 (Default)到“打开 Ubuntu 在这里”或类似。
  • 添加一个名为 command的密钥
  • 编辑 (Default)ubuntu run

现在你有了一个功能性的“打开 Ubuntu 在这里”在浏览器中右击菜单。


我在使用 wsl时遇到的问题是,wsl bash 窗口没有 Ubuntu 图标,即使它启动了 Ubuntu 发行版。

通过这个小脚本,您可以执行 Powershell 当前所在目录中的每个命令。它只有在驱动器已经挂载到子系统中的/mnt/时才能工作。它不能与网络资源一起工作。

function tux {$dl = (pwd).Path | wsl eval "cut -c 1 | tr 'A-Z' 'a-z'"; $wd = (pwd).Path | wsl eval "cut -d : -f 2 | tr '\\' '/' 2> /dev/null" ; wsl eval "cd '/mnt/$dl$wd' && eval '$args'"}

执行之后,你可以这样使用它:

tux vim test.txt

我在 Windows 10 Home 上安装了 Ubuntu 18.04 for WSL,我可以打开任何文件夹中的控制台,选择 这里打开 Linux shell选项

似乎有一个非常简单的解决方案。

只需在 profiles.json 文件中的 Ubuntu 配置中添加以下内容

“命令行”: “ wsl ~-d Ubuntu”,

如果在 Task Manager 中检查浏览器“ Open Linux shell here”选项是如何打开 wsl 的,则可以看到有一个“—— cd”选项。

对我有效的方法是使用 Windows 终端应用程序,并配置它在所需的位置启动。

基于 WSL2和 Ubuntu 20.04的示例:

Json-将这一行添加到“ Ubuntu-20.04”部分:

    "startingDirectory": "//wsl$/Ubuntu-20.04/home/<username>/"

更改 < username > 为您在安装 Ubuntu 20.04时创建的用户的名称。

首先,您必须检查 wsl是否默认使用 ubuntu。 在 cmd 上编写以下命令:

wsl -l

像这样

如果没有,则编写 wsl -s Ubuntu-20.04将其设置为默认值。 现在可以通过执行 Shift + 右击从任何目录运行 ubuntubash,如 给你所示。

现代解决方案

  1. 安装 windows terminal,来自微软商店

  2. 设置一下 enter image description here

  3. 一旦你安装了 ubuntu,你会在配置文件列表中看到它,然后点击 open json enter image description here

  4. 打开 cmd,键入 wsl,键入 cd,键入 pwdwslc,然后复制路径[ ! enter image description here

  5. 并把它放在 json 文件中,在 ubuntu 配置文件 startingDirectoryenter image description here

注意: 我使用 linux 主目录作为 ubuntu 使用的默认目录。因此,如果您觉得您有其他目录要使用,您可以将其替换为 /home/claranceliberi到您自己的首选目录

如果您的默认终端是 Ubuntu,那么您可以很容易地在当前目录中打开 Ubuntu

点击文件资源管理器的地址栏 enter image description here

或者你可以使用快捷键

那种类型

wt -d .

如果默认值是 Ubuntu,它将在该路径上打开 Ubuntu,或者您也可以键入

ubuntu run

无论默认终端是否为 Ubuntu,它都会在那里打开 ubuntu

步骤1: 安装 视窗终端

步骤2: 进入你想要打开 ubuntu 的文件夹,右击打开 Windows 终端。

步骤3: 转到 Windows 终端设置并导航到您的 Linux 发行版(在我的例子中是 Ubuntu 20.04)并检查这个选项。

enter image description here

现在,每次通过 Windows 终端打开 ubuntu,它都会在该目录中打开。