在 ubuntu 命令行中,在 Win10 WSL 的文件管理器中打开一个文件夹?

Pat*_*パトシ 6 command-line nautilus filemanager windows-subsystem-for-linux

在 Ubuntu 中,我通常会这样做

nautilus .
Run Code Online (Sandbox Code Playgroud)

在 GUI 中打开当前文件夹。
我将如何在 Win10 WSL 中执行此操作?您甚至可以从 WSL 命令行启动窗口应用程序吗?

Gre*_*Ros 10

运行鹦鹉螺

您可以nautilus从 WSL运行!这将让您管理 Linux 文件系统。

这并不完全适合这个 SE,因为它主要是一个与 Windows 相关的问题,但它在这里。

只要您拥有基于 Windows 的 X11 服务器,Nautilus 和许多其他 linux 应用程序就可以在 WSL 上运行。X11 是大多数 Linux 依赖的窗口系统,但它也可以安装在 Windows 上。X11 在客户端-服务器模式下运行,该模式将调用客户端代码与服务器分离,因此 WSL 外的调用非常透明。

您可以使用 X11 服务器运行的其他内容包括:

  • 升华
  • 各种终端模拟器
  • 计算器
  • 可能还有其他我没试过的东西。

获取 X11 服务器

有一些基于 Windows 的 X11 服务器。请注意,服务器使用 TCP 工作,默认情况下它可以接受来自任何 IP 的连接,因此您可能希望在防火墙中对其进行限制。

我用这个:

https://sourceforge.net/projects/vcxsrv/

将 WSL 连接到它

把它放在你的.bashrc/.zshrc文件中:

export DISPLAY=localhost:0.0
Run Code Online (Sandbox Code Playgroud)

运行鹦鹉螺

不要忘记sudo apt update。然后sudo apt install nautilus。然后

nautilus .
Run Code Online (Sandbox Code Playgroud)

跑步 explorer.exe

您可以从 WSL 调用任何 Windows 可执行文件,包括explorer.exeWindows 文件管理器。你只需要输入它的全名(包括扩展名),如果它是一个 Win32 可执行文件,它就会启动。

但是,Windows 应用程序在 Windows 下运行,而不是在 WSL 下运行。他们不会看到 Linux 文件系统,只会看到 Windows 文件系统。虽然 Linux 文件系统确实映射到 Windows 文件系统中的文件和文件夹,但这种映射或多或少是一个实现细节。不建议从 Windows 修改 Linux 文件系统。

您提供explorer.exe参数,但请注意,您不能为其提供 Linux 路径,因为它不是 Linux 应用程序。

没有命令可以将 Linux 路径映射到相应的 Windows 路径,而且该路径通常非常难看。例如,路径~/.zshrc可能是:

C:\Users\[WINDOWS USERNAME]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\[LINUX USERNAME]\.zshrc
Run Code Online (Sandbox Code Playgroud)


Tra*_*er1 5

wslview是您最有可能寻找的命令,它是WSL 实用程序的一部分,并预安装在最新的 Ubuntu for Windows 版本上。

例如,打开当前目录的文件资源管理器:

wslview .
Run Code Online (Sandbox Code Playgroud)

在网络浏览器中打开 html 文档:

wslview readme.html
Run Code Online (Sandbox Code Playgroud)

open它的功能与 macOS 终端上的功能非常相似。事实上,我在我的~/.bashrc文件中设置了一个别名。

# open to match macOS-style use
alias open=/usr/bin/wslview
Run Code Online (Sandbox Code Playgroud)

这很有用,因为 bashopen对我来说似乎在 WSL2 中无法正常工作。