Learn more about Bash on Ubuntu on Windows and the Windows Subsystem for Linux

Moved to a more permanent page!

Comments (28)

  1. fm says:

    Nobody has time for videos. Regular blog posts, please. Also, if you just keep updating this post, rss subscribers won’t see the new content.

    1. Click the “Blog:…” link above each video for the associated blog post.

    2. Ron says:

      I am very fond of video tutorials. Often when I am in no mood for photo, video, or html editing, I search youtube for tutorials on new interests as well as things I am already familiar with. Otherwise, I am rarely a content consumer.

      1. Great to hear – thanks for letting us know: We’re fans of video tutorials too, but know that they’re not always for everyone which is why we’ve co-published a blog post on each topic too. More to come in the following weeks 🙂

  2. iamme says:

    I agree with fm. Most of us do not have time for videos.

    1. That’s why each video is accompanied by a blog post.

  3. Sam says:

    I do not know if this is the right place to say it, but at end I just want to say thank you to the people who is making this happening

    With build 14352 I’m officially shutting down my VM Ubuntu image .. it took several builds to squash some the initial limitations for me of the initial build supporting bash; mostly the broken support to symlinks and CMAKE. But now in build 14352 all the basic pieces are there.

    This is the setup of my application:
    – A Pyro4 server runs on the Windows side, this servers answers calls from client to run simulations using CUDA in NIVIDIA GPUs

    – On the Ubuntu side, my client code uses a very specialized library for genetic optimization algorithms (http://esa.github.io/pygmo/)

    – My optimization problem requires the GPU to calculate very demanding cost functions for the optimization

    Alas, Pygmo is simply a pain to try compile in Windows. After many tries, the easiest was to simply compile it in Ubuntu and use Pyro4 to seamless delegate the calculations to the GPU on the server side

    My setup on Ubuntu just required to have Anaconda Python, compile an specific version of boost library and support to CMAKE to be able to compile Pygmo; and that is it. Anaconda Python on both client and server sides helps to have all nicely glued together.

    Starting 30 min ago, I can now run my simulations without having to boot the VM image …..

    * now if only I could ssh to my bash-windows box * 🙂

    Thanks again, can’t wait to see how this continues to evolve


    1. Many thanks for your kind words and for sharing your scenario – fascinating use of Bash on Windows 🙂 We’re working on improving ssh on Windows by contributing to OpenSSH itself: https://blogs.msdn.microsoft.com/powershell/2015/10/19/openssh-for-windows-update/

  4. BlueBitSol says:

    Good work guys, love the videos.

  5. rap3 says:

    Sry guys but still don’t get the practical point on this. Since it is a linux based subsystem i cant use all applications like my python interpreter in my windows environment variables. Which means i have to install it on my subsystem too.
    So using Linux like Ubuntu in the first place is still more comfortable. Also why you made it so complicated to activate the bash? You actually say that windows is the home of “developers” but i am still not impressed with this. Look at linux distros like manjaro and their package manager yaourt. That’s a home for developers.

    1. Re. your comments on activating Bash/WSL:

      The reason WSL is not installed on-disk by default is the same reason most OS’ don’t turn every feature they ship on-by-default: Doing so would introduce an unacceptable overhead and security threat to unsuspecting users
      The reason WSL requires developer-mode is to ensure that Bash/WSL is only available to developers who want dev tools like this to be enabled.
      The reason WSL requires a reboot is that in order for it to work correctly, and to prevent several attack vectors, it must be loaded very early in the boot sequence which thus requires a reboot to fully-enable it.

      This said, we ARE working to improve this experience in up-coming releases.

      Bash/WSL aims to deliver a genuine, highly-compatible environment in which one can run Linux user-mode distro’s, tools and apps.

      In our first release, we focused on implementing as many relevant syscalls as possible to allow WSL to run as many Linux tools as we could, rather than spending time working on smooth interop. We are, however, continuing to work on broadening and deepening our syscall implementation in order to further improve compatibility and our ability to run even more Linux code and tools in subsequent releases.

      We are also working on improving interop between Windows and Bash environments. We know you want to run Windows apps from Linux and capture the output of Linux apps from Windows.

      Don’t forget – we’re turning Windows’ development on its head and are aiming for several releases a year: Stay tuned for more on this work in the coming weeks and months.

      1. Tom says:

        sorry my last sentence wasn’t clear on “2.)”. I meant that this works fine on my my mac at home.

      2. joe says:

        Hi Rich, thank you & MSFT for this. I take it from your last response that launching a native win10 app from the WSL cli is still in the pipleline?

        eg: ~$ code
        to launch visual studio code pointing at the current folder.

        I’m currently using http://cmder.net/ as my ‘nix type shell and from here I can just type the app name eg: code

        This feature (or the lack thereof) is the only impediment adopting WSL as my default ‘nix shell


  6. Sibi says:

    I did the following steps to install bash on ubuntu on window 10, but it couldn’t install it correctly.
    When I turned the developer mode on on my system (Window 10 anniversary) it showing underneath that ‘some features might not work until you restart your pc’.
    This message always been there after restart.
    Also I checked for the window subsystem for the window.
    After restarting my PC i type bash on the search bar..and i clicked on the bash command prompt, but it popped up a window and suddenly gone.
    Can you please help me to resolve this issue.

    1. Try opening a cmd/PowerShell prompt and running Bash. You’ll likely see an error that you need to turn-off “legacy mode” in your console properties. We have a fix coming that waits a few seconds before closing the console if an error is returned when starting bash.

      1. Sibi says:

        Thanks Rich…its work now…

  7. Sven Thijssen says:

    Love these interesting videos on how it is achieved! Great to use for my studies. I used it in a task about system calls. 🙂 Can’t wait to see more of these!

    1. Glad you like them! More on the way soon 😀

      1. Abilash says:

        I am currently working in Windows desktop management I just to learn about bash on wsl can it be possible to provide starter materials and future use when we already have linux O’s how it help clien

  8. N K says:

    The installation seems to have worked fine for me (I can run bash from cmd line or pwrshell), but the “Bash on Ubuntu on Windows” app/shortcut doesn’t appear in my Start Menu or search results.

    1. What do you see if you just type “Bash” into the start menu?

      1. N K says:

        Thanks for the reply RIch! Gotta say I love this project and your dedication to the upkeep (as do a number of my coworkers)!
        Just searching “bash” gives the .exe from System32 (with the unknown/default app icon), and nothing else relevant. (http://i.imgur.com/3CuPuwH.png)

        1. Many thanks NK. Yeah, we ran into a few complexities with Bash.exe, but saw it as low-importance since most people will find Bash in the start menu, adorned with its correct icon/tile-image.

          1. N K says:

            Not a problem, I’m not a dev myself so I can only imagine the complexities. So is there a wipe/reinstall I can do to see if that fixes the weirdness?


    I am trying to find a .p12 file that is on the Bash on UonW10 and I was informed to go to

    I am not finding these files under this path, please help

    1. You should not delve around under the …\lxss\ folder: https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

      Who informed you to navigate this folder? It’s a hidden & system folder for a reason 😉

Skip to main content