10

In Ubuntu I usually do

nautilus .

to open the current folder in the GUI.
How would I do this in Win10 WSL? Can you even launch window apps from the WSL command line?

2
  • Related:Windows Ubuntu Bash GUI Nov 15, 2017 at 17:00
  • Please edit and clarify whether you want to open Linux programs like Nautilus or Windows programs like Explorer from WSL.
    – dessert
    Apr 20, 2018 at 6:29

2 Answers 2

14

Running Nautilus

You can run nautilus from WSL! This will let you manage the Linux file system.

This isn't exactly appropriate for this SE, because it's mostly a windows-related question, but here it is.

Nautilus and many other linux applications can be run on WSL as long as you have a Windows-based X11 server. X11 is the window system most of Linux relies on, but it can be installed on Windows too. X11 runs in client-server mode that decouples the calling client code from the server, so calls out of the WSL are pretty transparent.

Other things you can run with an X11 server include:

  • Sublime
  • Various terminal emulators
  • Calculators
  • Probably other things I haven't tried.

Getting the X11 server

There are a few Windows-based X11 servers. Note that the server works using TCP, and by default it can accept connections from any IP, so you might want to restrict it in your firewall.

I use this one:

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

Connecting WSL to it

Just put this in your .bashrc/.zshrc file:

export DISPLAY=localhost:0.0

Running nautlius

Don't forget to sudo apt update. Then sudo apt install nautilus. Then

nautilus .

Running explorer.exe

You can invoke any Windows executable from the WSL, including explorer.exe, the Windows file manager. You just need to type its full name (including the extension), and if it's a Win32 executable, it will start.

However, Windows applications run under Windows, not under WSL. They won't see the Linux file system, only the Windows one. While it's true that the Linux file system is mapped to files and folders in the Windows file system, this mapping is more-or-less an implementation detail. It's not recommended to modify the Linux file system from Windows.

You give explorer.exe arguments, but note that you can't give it Linux paths because it's not a Linux application.

There is no command to map a Linux path to the corresponding Windows path and the path is usually pretty ugly. For example, the path to ~/.zshrc might be:

C:\Users\[WINDOWS USERNAME]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\[LINUX USERNAME]\.zshrc
3
  • Thank you! This worked great! Very easy and straightforward explanation :) Sep 18, 2018 at 8:04
  • At the date of this comment, nautilus does not work very well (throws an error when trying to open the Desktop), even when it is run with sudo. Feb 4, 2020 at 14:50
  • @silviubogan I routinely use nautilus on WSL. Never had any trouble with it. There is no reason to run it with sudo unless you want admin permissions. You should create another question about it, with the error and the steps you took.
    – GregRos
    Feb 4, 2020 at 18:02
5

wslview is the command you are most likely looking for, which is part of the WSL Utilities and pre-installed on most recend Ubuntu for Windows releases.

For example, opening a file explorer for the current directory:

wslview .

Open an html document in a web browser:

wslview readme.html

It functions pretty much like open does on macOS terminals. In fact, I set an alias in my ~/.bashrc file.

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

Which is useful since bash's open doesn't seem to work correctly in WSL2 for me.

1
  • Thank you! That's exactly what I was looking for. Much better than install nautilus + x11 Sep 27, 2020 at 11:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .