Scott Hanselman

VIDEO: How to run Linux and Bash on "Windows 10 Anniversary Update"

July 01, 2016 Comment on this post [18] Posted in Win10
Sponsored By

Ya, I'm not a fan of the name Windows 10 "Anniversary Update" but it has been a year since Windows 10 came out. It's my daily driver and it gets better every month. This year it's gonna get better (like Windows 10.1 better if you ask me) with an update that's coming August 2nd!

In that update (or in the Windows 10 Insider Builds you can get if you're a techie or adventurous) you're going to get a lot of nice polish AND the ability to optionally run Linux (ELF) Binaries on Windows 10 at the command line. The feature is the Linux Subsystem for Windows or "Bash on Windows" or sometimes "Ubuntu on Windows." Call it what you like, they're real, and they're spectacular.

We first saw Bash on Windows 10 in march of this year at the BUILD conference.

Developers can run all their Linux user-mode developer tools like Redis or even TensorFlow (without GPU support).

I went and recorded a 20 min video screencast showing what you need to do to enable and some cool stuff that just scratches the surface of this new feature. Personally, I love that I can develop with Rails on Windows and it actually works and isn't a second class citizen. If you're a developer of any kind this opens up a whole world where you can develop for Windows and Linux without compromise and without the weight of a VM.

I hope you enjoy this video! Also check out (and share) my other Windows 10 videos or my Windows 10 playlist at http://hanselman.com/windows10.

Sponsor: Build servers are great at compiling code and running tests, but not so great at deployment. When you find yourself knee-deep in custom scripts trying to make your build server do something it wasn't meant to, give Octopus Deploy a try.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service
July 01, 2016 8:33
Hi Scott, When are we getting multiple tabs on command window?
July 01, 2016 8:41
Cool stuff.

Would things similar to "import os, sys" in Python work as expected using Ubuntu on Windows?
July 01, 2016 8:55

Hi Scott,
Have you tried to install Docker?
July 01, 2016 9:26
You typed "desktop" in the command prompt, and it took you to your desktop folder. Is that a Windows 10 Anniversary update as well? Or is it some custom command you have installed?
July 01, 2016 15:47
when will we see this in windows server instead of Workstation
pm
July 01, 2016 16:07
not for running server workloads but because I use server as a dev box
pm
July 01, 2016 16:46
The words 'game changer' get thrown about a bit too much but this definitely opens up lots of possibilities as Scott says. The reason I switched to a Mac a couple of years ago was the frustration I experienced whenever I developed anything outside the .NET world. The problem wasn't Microsoft or the technologies themselves (Python for example has very good Windows support) but the army of third party developers and vendors who never thought about Windows. So I'd find myself writing something in Node or Django and then there'd be a cool plugin that I wanted to use that simply would not work. The Linux Subsystem on Windows should (hopefully) see a lot of these problems go away.
July 01, 2016 17:31
Sam - That's just a batch file I put in my utils folder, which is in my path.

Yasin - That won't work since there isn't a Linux Kernel. So I use Docker for Windows.

Irfan - It should.
July 01, 2016 18:04
Hi Scott, thanks for this video. Interesting stuff!
July 01, 2016 18:40
Hi - PM for Console & Bash here:

Great video Scott - you beat me to it! :D Thanks for doing this!!

@Amit: Tabs are one of the most popular feature votes on our UserVoice and are on our backlog.

@Yasin: We don't support Docker Engine on Bash/WSL, but you CAN run the docker client and operate a Linux VM/machine.

@PM: We don't ship Bash/WSL on Server. Why do you still use Server as a desktop OS? What features aren't on desktop Windows 10 these days that you need?
July 01, 2016 20:54
Thanks Rich,
Once you guys come up with the tabs, I can switch to Windows Console from ConEmu.. :)
July 02, 2016 5:46
Hi, I modified my .dotfiles, so that they are "Windows 10 ¦ Bash" and "Cygwin" compatible ... :)

PS: You can also use Zsh on top of your "Windows 10 ¦ Bash" + ConEmu

https://github.com/voku/dotfiles
July 04, 2016 2:39
I think I am missing the point. Can someone tell me understand why are we doing this?
July 04, 2016 19:47
Hi Scott, thanks for the great video.

I have a couple of questions:

Can you quickly talk us through getting the Ubuntu font looking right? I downloaded the font from Ubuntu directly, but the font doesn't size itself quite right. I don't know if there are settings in ConHost that I need to tweak to get it to look right.

Secondly, I was wondering if support for Puppet is planned. Our Linux developer environments are maintained using Puppet scripts, and parts of Puppet don't seen to work quite right. I know that this could be because tasks run by Puppet are doing Kernel-level tasks, but I just wanted to know if and when Puppet support, at least from a preliminary level, would be supported so that I know I can work on the problems

Thanks again,
Shafiq.
July 04, 2016 20:13
"they're real, and they're spectacular"
ROFL Seinfeld quote? Nice
July 06, 2016 9:54
Please, please don't promote the madness that is calling the technology stack "Bash on Windows."
July 06, 2016 11:38
This is for Rich Turner- Rich, ConEmu is much faster than cmd for a cherry picked case I tried- (both are much slower than Linux terminals unfortunately, this is with build number ending in 36). A very simple test- hit enter key continuously and watch both terminals stutter, its jarring when you're typing in a lot of commands really fast. I know Windows 10 is free and you guys are already doing a wonderful job but if I can ask for something else- I'd like a fast terminal.


Conemu responds much faster than CMD (20% to 100%).
Test:

choco install ConEmu

Open cmd and ConEmu side by side

Type bash.exe in cmd and then on bash, type: time seq 1 100000. Note the real time used

Type bash.exe in ConEmu and then on bash, type: time seq 1 100000. Note the real time used

On my machine (which is Intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz), it takes ConEmu consistently 6-6.5 seconds, cmd about 7.5 (best) to 9 (mode) to 13 seconds.

July 17, 2016 15:09
Scott,

Very illustrative video. I've been eagerly awaiting this!

BTW, how do you make your screencasts, with your video on? Does Camtasia allow it, or you do something else? Your article (http://www.hanselman.com/blog/TheGuideToCreatingQualityTechnicalScreencasts.aspx) is excellent, but I wanted to know how you do things like "fast-forwarding installs" etc.

Thanks,
Karthik

Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.