Microsoft has become more focused on offering choices and including open source software options. That’s why it wasn’t much of a surprise when Microsoft announced during the Build keynote that Canonical, the company behind Ubuntu, has helped bring the Bash shell to Windows 10.
The Bash shell replaced the Bourne shell in Unix-based operating systems in 1989, and has become the standard since on both Mac OS X and almost all Linux systems. It’s easy to learn, versatile, and its reach has spread everywhere but Windows, until now.
Microsoft’s Bash shell integration isn’t just a gimmick, or a nice makeover. The command line has native access to the file system, and support for some of the most used Bash utilities.
That includes the popular code and text editor Emacs, which Kevin Gallo showed off during the on-stage introdution of the feature. That’s sure to be a hit with Linux users, many of whom have come to rely on both the Bash shell and Unix-based commands and software.
The Bash shell for Windows 10, which actually operates on a new Unix-based subsystem, also supports .sh shell scripts. That means users will be able to bring their existing scripts over to a Windows 10 system, or write new scripts in a familiar language.
Before you start worrying that Windows is going to change fundamentally to become a more Linux-like OS, it’s important to understand exactly what Bash will look like on Windows. Like launching the PowerShell, or Command Prompt, the Bash shell exists as a standalone application.
Details beyond that are still scant, but Gallo indicated the Bash shell would be enabled in the Anniversary update. Like most updates, Windows Insiders will have access to it earlier, although Microsoft hasn’t shared an exact date for that rollout.
Gallo also left the door open for more command line shells to find their way into Windows eventually. Microsoft desperately wants developers to come back to Windows, and develop for the universal Windows platform. Letting them speak their own language instead of learning a new one is just one step further towards achieving that goal.