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

时间:2018-03-28 04:45:04

标签: windows windows-subsystem-for-linux

当从他的开发机器上的商店安装Subsystem for 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

请投票支持。

8 个答案:

答案 0 :(得分:13)

如果您在任务管理器中检查资源管理器的“在这里打开Linux shell”选项如何打开wsl,您会看到有一个“ --cd”选项。

答案 1 :(得分:4)

如果使用wsl.exe,它将在当前目录中启动WSL。但wslubuntu之间的区别在于,如果您安装了两个或更多个发行版(例如,Ubuntu和Fedora),则默认的一个将开始。您可以通过运行wslconfig /setdefault Ubuntu将默认值设置为Ubuntu。

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

答案 2 :(得分:3)

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

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

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

答案 3 :(得分:2)

ubuntu run
  

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

据我所知,其效果与运行ubuntu相同,只是它从当前目录开始。

即使在资源管理器中右键单击“在此处打开”命令,此命令也可以工作。改编自this article

  • RegEdit到HKEY_CLASSES_ROOT\Directory\Background\shell并创建一个新密钥
  • 编辑(Default)以“在此处打开Ubuntu”或类似的工具。
  • 添加名为command的密钥
  • (Default)修改为ubuntu run

现在,在资源管理器中,您可以使用功能强大的“在此处打开Ubuntu”右键菜单。


wsl的问题在于,即使wsl bash窗口启动了Ubuntu发行版,它也没有Ubuntu图标。

答案 4 :(得分:1)

使用此小脚本,您可以从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

答案 5 :(得分:1)

我在Windows 10 Home上安装了May Update,并安装了适用于WSL的Ubunto 18.04,我可以通过 Shift +右键单击在任何文件夹中打开控制台,然后选择 Open Linux shell 选项

enter image description here

答案 6 :(得分:0)

对我有用的方法是(WSL2和Ubuntu 20.04):

settings.json-将此行添加到“ Ubuntu-20.04”部分:

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

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

答案 7 :(得分:0)

首先,您必须检查 wsl 是否默认使用 ubuntu。 对我来说不是。在 cmd 上写入以下命令:

wsl -l

Like this

如果不是,则写入 wsl -s Ubuntu-20.04 以将其设置为默认值。 现在您可以通过执行 shift + Rightclick 从任何目录运行 ubuntu bash,如图 Here 所示。