Let’s use bash on Windows!

Windows Subsystem for Linux (Beta)


When I think of *nix systems, the terminal is usually the first thing that comes to mind. Until lately, one has been able to use *nix kernel services on Windows. Of course, emulators like cygin have been around for a long time, but they just allowed access to common terminal commands, rather than giving access to kernel services. Subsystem for Linux (Beta) is a compatibility layer (much like wine) which uses ubuntu 14.04. ubuntu’s kernel is actually installed, so a real *unix system can finally be used on Windows.




*As stated in the name, this is just a Beta version. While it seems well made, there are still some kernel
services not yet available, so it is not recommended to use on a production environment.





Let’s install it!

First you need build 14393 of Windows 10 or later. You can confirm your version with the steps below.

Settings > System > Version Information


If you need to upgrade, be sure to do so before proceeding.

Next you need to enable Developer Mode. That can be done in the path below.

Settings > Updates and Security > For Developers


Once you’ve cleared the two conditions above, you can finally install. Search for and select 「Turn Windows features on or off」. Once selected, a list of features will appear. Check Subsystem for Linux (Beta) and hit OK, and it will be installed. After it is intalled, you will need to restart your computer.

Once you’ve restarted, open cmd, and when you enter ‘bash’, the ubuntu kernel will be installed. At that time you will be asked to set a username and password.


Shells other than bash


Also, this isn’t just for bash, you can easily use the shell of your choice.

For example, to install zsh, you would type the line below.

sudo apt-get install zsh


fish is of course also installed in the
same manner.

sudo apt-get install fish


By the way, I’ve lately been using fish.


windows cowsay

The mandatory cowsay


With this, you can finally execute native *nix binaries on Windows without a VM. While this is still in beta, it is still a huge development for those developing on windows, or have been staying away from windows for lack of a *nix terminal.