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

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

在 Ubuntu 中我通常会这样做

nautilus .

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

答案1

运行 Nautilus

您可以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

运行 nautlius

别忘了sudo apt update。然后sudo apt install nautilus。然后

nautilus .

跑步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

答案2

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

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

wslview .

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

wslview readme.html

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

# open to match macOS-style use
alias open=/usr/bin/wslview

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

相关内容