Windows Subsystem for Linux

Bash on Ubuntu on Windows

If you have the Windows 10 Anniversary Edition (Version 1607) or later and the 64-bit version then you can enable Bash on Windows 10, see Bash on Ubuntu on Windows - About for details, alternatively Discover the power of Bash on Windows | InfoWorld is a good article.

If you execute the command lsb_release -a in a Windows Bash window then you will see which version of Ubuntu you have. With Windows 10 Anniversary this is Ubuntu 14.04.5 LTS, however with Creators Edition this is updated to Ubuntu 16.04. However you need to do some manual steps to get Ubuntu to update. I believe you need to do the following:

  • Run PowerShell as Administrator
  • lxrun /uninstall /full
  • lxrun /install /y

However I have not tested this myself.

Windows Subsystem for Linux

The default and original implementation is to use Ubuntu, as mentioned elsewhere. However you can change this to openSUSE, as mad as that sounds, it is possible, see You can now install SUSE Linux distribution inside WSL on Windows 10 - MSPoweruser or Make Windows green again – Part 1 - SUSE Blog | SUSE Communities for details.

Tips & Tricks

You can run scripts that exist inside WSL from outside, say in PowerShell or the Command Prompt as follows:
C:\Windows\System32\bash.exe -c "sh /path/for/scriptfile.sh"
This does mean you can schedule Linux commands to run in WSL from the Windows Task Scheduler.

If you want to see some more tips for WSL then WSL Tips and Tricks | A collection of tips and tricks for the Windows Subsystem for Linux is a handy resource.

WSL2

We now have Windows Subsystem for Linux 2, which actually uses a lightweight VM to run a proper Linux kernel, see About WSL 2 | Microsoft Docs for more details on this. In summary WSL 1 emulates the Linux Kernel Application Binary Interface (ABI), but WSL 2 runs the Linux kernel using hardware-accelerated virtualization (Hyper-V).