Bash for Windows: Why it’s awesome and what it means for PowerShell

This week at Build, Microsoft announced that we will be enabling you to run “Bash on Ubuntu on Windows” as a developer tool for Windows 10. It will natively support Ubuntu userspace and GNU/Linux utilities, including the apt-get package manager that you can use to pull down additional tools like Ruby, emacs, etc. from Canonical’s official repositories.We’re really excited to run Bash on Windows 10. I’m personally a huge fan of GNU/Linux, and many members of the PowerShell team also have a strong *nix background. While working with OSS projects, there are numerous quick scenarios where it’s immensely useful to drop into Bash from a PowerShell prompt.Many of you have also asked how support for Bash relates to PowerShell. Simply put, Bash support is complementary and strengthens the value of the command-line on Windows, allowing PowerShell and our community to leverage other popular technologies.

Specifically, Bash on Windows is a developer tool. The idea here is that you’ve got some code that already works great on Linux that you’d like extend and hack on your Windows 10 machine. Or maybe you want to play with some Ruby gems that have some GNU utility dependencies. Drop into Bash, and have a field day.

It’s worth noting that this is not a platform for running or hosting production Linux workloads or server applications. It’s not for managing Windows Server workloads. Microsoft, the PowerShell Team, and the PowerShell community built extensive coverage for Windows, Windows Server, Active Directory, IIS, Exchange, SharePoint, System Center, SQL Server, Hyper-V, and Azure. In addition, we have a large partner ecosystem that supports PowerShell on both clients and servers, and this coverage is growing.

Of course, for those of us who love our developer workflows inside PowerShell, absolutely nothing will change. Bash and PowerShell are totally side-by-side. If you never type ‘bash’ in your console, literally zero will change for you as a PowerShell user.

Lastly, while Bash on Windows natively supports the Linux OpenSSH client, this complements our plans to deliver a native Win32 version of OpenSSH and to merge it upstream with the official OpenSSH repository. There are many advantages to having a Windows native SSH client, server, and toolchain, and we see huge value in supporting the official OpenSSH project in general. (In fact, you can check out our roadmap and progress on GitHub.)

We are incredibly excited about the plans we have for the future of PowerShell. PowerShell is a first-class scripting language, interactive console, remoting experience, and configuration management platform (DSC). Keep an eye on this space as we continue introducing new features, expanding our ecosystem, and growing our community. We welcome Bash on Windows as a fantastic addition to the Windows command-line ecosystem.

Joey Aiello
Program Manager, PowerShell