Windows with linux shell

How to Install Linux Bash Shell on Windows 10

Last updated October 29, 2020 By Abhishek Prakash 104 Comments

Brief: This beginner’s tutorial shows you how to install bash on Windows.

Linux on Windows is a reality, thanks to the partnership between Canonical (parent company of Ubuntu) and Microsoft. When Microsoft’s CEO announced that the Bash shell was coming to Windows, a number of people just couldn’t believe it. #BashOnWindows trended on Twitter for days, such was the impact of this news.

But Bash on Windows was not available to everyone immediately. People had to install the Windows 10 technical preview to install Linux on Windows 10. But this is not the case anymore. The Windows 10 anniversary upgrade is here and now you can easily get Bash on Windows. And, before we go on installing Bash on Windows, let me tell you a little more about it.

Note: This tutorial was tested with the latest available Windows 10 version 2004 and build 19041.450. You might need to update your Windows installation if you’ve an older build to follow everything in this tutorial.

What is Bash on Windows?

Bash on Windows provides a Windows subsystem and Ubuntu Linux runs atop it. It is not a virtual machine or an application like Cygwin. It is complete Linux system inside Windows 10.

Basically, it allows you to run the same Bash shell that you find on Linux. This way you can run Linux commands inside Windows without the needing to install a virtual machine, or dual boot Linux and Windows. You install Linux inside Windows like a regular application. This is a good option if your main aim is to learn Linux/Unix commands.

I recommend reading this article to know more about Bash on Windows.

Method 1: Install Linux Bash Shell on Windows 10 Newer Versions

Good thing is that the Fall Creator’s Update and the recent Windows 10, version 2004 makes it easier to install Bash on Windows 10. You can get it in one click from Windows Store. There are still a few things to do however.

I am installing Ubuntu using Windows Subsystem for Linux. You can also use SUSE Linux. The procedure is same for both distributions.

Step 1: Enable “Windows Subsystem for Linux” feature

The first thing you need to do is to enable Windows Subsystem for Linux feature from PowerShell or from the Windows feature options.

If you want to utilize the GUI, you can simply search for option to get the list of Windows features to enable a few things as shown in the screenshot below.

Now, you just have to open it to access all the options. Among the ones listed, you have to enable (or check) the feature for “Windows Subsystem for Linux” and “Virtual Machine Platform” and then perform a reboot to make sure you have both of them enabled.

In either case, if you want to utilize the PowerShell, you can just go to the Start menu and search for PowerShell. Run it as administrator:

Once you have the PowerShell running, use the command below to enable Bash in Windows 10.

You’ll be asked to confirm your choice. Type Y or press enter:

Now you should be asked to reboot. Even if you are not asked to, you must restart your system.

Step 2: Download a Linux system from the Windows store

Once your system has rebooted, go to the Windows Store and search for “Linux” or just “Ubuntu”.

You’ll see the option to install Ubuntu or SUSE. I have installed Ubuntu for Bash on Windows here.

What’s the difference between using Ubuntu or openSUSE or SUSE Linux Enterprise? And which one should you use?

To tell you quickly, the main difference would be in the commands for installing new packages inside these Linux subsystems. I advise going for Ubuntu in this case.

Once you choose the distribution of your choice, you’ll see the option to install it. Do note that it will download files of around 1Gb in size or less depending on what you’re downloading.

Step 3: Run Linux inside Windows 10

You are almost there. Once you have installed Linux, it’s time to see how to access Bash in Windows 10.

Just search for the Linux distribution you installed in the previous step. In my case it was Ubuntu. You’ll see that it runs like a normal Windows application.

It will take some time installing and then you’ll have to set up the username and password.

Don’t worry, it’s just for the first run. Bash shell will be available for use directly from the next time onwards.

Читайте также:  Windows system32 libs exe

Enjoy Linux inside Windows 10.

Troubleshooting 1: The WSL optional component is not enabled. Please enable it and try again.

You may see an error like this when you try to run Linux inside Windows 10:

And when you press any key, the application closes immediately.

The reason here is that the Windows Subsystem for Linux is not enabled in your case. You should enable it as explained in step 1 of this guide. You can do that even after you have installed Linux from Windows Store.

Troubleshoot 2: Installation failed with error 0x80070003

This is because Windows Subsystem for Linux only runs on the system drive i.e. the C drive. You should make sure that when you download Linux from the Windows Store, it is stored and installed in the C Drive.

Go to Settings -> Storage -> More Storage Settings: Change where new content is saved and select C Drive here.

Method 2: Install Linux Bash Shell on older Windows 10

