Not April Fool’s Joke
As announced at Build 2016, Windows 10 will be able to run Ubuntu binaries via bash directly on Windows 10. This isn’t a VM, or an emulator, or a container or Cygwin—these are ELF binaries running natively on Windows (if you remember the days of MS-DOS and how it also had a CP/M runtime, this is analogous). This isn’t the full Linux kernel—Windows still handles hardware I/O, and this doesn’t include any of the Linux UIs. Just a very rich set of binaries you can access via the bash* command line.
Making it Work
First, you need to be on build 14316. Build 14316 was released to the fast ring on 4/6/2016, so depending on your sped of getting and applying Windows updates, it might be a while before you see it. If you don’t know what build you’re running, you can check in All Settings >> System > About >> OS Build.
If you have the right build, you next need to enable “Developer mode”, which allows you to install applications and features which are less fully baked. To do this, go All Settings >> Update & security >> For developers >> Developer mode.
Finally, you need to install the Windows Subsystem for Linux feature. Do do this, go Control Panel >> Programs >> Turn Windows features on or off (under Programs and Features section). Select “Windows Subsystem for Linux (Beta)”.
You can now run bash by opening a command prompt and typing “bash” (you may have to reboot after adding the feature above). The first time you do this, bash will be installed, but subsequent times bash will just start. You’ll also have a new “Bash on Ubuntu on Windows” entry in All Programs you can pin to the Start menu and save you the command prompt. Once you see the # prompt (meaning you have superuser privileges in bash) you’re ready to roll.
Additional Resources
Scott Hanselman – Developers can run Bash Shell and user-mode Ubuntu Linux binaries on Windows 10
Dustin Kirkland – Ubuntu on Windows — The Ubuntu Userspace for Windows Developers and HOWTO: Ubuntu on Windows
Channel 9 – Linux Command Line on Windows
Russ Alexander and Rich Turner – Running Bash on Ubuntu on Windows!
If you’re new to the Linux command line, I highly recommend this book, I’ve learned a lot and it’s not painful to read:
* TIL: bash stands for “Bourne Again Shell”, named for its originator Steve Bourne. I learned that from the above book!