18
  1. What is the difference in their functions? Is one of them more compatible or something else? Why Microsoft bother developing these two which look identical?
  2. The file location. Files for the bash on Ubuntu on Windows are located in C:\Users\<username>\AppData\Local\lxss, but where are they for WSL? There is an answer which claims them to be at C:\Users\<username>\AppData\Local\Lxss\rootfs, but I find it empty.
  3. Is there an ".exe" for WSL? For bash on Ubuntu on Windows it is "C:\Windows\sysnative\bash.exe". Is there something like this for WSL so I can use it in Visual Studio Code?

2 Answers 2

19

"Bash on Ubuntu on Windows" is based on Windows Subsystem for Linux. WSL is an implementation of Linux system calls on the Windows' NT kernel, which allows you to run Linux executables unmodified (like Wine does for Ubuntu). "Bash on Ubuntu on Windows" is just one application of WSL. Other Linux distros like openSUSE or Fedora are either available or will soon be available.

There are "exe"s for WSL. Originally there used to bash.exe, then came wsl.exe, and now there's ubuntu.exe and openSUSE-42.exe. Presumably fedora.exe will appear soon. From the MSDN post Manage multiple Linux Distributions in WSL:

There are three ways to launch and run WSL:

  • wsl.exe or bash.exe
  • wsl -c [command] or bash -c [command]
  • [distro], i.e., ubuntu -- this is the same as launching the installed app from the Windows menu.

In the first two cases, WSL must pick a distribution to run - a default distribution. If you don't explicitly set a default, it will be the first one installed.

Where the files for WSL are will depend on the distro, now that they are apps installed from the store:

Each distribution you install through the store is installed to that application's appdata directory. For example: C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

2
  • 3
    Which is one of the reasons Microsoft retired Bash on Ubuntu on Windows once they introduced multiple WSL distributions. The feature is officially called WSL which stands for Windows Subsystem for Linux. Bash on Ubuntu on Windows came from the ability to run (Linux) bash scripts within a Ubuntu kernel on Windows.
    – Ramhound
    Oct 23, 2017 at 16:51
  • 7
    The funny thing is that running bash.exe or (more precisely, C:\Windows\System32\bash.exe), still "works", however it gives a different environment than [ubuntu|<distro>].exe, which complicates things a lot. Frankly, I don't know why bash.exe still exists or why it doesn't just route to the preferred distro. Edit: Use wslconfig from cmd.
    – Christian
    Jul 3, 2018 at 19:40
-1

Dug around to find this, hope this helps

From Microsoft

https://docs.microsoft.com/en-us/windows/wsl/wsl-config#managing-multiple-linux-distributions-in-earlier-windows-versions

Available in Windows Build 17092 (version 1903) and prior

In Windows 10 prior to version 1903, the WSL Config (wslconfig.exe) command-line tool should be used to manage Linux distributions running on the Windows Subsystem for Linux (WSL). It lets you list available distributions, set a default distribution, and uninstall distributions.

To list distributions, use:

wslconfig /list Lists available Linux distributions available to WSL. If a distribution is listed, it's installed and ready to use.

wslconfig /list /all Lists all distributions, including ones that aren't currently usable. They may be in the process of installing, uninstalling, or are in a broken state.

To set a default distribution that runs when you run wsl on a command line:

wslconfig /setdefault <DistributionName> Sets the default distribution to .

Example: (using PowerShell) wslconfig /setdefault Ubuntu would set my default distribution to Ubuntu. Now when I run wsl npm init it will run in Ubuntu. If I run wsl it will open an Ubuntu session.

To unregister and reinstall a distribution:

wslconfig /unregister <DistributionName> Unregisters the distribution from WSL so it can be reinstalled or cleaned up.

For example: wslconfig /unregister Ubuntu would remove Ubuntu from the distributions available in WSL. When I run wslconfig /list it will not be listed.

Available in Windows Build 17093 and later

Configure per distro launch settings with wslconf

Automatically configure certain functionality in WSL that will be applied every time you launch the subsystem using wsl.conf.

Right now, this includes automount options and network configuration.

wsl.conf is located in each Linux distribution in /etc/wsl.conf. If the file is not there, you can create it yourself. WSL will detect the existence of the file and will read its contents. If the file is missing or malformed (that is, improper markup formatting), WSL will continue to launch as normal.

1
  • 2
    This is helpful but would you consider also adding points related to thr question 😅 ?
    – Pe Dro
    Aug 24, 2020 at 3:29

You must log in to answer this question.

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