If you cannot get the Fall Creator’s update on Windows 10 for some reason, you can still install it if you have the Anniversary update of Windows 10. But here, you’ll have to enable developer mode. I still recommend upgrading to the Fall Creator’s update or the latest Windows 10 2004 version update though.

Step 1:

Press Windows Key + I to access Windows system settings. In here, go to Update & Security:

Step 2:

From the left side pane, choose “For developers.” You’ll see an option for “Developer mode.” Enable it.

Step 3:

Now search for Control Panel and in Control Panel, click on “Programs”:

Step 4:

In Programs, click “Turn Windows features on or off”:

Step 5:

When you do this, you’ll see several Windows features. Look for “Windows Subsystem for Linux” and enable it.

Step 6:

You’ll need to restart the system after doing this.

Step 7:

After restarting the computer, click the start button and search for “bash”.

Step 8:

When you run it for the first time, you’ll be given the option to download and install Ubuntu. You’ll be asked to create a username and password during this process. It will install an entire Ubuntu Linux system, so have patience as it will take some time in downloading and installing Linux on Windows.

Step 9:

Once this is done, go back to the Start menu and search for Ubuntu or Bash.

Step 10:

Now you have a command line version of Ubuntu Linux. You can use apt to install various command line tools in it.

Bonus Tip: Run GUI Apps On Windows Subsystem for Linux

The ability to run GUI apps on Windows Subsystem for Linux was introduced with WSL 2 release in May 2020.

It’s still not something officially supported out-of-the-box, but if you’re curious, you can experiment with it by following the steps below:

Step 1: Enable/Update WSL 2

If you have the latest Windows version 2004, build 19041, you already have WSL 2 support but you need to enable it and set it to default instead of WSL 1.

To do that, first you need to ensure that you have the latest WSL 2 Linux Kernel by updating the WSL 2 Linux Kernel.

You just need to follow the instructions on the official documentation page and download/install the package. Once done, you need to launch the PowerShell (run it as administrator) and set WSL 2 as the default by typing the following command:

You should get a message that says “For information on key differences with WSL 2 please visit https://aka.ms/wsl2”.

In case you get an error (Error: 0x1bc), you need to make sure that you have updated the WSL 2 Linux Kernel, that solved the issue for me.

Step 2: Download and Install a Windows X Server Program

As I mentioned, WSL 2 does not have the official support for running GUI apps by default. So, to do it, we need to download and install a Windows X Server program to give WSL access to display the apps.

You can try the open-source XLaunch server that we’re using here.

Step 3: Configure Windows X Server

Now that you have installed it, you just need to configure a few things.

First, Launch XLaunch and proceed to ensure that you have the following options enabled:

1. Keep the Display number set as -1 and select “Multiple Windows

2. Next, you need to enable “Start no client“.

3. Finally, you just need to check “Disable access control” to avoid permission issues and save the configuration on the next step to complete the configuration.

Now everything’s almost done, you need to launch Ubuntu from the list of apps installed and configure it to launch Linux GUI apps on Windows.

Just enter the following command in the Linux terminal (Ubuntu):

Now, just install your favorite Linux GUI app from the terminal and test if it works! In my case, I installed and launched Gedit using the following commands:

And, here’s how it looks:

I hope you find this tutorial helpful for installing bash on Windows 10 and experimenting Linux GUI apps on Windows 10. No wonder WSL lets you play with Linux inside of Windows. If you have questions or suggestions, feel free to ask.

Like what you read? Please share it with others.

Windows Subsystem for Linux Installation Guide for Windows 10

There are two options available for installing Windows Subsystem for Linux (WSL):

Simplified install (preview release): wsl —install

The wsl —install simplified install command requires that you join the Windows Insiders Program and install a preview build of Windows 10 (OS build 20262 or higher), but eliminates the need to follow the manual install steps. All you need to do is open a command window with administrator privileges and run wsl —install , after a restart you will be ready to use WSL.

Читайте также:  Kali linux all programs

Manual install: Follow the six steps listed below.

The manual install steps for WSL are listed below and can be used to install Linux on any version of Windows 10.

If you run into an issue during the install process, check the Troubleshooting installation section at the bottom of this page.

Simplified Installation for Windows Insiders

The installation process for Windows Subsystem for Linux has been significantly improved in the latest Windows Insiders preview builds of Windows 10, replacing the manual steps below with a single command.

In order to use the wsl —install simplified install command, you must:

  • Join the Windows Insiders Program
  • Install a preview build of Windows 10 (OS build 20262 or higher).
  • Open a command line windows with Administrator privileges

Once those requirements are met, to install WSL:

  • Enter this command in the command line you’ve opened in Admin mode: wsl.exe —install
  • Restart your machine

The first time you launch a newly installed Linux distribution, a console window will open and you’ll be asked to wait for files to de-compress and be stored on your PC. All future launches should take less than a second.

CONGRATULATIONS! You’ve successfully installed and set up a Linux distribution that is completely integrated with your Windows operating system!

The —install command performs the following actions:

  • Enables the optional WSL and Virtual Machine Platform components
  • Downloads and installs the latest Linux kernel
  • Sets WSL 2 as the default
  • Downloads and installs a Linux distribution (reboot may be required)

By default, the installed Linux distribution will be Ubuntu. This can be changed using wsl —install -d . (Replacing with the name of your desired distribution.) Additional Linux distributions may be added to your machine after the initial install using the wsl —install -d command.

To see a list of available Linux distributions, enter wsl —list —online .

Manual Installation Steps

If you are not on a Windows Insiders build, the features required for WSL will need to be enabled manually following the steps below.

Step 1 — Enable the Windows Subsystem for Linux

You must first enable the «Windows Subsystem for Linux» optional feature before installing any Linux distributions on Windows.

Open PowerShell as Administrator and run:

We recommend now moving on to step #2, updating to WSL 2, but if you wish to only install WSL 1, you can now restart your machine and move on to Step 6 — Install your Linux distribution of choice. To update to WSL 2, wait to restart your machine and move on to the next step.

Step 2 — Check requirements for running WSL 2

To update to WSL 2, you must be running Windows 10.

  • For x64 systems: Version 1903 or higher, with Build 18362 or higher.
  • For ARM64 systems: Version 2004 or higher, with Build 19041 or higher.
  • Builds lower than 18362 do not support WSL 2. Use the Windows Update Assistant to update your version of Windows.

To check your version and build number, select Windows logo key + R, type winver, select OK. Update to the latest Windows version in the Settings menu.

If you are running Windows 10 version 1903 or 1909, open «Settings» from your Windows menu, navigate to «Update & Security» and select «Check for Updates». Your Build number must be 18362.1049+ or 18363.1049+, with the minor build # over .1049. Read more: WSL 2 Support is coming to Windows 10 Versions 1903 and 1909. See the troubleshooting instructions.

Step 3 — Enable Virtual Machine feature

Before installing WSL 2, you must enable the Virtual Machine Platform optional feature. Your machine will require virtualization capabilities to use this feature.

Open PowerShell as Administrator and run:

Restart your machine to complete the WSL install and update to WSL 2.

Step 4 — Download the Linux kernel update package

Download the latest package:

If you’re using an ARM64 machine, please download the ARM64 package instead. If you’re not sure what kind of machine you have, open Command Prompt or PowerShell and enter: systeminfo | find «System Type» . Caveat: On non-English Windows versions, you might have to modify the search text, for example, in German it would be systeminfo | find «Systemtyp» .

Run the update package downloaded in the previous step. (Double-click to run — you will be prompted for elevated permissions, select ‘yes’ to approve this installation.)

Once the installation is complete, move on to the next step — setting WSL 2 as your default version when installing new Linux distributions. (Skip this step if you want your new Linux installs to be set to WSL 1).

Step 5 — Set WSL 2 as your default version

Open PowerShell and run this command to set WSL 2 as the default version when installing a new Linux distribution:

Step 6 — Install your Linux distribution of choice

Open the Microsoft Store and select your favorite Linux distribution.

The following links will open the Microsoft store page for each distribution:

From the distribution’s page, select «Get».

The first time you launch a newly installed Linux distribution, a console window will open and you’ll be asked to wait for a minute or two for files to de-compress and be stored on your PC. All future launches should take less than a second.

CONGRATULATIONS! You’ve successfully installed and set up a Linux distribution that is completely integrated with your Windows operating system!

Install Windows Terminal (optional)

Windows Terminal enables multiple tabs (quickly switch between multiple Linux command lines, Windows Command Prompt, PowerShell, Azure CLI, etc), create custom key bindings (shortcut keys for opening or closing tabs, copy+paste, etc.), use the search feature, and custom themes (color schemes, font styles and sizes, background image/blur/transparency). Learn more.

Set your distribution version to WSL 1 or WSL 2

You can check the WSL version assigned to each of the Linux distributions you have installed by opening the PowerShell command line and entering the command (only available in Windows Build 18362 or higher): wsl -l -v

Читайте также:  Ноутбук не может завершить работу windows что делать

To set a distribution to be backed by either version of WSL please run:

Make sure to replace with the actual name of your distribution and with the number ‘1’ or ‘2’. You can change back to WSL 1 at anytime by running the same command as above but replacing the ‘2’ with a ‘1’.

The update from WSL 1 to WSL 2 may take several minutes to complete depending on the size of your targeted distribution. If you are running an older (legacy) installation of WSL 1 from Windows 10 Anniversary Update or Creators Update, you may encounter an update error. Follow these instructions to uninstall and remove any legacy distributions.

If wsl —set-default-version results as an invalid command, enter wsl —help . If the —set-default-version is not listed, it means that your OS doesn’t support it and you need to update to version 1903, Build 18362 or higher. If you are on Build 19041 for ARM64, this command may fail when using PowerShell in which case you can use a Command Prompt instead to issue the wsl.exe command.

If you see this message after running the command: WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel . You still need to install the MSI Linux kernel update package.

Additionally, if you want to make WSL 2 your default architecture you can do so with this command:

This will set the version of any new distribution installed to WSL 2.

Troubleshooting installation

Below are related errors and suggested fixes. Refer to the WSL troubleshooting page for other common errors and their solutions.

Installation failed with error 0x80070003

  • The Windows Subsystem for Linux only runs on your system drive (usually this is your C: drive). Make sure that distributions are stored on your system drive:
  • Open Settings -> **System —>Storage ->More Storage Settings: Change where new content is saved

WslRegisterDistribution failed with error 0x8007019e

  • The Windows Subsystem for Linux optional component is not enabled:
  • Open Control Panel ->Programs and Features ->Turn Windows Feature on or off -> Check Windows Subsystem for Linux or using the PowerShell cmdlet mentioned at the beginning of this article.

Installation failed with error 0x80070003 or error 0x80370102

  • Please make sure that virtualization is enabled inside of your computer’s BIOS. The instructions on how to do this will vary from computer to computer, and will most likely be under CPU related options.
  • WSL2 requires that your CPU supports the Second Level Address Translation (SLAT) feature, which was introduced in Intel Nehalem processors (Intel Core 1st Generation) and AMD Opteron. Older CPUs (such as the Intel Core 2 Duo) will not be able to run WSL2, even if the Virtual Machine Platform is successfully installed.

Error when trying to upgrade: Invalid command line option: wsl —set-version Ubuntu 2

  • Enure that you have the Windows Subsystem for Linux enabled, and that you’re using Windows Build version 18362 or higher. To enable WSL run this command in a PowerShell prompt with admin privileges: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux .

The requested operation could not be completed due to a virtual disk system limitation. Virtual hard disk files must be uncompressed and unencrypted and must not be sparse.

  • Deselect “Compress contents” (as well as “Encrypt contents” if that’s checked) by opening the profile folder for your Linux distribution. It should be located in a folder on your Windows file system, something like: USERPROFILE%\AppData\Local\Packages\CanonicalGroupLimited.
  • In this Linux distro profile, there should be a LocalState folder. Right-click this folder to display a menu of options. Select Properties > Advanced and then ensure that the “Compress contents to save disk space” and “Encrypt contents to secure data” checkboxes are unselected (not checked). If you are asked whether to apply this to just to the current folder or to all subfolders and files, select “just this folder” because you are only clearing the compress flag. After this, the wsl —set-version command should work.

In my case, the LocalState folder for my Ubuntu 18.04 distribution was located at C:\Users \AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc

Check WSL Docs GitHub thread #4103 where this issue is being tracked for updated information.

The term ‘wsl’ is not recognized as the name of a cmdlet, function, script file, or operable program.

  • Ensure that the Windows Subsystem for Linux Optional Component is installed. Additionally, if you are using an ARM64 device and running this command from PowerShell, you will receive this error. Instead run wsl.exe from PowerShell Core, or Command Prompt.

Error: This update only applies to machines with the Windows Subsystem for Linux.

  • To install the Linux kernel update MSI package, WSL is required and should be enabled first. If it fails, it you will see the message: This update only applies to machines with the Windows Subsystem for Linux .
  • There are three possible reason you see this message:

    You are still in old version of Windows which doesn’t support WSL 2. See step #2 for version requirements and links to update.

    WSL is not enabled. You will need to return to step #1 and ensure that the optional WSL feature is enabled on your machine.

    After you enabled WSL, a reboot is required for it to take effect, reboot your machine and try again.

    Error: WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel .

    • If the Linux kernel package is missing in the %SystemRoot%\system32\lxss\tools folder, you will encounter this error. Resolve it by installing the Linux kernel update MSI package in step #4 of these installation instructions. You may need to uninstall the MSI from ‘Add or Remove Programs’, and install it again.

    —>

Оцените статью