Linux terminal for windows download

Install a complete Ubuntu terminal environment in minutes on Windows with Windows Subsystem for Linux (WSL).

Access the Linux terminal on Windows, develop cross-platform applications, and manage IT infrastructure without leaving Windows.

Download from the Microsoft Store

Install Ubuntu on WSL ›

Deploying WSL at your company?

We help companies achieve a seamless integration with their WSL deployments. Contact us to learn more about how we support enterprises on the Windows Subsystem for Linux.

Contact us

What you never thought was possible on Windows

  • Editors

    Run your choice of Linux text editors, including vim, emacs, and nano

  • Servers

    Spin up Node.js, install your dependencies with npm, and start testing your web app

  • Development

    Install compilers and libraries from the Ubuntu repository, maintained by Canonical

  • Systemd

    Develop and run service applications and use snap packages to run popular workflow tools

  • Containers

    Work with LXD and Docker containers on Windows

  • Scripting

    Automate Linux and Windows tasks with advanced bash scripting

  • Network hardening

    Leverage Linux security tools to test and harden your network

  • Data

    Crunch big numbers with tools for R and Python

  • Kubernetes

    Build, test, and deploy Kubernetes clusters on Windows

Why Ubuntu WSL?

Develop Graphical Applications

Develop and preview web and graphical applications on Linux using WSLg. Create multiplatform graphical applications using popular open source development frameworks like Flutter or React Native.

Learn how to run graphical apps with Ubuntu on WSL ›

Enterprise support

Ubuntu is certified on WSL through close collaboration with Microsoft. Enterprise support is provided for Ubuntu from Azure to Windows workstations creating a seamless operating environment.

Get in touch

Video Guides

An introduction to numerical computation applications using Ubuntu WSL

Tips for working with web services on Ubuntu WSL

Ubuntu on WSL: An FAQ for data scientists and developers

WSL: Partnering with Canonical to support systemd

Ubuntu Summit 2022 | The Windows Subsystem for Linux WSL Latest updates and future improvements

Latest Ubuntu WSL news from

our blog ›

A terminal emulator for Windows Subsystem for Linux (WSL), based on mintty, fatty and wslbridge2.

All emojis designed by OpenMoji – the open-source emoji and icon project. License: CC BY-SA 4.0

中文页面(The Chinese README is no longer maintained)

Screenshot

screenshot

More screenshots here.

Usage

  1. Make sure you have 7z installed. On Ubuntu run: sudo apt install p7zip-full, on Archlinux: run pacman -S p7zip

  2. Change the directory to the folder where you want to install wsl-terminal to.

Make sure to install wsl-terminal in a the windows filesystem and not in the wsl filesistem. The installation folder needs to be on a local NTFS volume.

  • Option 1: If you’re in cmd.exe run:
wsl bash -c "$(wget https://raw.githubusercontent.com/mskyaxl/wsl-terminal/master/scripts/install.sh -qO -)"
  • Option 2: If you’re in wsl already run
bash -c "$(wget https://raw.githubusercontent.com/mskyaxl/wsl-terminal/master/scripts/install.sh -qO -)"

If you want to install the tabbed version you have to add a -t as parameter as shown bellow

bash -c "$(wget https://raw.githubusercontent.com/mskyaxl/wsl-terminal/master/scripts/install.sh -qO -)" '' -t
  1. Run open-wsl.exe to open a WSL terminal in current directory.

  2. Run tools/1-add-open-wsl-terminal-here-menu.js (help) to add a Open wsl-terminal Here context menu to explorer.exe (Run tools/1-remove-open-wsl-terminal-here-menu.js to remove it). If you are using Total Commander, Use wsl-terminal with Total Commander may help you.

  3. run-wsl-file.exe can run any .sh (or any others like .py .pl) script files in wsl-terminal, support Open With context menu in explorer.exe.

  4. vim.exe can open any files with vim (in wsl-terminal), support Open With context menu in explorer.exe. vim.exe can be renamed to emacs.exe nvim.exe nano.exe ... to open files in emacs nvim nano ....

Keyboard shortcuts

key function
Alt + Enter Fullscreen
Alt + F2 New window
Alt + F3 Search text
Ctrl + [Shift] + Tab Switch window
Ctrl + = + - 0 Zoom
Ctrl + Click Open URL or dir/file under the cursor
Ctrl + Right Click Open context menu

Bind wsl-terminal to a hotkey.

Params

open-wsl

Usage: open-wsl [OPTION]...
  -a: activate an existing wsl-terminal window.
      if use_tmux=1, attach the running tmux session.
  -l: start a login shell and cd to $HOME (doesn't work with use_tmux=1).
  -c command: run command (e.g. -c "echo a b; echo c; cat").
  -e commands: run commands (e.g. -e echo a b; echo c; cat).
  -C dir: change directory to a WSL dir (e.g. /home/username).
  -W dir: change directory to a Windows dir (e.g. c:\Users\username).
  -d distro: switch distros.
  -b "options": pass additional options to wslbridge.
  -B "options": pass additional options to mintty.
  -h: show help.

For -B and -b, see also mintty params and wslbridge2 params.

cmdtool (run it in WSL)

Usage: cmdtool [OPTION]...
  wcmd: run Windows programs with cmd.exe /c.
  wstart: run Windows programs with cmd.exe /c start.
  wstartex file|url: like wstart, but use WSL file path.
  update: check the latest wsl-terminal version, and upgrade it.
  killall: kill all WSL processes.
  install dash: install Cygwin dash (for debugging).
  install busybox: install Cygwin busybox (for debugging).

Files in tools directory:

filename function
1-add-open-wsl-terminal-here-menu.js Add Open wsl-terminal Here context menu to explorer.exe.
1-remove-open-wsl-terminal-here-menu.js Remove Open wsl-terminal Here context menu.
2-add-wsl-terminal-dir-to-path.js Add wsl-terminal directory to Path environment variable.
2-remove-wsl-terminal-dir-from-path.js Remove wsl-terminal directory from Path environment variable.
3-write-distro-to-config-file.js Write distro guids to etc/wsl-terminal.conf.
4-create-start-menu-shortcut.js Create a start menu shortcut to open-wsl -C ~.
4-create-start-menu-shortcut-login-shell.js Create a start menu shortcut to open-wsl -l.
4-remove-all-start-menu-shortcuts.js Remove all wsl-terminal start menu shortcuts.
5-add-open-with-vim-menu.js Add Open with vim in wsl-terminal context menu.
5-remove-open-with-vim-menu.js Remove Open with vim in wsl-terminal context menu.
6-set-default-shell.bat Set shell in etc/wsl-terminal.conf to the default shell in WSL.

Double click any .js file to run it. If it was open by any editor, open it with Microsoft (R) Windows Based Script Host, or open a cmd.exe in tools directory and run wscript xxx.js.

Configuration files

etc/wsl-terminal.conf is wsl-terminal config file.

[config]
title="my title"
shell=/bin/bash
use_tmux=0
;icon=
;distro=

etc/themes/* are theme files, use themes.

etc/minttyrc is mintty config file, mintty tips.

Upgrade

Open open-wsl.exe in wsl-terminal directory, run ./cmdtool update to check the latest wsl-terminal version and upgrade it. If the download speed is too slow, you can download wsl-terminal-v{version}.7z from releases with other tools, and put it into wsl-terminal directory, then run ./cmdtool update.

wget and 7z commands are needed (Ubuntu: apt install wget p7zip-full, Archlinux: pacman -S wget p7zip) .

Config files won’t be overridden, etc/wsl-terminal.conf and etc/minttyrc will be placed to etc/wsl-terminal.conf.pacnew and etc/minttyrc.pacnew. Some .bak files will be left in bin, because they are running, those files will be removed after the next upgrading.

Use tmux

  1. Install tmux in WSL.
  2. Set use_tmux=1 in etc/wsl-terminal.conf. And set attach_tmux_locally=1 if the version number is less than 0.8.1.
  3. Add these lines to ~/.bashrc (shell=/bin/bash in config) or ~/.zshrc (shell=/bin/zsh in config):
[[ -z "$TMUX" && -n "$USE_TMUX" ]] && {
    [[ -n "$ATTACH_ONLY" ]] && {
        tmux a 2>/dev/null || {
            cd && exec tmux
        }
        exit
    }

    tmux new-window -c "$PWD" 2>/dev/null && exec tmux a
    exec tmux
}

If you’re using fish then update your ‘~/.config/fish/config.fish’ (shell=/bin/fish in config) with

if [ -z "$TMUX" ]; and [ -n "$USE_TMUX" ]
    if [ -n "$ATTACH_ONLY" ]
        if not tmux a 2>/dev/null
            cd; and exec tmux
        end
        exit
    end

    tmux new-window -c "$PWD" 2>/dev/null; and exec tmux a
    exec tmux
end

Then open-wsl will use tmux.

Switch distros

Use open-wsl -d distro to switch distros:

# list all distros
> wslconfig /l
Legacy (Default)
Ubuntu

# use Ubuntu (will run wslconfig /s Ubuntu before mintty)
> open-wsl -d Ubuntu

# Ubuntu is the default distro now
> wslconfig /l
Ubuntu (Default)
kali-linux

Or set distro in wsl-terminal.conf (Won’t change the default distro).

Run tools/3-write-distro-to-config-file.js (help), then a msgbox will show the result:

result has been written to ..\etc\wsl-terminal.conf:

;distro=kali-linux

;distro=Ubuntu

remove the ; before distro to use the distro.

If you want to pass the distro_guid to open-wsl in cmdline:


# pass the distro guid to wslbridge
> open-wsl -b "-d Ubuntu"

Links

FAQ

Issues

Releases

Wiki

Build

Prerequisites

  • Install WSL and make sure wget tar xz gzip p7zip are available (Ubuntu: run apt install wget tar xz-utils gzip p7zip-full, Archlinux: run pacman -S wget tar xz gzip p7zip) are installed in WSL.
  • for the tabbed version: cygwin x64 with the following packages installed gcc-g++, make, w32api-headers (for compiling fatty)

Build steps

  • clone the repo in WSL(to maintain the linux EOL characters) but on windows drive eg (/mnt/c/Users/<userName>/work/wsl-terminal)

  • use build.sh to build with the appropiate parameters.

      ➜  wsl-terminal git:(master) scripts/build.sh -h
      Usage:
          build.sh -h                 Display this help message.
          build.sh -a                 Builds wsl-terminal and wsl-terminal-tabbed.
          build.sh -t                 Builds only wsl-terminal-tabbed(cygwin is required).
          build.sh                    Builds only wsl-terminal.
    

Roadmap

  1. Bug fixing
  2. add x11 support

License

MIT

wsl-terminal

A terminal emulator for Windows Subsystem for Linux (WSL), based on mintty, fatty and wslbridge2.

All emojis designed by OpenMoji – the open-source emoji and icon project. License: CC BY-SA 4.0

中文页面(The Chinese README is no longer maintained)

Screenshot

screenshot

More screenshots here.

Usage

  1. Make sure you have 7z installed. On Ubuntu run: sudo apt install p7zip-full, on Archlinux: run pacman -S p7zip

  2. Change the directory to the folder where you want to install wsl-terminal to.

Make sure to install wsl-terminal in a the windows filesystem and not in the wsl filesistem. The installation folder needs to be on a local NTFS volume.

  • Option 1: If you’re in cmd.exe run:
wsl bash -c "$(wget https://raw.githubusercontent.com/mskyaxl/wsl-terminal/master/scripts/install.sh -qO -)"
  • Option 2: If you’re in wsl already run
bash -c "$(wget https://raw.githubusercontent.com/mskyaxl/wsl-terminal/master/scripts/install.sh -qO -)"

If you want to install the tabbed version you have to add a -t as parameter as shown bellow

bash -c "$(wget https://raw.githubusercontent.com/mskyaxl/wsl-terminal/master/scripts/install.sh -qO -)" '' -t
  1. Run open-wsl.exe to open a WSL terminal in current directory.

  2. Run tools/1-add-open-wsl-terminal-here-menu.js (help) to add a Open wsl-terminal Here context menu to explorer.exe (Run tools/1-remove-open-wsl-terminal-here-menu.js to remove it). If you are using Total Commander, Use wsl-terminal with Total Commander may help you.

  3. run-wsl-file.exe can run any .sh (or any others like .py .pl) script files in wsl-terminal, support Open With context menu in explorer.exe.

  4. vim.exe can open any files with vim (in wsl-terminal), support Open With context menu in explorer.exe. vim.exe can be renamed to emacs.exe nvim.exe nano.exe ... to open files in emacs nvim nano ....

Keyboard shortcuts

key function
Alt + Enter Fullscreen
Alt + F2 New window
Alt + F3 Search text
Ctrl + [Shift] + Tab Switch window
Ctrl + = + - 0 Zoom
Ctrl + Click Open URL or dir/file under the cursor
Ctrl + Right Click Open context menu

Bind wsl-terminal to a hotkey.

Params

open-wsl

Usage: open-wsl [OPTION]...
  -a: activate an existing wsl-terminal window.
      if use_tmux=1, attach the running tmux session.
  -l: start a login shell and cd to $HOME (doesn't work with use_tmux=1).
  -c command: run command (e.g. -c "echo a b; echo c; cat").
  -e commands: run commands (e.g. -e echo a b; echo c; cat).
  -C dir: change directory to a WSL dir (e.g. /home/username).
  -W dir: change directory to a Windows dir (e.g. c:\Users\username).
  -d distro: switch distros.
  -b "options": pass additional options to wslbridge.
  -B "options": pass additional options to mintty.
  -h: show help.

For -B and -b, see also mintty params and wslbridge2 params.

cmdtool (run it in WSL)

Usage: cmdtool [OPTION]...
  wcmd: run Windows programs with cmd.exe /c.
  wstart: run Windows programs with cmd.exe /c start.
  wstartex file|url: like wstart, but use WSL file path.
  update: check the latest wsl-terminal version, and upgrade it.
  killall: kill all WSL processes.
  install dash: install Cygwin dash (for debugging).
  install busybox: install Cygwin busybox (for debugging).

Tools

Files in tools directory:

filename function
1-add-open-wsl-terminal-here-menu.js Add Open wsl-terminal Here context menu to explorer.exe.
1-remove-open-wsl-terminal-here-menu.js Remove Open wsl-terminal Here context menu.
2-add-wsl-terminal-dir-to-path.js Add wsl-terminal directory to Path environment variable.
2-remove-wsl-terminal-dir-from-path.js Remove wsl-terminal directory from Path environment variable.
3-write-distro-to-config-file.js Write distro guids to etc/wsl-terminal.conf.
4-create-start-menu-shortcut.js Create a start menu shortcut to open-wsl -C ~.
4-create-start-menu-shortcut-login-shell.js Create a start menu shortcut to open-wsl -l.
4-remove-all-start-menu-shortcuts.js Remove all wsl-terminal start menu shortcuts.
5-add-open-with-vim-menu.js Add Open with vim in wsl-terminal context menu.
5-remove-open-with-vim-menu.js Remove Open with vim in wsl-terminal context menu.
6-set-default-shell.bat Set shell in etc/wsl-terminal.conf to the default shell in WSL.

Double click any .js file to run it. If it was open by any editor, open it with Microsoft (R) Windows Based Script Host, or open a cmd.exe in tools directory and run wscript xxx.js.

Configuration files

etc/wsl-terminal.conf is wsl-terminal config file.

[config]
title="my title"
shell=/bin/bash
use_tmux=0
;icon=
;distro=

etc/themes/* are theme files, use themes.

etc/minttyrc is mintty config file, mintty tips.

Upgrade

Open open-wsl.exe in wsl-terminal directory, run ./cmdtool update to check the latest wsl-terminal version and upgrade it. If the download speed is too slow, you can download wsl-terminal-v{version}.7z from releases with other tools, and put it into wsl-terminal directory, then run ./cmdtool update.

wget and 7z commands are needed (Ubuntu: apt install wget p7zip-full, Archlinux: pacman -S wget p7zip) .

Config files won’t be overridden, etc/wsl-terminal.conf and etc/minttyrc will be placed to etc/wsl-terminal.conf.pacnew and etc/minttyrc.pacnew. Some .bak files will be left in bin, because they are running, those files will be removed after the next upgrading.

Use tmux

  1. Install tmux in WSL.
  2. Set use_tmux=1 in etc/wsl-terminal.conf. And set attach_tmux_locally=1 if the version number is less than 0.8.1.
  3. Add these lines to ~/.bashrc (shell=/bin/bash in config) or ~/.zshrc (shell=/bin/zsh in config):
[[ -z "$TMUX" && -n "$USE_TMUX" ]] && {
    [[ -n "$ATTACH_ONLY" ]] && {
        tmux a 2>/dev/null || {
            cd && exec tmux
        }
        exit
    }

    tmux new-window -c "$PWD" 2>/dev/null && exec tmux a
    exec tmux
}

If you’re using fish then update your ‘~/.config/fish/config.fish’ (shell=/bin/fish in config) with

if [ -z "$TMUX" ]; and [ -n "$USE_TMUX" ]
    if [ -n "$ATTACH_ONLY" ]
        if not tmux a 2>/dev/null
            cd; and exec tmux
        end
        exit
    end

    tmux new-window -c "$PWD" 2>/dev/null; and exec tmux a
    exec tmux
end

Then open-wsl will use tmux.

Switch distros

Use open-wsl -d distro to switch distros:

# list all distros
> wslconfig /l
Legacy (Default)
Ubuntu

# use Ubuntu (will run wslconfig /s Ubuntu before mintty)
> open-wsl -d Ubuntu

# Ubuntu is the default distro now
> wslconfig /l
Ubuntu (Default)
kali-linux

Or set distro in wsl-terminal.conf (Won’t change the default distro).

Run tools/3-write-distro-to-config-file.js (help), then a msgbox will show the result:

result has been written to ..\etc\wsl-terminal.conf:

;distro=kali-linux

;distro=Ubuntu

remove the ; before distro to use the distro.

If you want to pass the distro_guid to open-wsl in cmdline:


# pass the distro guid to wslbridge
> open-wsl -b "-d Ubuntu"

Links

FAQ

Issues

Releases

Wiki

Build

Prerequisites

  • Install WSL and make sure wget tar xz gzip p7zip are available (Ubuntu: run apt install wget tar xz-utils gzip p7zip-full, Archlinux: run pacman -S wget tar xz gzip p7zip) are installed in WSL.
  • for the tabbed version: cygwin x64 with the following packages installed gcc-g++, make, w32api-headers (for compiling fatty)

Build steps

  • clone the repo in WSL(to maintain the linux EOL characters) but on windows drive eg (/mnt/c/Users/<userName>/work/wsl-terminal)

  • use build.sh to build with the appropiate parameters.

    ➜  wsl-terminal git:(master) scripts/build.sh -h
    Usage:
        build.sh -h                 Display this help message.
        build.sh -a                 Builds wsl-terminal and wsl-terminal-tabbed.
        build.sh -t                 Builds only wsl-terminal-tabbed(cygwin is required).
        build.sh                    Builds only wsl-terminal.
    

Roadmap

  1. Bug fixing
  2. add x11 support

License

MIT

Windows Subsystem for Linux (WSL) is a compatibility layer that allows you to run your favorite flavor of Linux distributions inside the Windows Operating System (Windows 10 and 11). You can run Linux on top of Windows 11 (or without the need for a dual boot, using VMWare/VirtualBox, or installing it as your main Operating System).

Unlike Windows 10, Windows 11 comes with WSL 2.0, an upgraded version of WSL, designed to run a full Linux kernel in a Hyper-V environment for improved compatibility. In addition to that, WSL 2 on Windows 11 now supports graphical user interfaces and audio natively which means you can run GUI Linux applications alongside Windows apps. And Windows update keeps the kernel updated.

WSL also allows you to access your Windows files from within the Linux kernel. It combines the best of both worlds by letting admins and developers develop and test cross-platform applications without leaving Windows or requiring additional devices.

In this tutorial, we will guide you through everything you need to know about installing and using Linux on Windows 11 via Windows Subsystem for Linux (WSL).

Prerequisites to Install Linux on Windows 11

One of the key requisites for running the WSL Linux on Windows 11 is virtualization support. Before you install Linux on Windows 11, you need to check whether the CPU virtualization support is enabled on the firmware. Without virtualization, you cannot emulate any different operating system on your PC.

To do that, open Windows 11 Task manager (Ctrl + Shift + Esc) and go to the ‘Performance’ page on the left panel. Then ensure ‘Virtualization’ is ‘Enabled’ at the bottom of the right side page.

To do that, open the BIOS settings or UEFI on your device, and select the ‘Advanced Mode’ option. If you don’t know how to enter BIOS on your Windows 11 PC, follow the instructions in our dedicated guide for the same.

Under the Advanced mode, locate the option called ‘Intel(VMX) Virtualization Technology’ and set it to ‘Enabled’. For AMD processors, select the ‘SVM’ Mode option and change it to ‘Enabled’.

Then, save and exit the BIOS/ UEFI to reboot your system. Once the system restarts, you would be able to install WSL and Linux distributions.

Install Linux Distribution on Windows 11

Before you install your desired Linux distribution through Microsoft Store, you need to enable the Windows Subsystem for Linux feature in Windows features. Here’s how you can enable WSL in Windows 11.

Install Windows Subsystem for Linux using Windows Features

With Windows Subsystem for Linux installed, you would be able to run Linux applications and Bash commands natively on Windows. There are two different types of WSL versions: WSL 1 and WSL 2. While they both provide smooth and continuous integration of Linux within Windows, WSL 2 is the latest and fastest version with full Linux kernel support and system call compatibility.

WSL runs a compatibility layer that bridges the gap between the Linux kernel and Windows for running Linux binary executables natively on Windows. To run WSL 1, you’ll need at least Windows 10 version 1607 (or higher) and a 64-bit PC. For, WSL 2, you’ll need Windows 10 version 2004 (or higher) and a 64-bit PC. Since we are installing WSL on Windows 11, we don’t really need to worry about the requirements.

If your PC came preinstalled with Windows 11, you might have WSL already enabled.

First, open the Start menu and search for ‘Windows features’. Then, select the ‘Turn Windows features on and off’ control panel option from the search result.

In the Windows Features dialog box, tick the ‘Windows Subsystem for Linux’ option and click ‘OK’

Once the changes are applied, click ‘Restart now’ to restart your computer.

If you want to only install WSL 1, you can now restart your computer and install your Linux distro.

Upgrade to WSL 2 on Windows

We recommend you upgrade your WSL to version 2 for faster performance speed, and to run a real Linux kernel directly on Windows 11. To do that, you need to enable the ‘Virtual Machine Platform’ feature in addition to the ‘Windows Subsystem for Linux’ feature on the Windows features control panel. Then, click ‘OK’ and reboot your PC. If you upgraded your PC from Windows 10 to Windows 11, you might have WSL already enabled but you’ll need to enable Virtual Machine Platform to upgrade to WSL 2.

Set WSL 2 as the Default Version for all Future Distros

Before setting up WSL 2 as your default version for all Linux distributions, download the WSL Linux kernel package update for x64 systems from this link.

Then, run the ‘.msi’ installer you downloaded and install it. Click ‘Next’ in the wizard to continue.

It will take only seconds. Then, click ‘Finish’ to exit the wizard.

To set WSL 2 as your default version when installing a new Linux distribution, open PowerShell and run the following command:

wsl –set-default-version 2

Then restart your system to switch the feature from WSL 1 to WSL 2.

Enable WSL 1 via PowerShell

You can also enable WSL via the ‘PowerShell’ command-line tool. This does the same job as the Windows Features control panel. For that, open ‘PowerShell’ as an Administrator and run the below command.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

Enable WSL 2 via PowerShell

The first step to enabling WSL 2 is enabling the Virtual Machine Platform feature component on Windows. You can also enable WSL 2 via the ‘PowerShell’ command-line tool. To do that, open ‘PowerShell’ as an Administrator and run the following additional command with the WSL 1 command.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Install WSL from Microsoft Store

You can also download and install WSL from the Microsoft Store. Launch the Microsoft Store app and search for ‘Windows Subsystem for Linux’. Then, click the ‘Get’ button on Windows Subsystem for Linux Preview’

Microsoft Store will automatically download and install the required files.

Install your Desired Linux Distribution using Microsoft Store

Once WSL is enabled, you can install a Linux distribution of your choice. Microsoft Store has a dozen of Linux distributions that you can download and install. Let us see how to download and install the Ubuntu distro from the Microsoft store. First, search for ‘Microsoft Store’ in the Start Menu search field. Then, open it from the search result.

In the Microsoft Store, you can search ‘Linux’ to get the list of Linux distros available and select your desired distro.

Here’s a list of Linux distributions that are currently available in the Windows Store supported by WSL.  

  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS
  • openSUSE Leap 15.1
  • SUSE Linux Enterprise Server 12 SP5
  • SUSE Linux Enterprise Server 15 SP4
  • SUSE Linux Enterprise Server 15 SP3
  • Kali Linux
  • Debian GNU/Linux
  • Fedora Remix for WSL
  • Oracle Linux 8.5
  • Oracle Linux 8.6
  • Oracle Linux 7.9
  • Oracle Linux 9
  • Pengwin
  • Pengwin Enterprise 7
  • Pengwin Enterprise 8
  • Alpine WSL
  • Raft WSL

All of these distributions are available on Microsoft Store for free. 

Or, search for a specific Linux distribution. For example, here we are searching for ‘Ubuntu’. Then, choose the Ubuntu version that you want to install from the results.

From the results, Ubuntu without a version number is the latest stable version. And Ubuntu with version numbers refers to the specific versions of the distro. You can choose a specific version if you want. In the below example, we are selecting ‘Ubuntu’ to get the latest version of the distro.

Ubuntu (Preview) refers to the daily build of the latest development version of the distro.

On the Ubuntu distribution’s page, click the ‘Get’ button.

It will take some to finish downloading the complete Ubuntu terminal environment. Once it’s downloaded, it will be automatically installed on your device.

Install Ubuntu 22.04.1 LTS on Windows 11

Canonical Ubuntu’s parent company just released a new and improved version of Linux called Ubuntu 22.04.1 LTS (code name Jammy Jellyfish) in August 2022. This new version of Ubuntu Linux ships with the latest toolchains, including Python, Rust, Ruby, Go, PHP, and Perl. You can now install Ubuntu 22.04.1 LTS through Windows Store on Windows 11.

Before you install this distro, make sure Windows Subsystem for Linux feature and Virtualization technology are enabled on your device.

To install the latest Ubuntu version, search for ‘Ubuntu’ in Microsoft Store and select ‘Ubuntu 22.04.01 LTS’ from the search result. Then, click on ‘Get’ to download and install the Linux container.

After the installation is finished, click the ‘Open’ button to launch the Linux terminal. You can also launch the app from the Windows Start Menu.

After it’s downloaded, a Welcome to Ubuntu WSL window will appear. The installer will continue to unpack the distro and install it on your device.

After it’s done, click ‘OK’ on the ‘We are almost done’ prompt box.

Once you click ‘OK’, the main installer windows will appear where you need to configure a few more settings. The main installer window will either be a user interface window or a shell window. Either way, both installer windows have the same options.

First, select the language for the distribution you are installing in the UI window.

Or, select the language from the terminal window.

On the Profile Setup page, you can create a default UNIX user account. Enter your name, username, and password in the given fields. However, you cannot use the mouse in this installer; you can only use the keyboard arrow buttons to navigate the options. After entering details, move to the ‘Done’ button and press Enter.

In the next window, you can specify the mount point and mount options for the automount. You can also choose whether to enable ‘host’ and ‘resolv.conf’ regeneration at every start of the terminal. 

In the below example, we are keeping the default WSL configuration options. Then, move to ‘Done’ and press Enter to save the changes.

After the setup is complete, move to the ‘Reboot now’ option to restart your device.

Install WSL and Linux using Windows Terminal (Cmd or PowerShell) in Windows 11

This is the easiest way to install Linux in Windows 11. You can enable the latest version of WSL and install Ubuntu with a single command. You can use these commands in Command Prompt or PowerShell to install Linux. Here’s how you can do this:

First open Windows Terminal by right-clicking the Start menu and selecting ‘Terminal (Admin).

Click ‘Yes’ in the User Account Control to continue.

When the Windows Terminal opens, type the following command and press Enter to install WSL:

wsl --install

The process can take some time to finish. The above command will download and install files, so make sure you have an active internet connection. As you can see from the screenshot, the above command not only enables WSL 2 but also installs the latest version of the Ubuntu Linux distribution automatically. This command installs Ubuntu as the default Linux distribution, but you can change that at any time.

When the installation is complete, you should see this message – “The requested operation is successful. After you see this message, restart your device to apply the changes.

If you get “WslRegisterDistribution failed with error 0x80370102” or “Installation failed with error 0x80070003” during this step, it means you need to enable ‘CPU Virtualization’ in your BIOS or Unified Extensible Firmware Interface (UEFI). Enable Virtualization in BIOS as explained in this guide before and re-execute the command.

Then, enter the new username and password to complete the setup. This username doesn’t necessarily need to be the same as the Windows account.

After setting up the username and password, the Ubuntu terminal will launch in a separate terminal window as shown below.

Install Different Linux Distributions on Windows 11

If you prefer another flavor of Linux other than Ubuntu with WSL, you can install other versions of Linux on your device. You can install different distributions through Microsoft Store or via the Command line. Although you can install dozen different flavors of Linux through Microsoft Store, some of the Linux distros are not available via Powershell.

To install alternative Linux distributions through Microsoft Store, open the Store app and search ‘Linux’ to get the list of Linux distros available. Then, select your desired distro from the result.

After that, click the ‘Get’ button to download and install the distro.

To get the list of other available distributions of Linux via the command line, type either of the following commands:

wsl --list --online

or

wsl -l -o

This will get a list of supported Linux distributions.

To install a new distro, use the below command:

wsl --install -d <Distro>

Where replace <Distro> with the name of the distribution you want to install. For example, the command below will install Debian.

wsl --install -d Debian

After the installation is finished, the setup will continue in another terminal window where you will need to enter a new username and password for the default UNIX user account. This user account will be assigned to the Debian Linux environment alone.

After it’s finished, restart your PC for changes to take effect. Once your computer has restarted, you can launch the newly installed Linux distro from your Start menu or open Windows Terminal, click the down arrow button and select the Linux distro from the drop-down menu.

This will launch the newly installed distro in a Windows Terminal tab.

Launch Your Linux Distro and Use Bash Shell

Once the Ubuntu or other Linux distribution is installed, you would be able to access the Linux terminal by searching for it in the Start menu. Open the Start menu, search for ‘Ubuntu’, and select the terminal from the result.

Alternatively, you can open Windows Terminal and click the down arrow button on the tab bar. Then, select the Linux distribution that you installed (Ubuntu) from the drop-down menu to launch the Linux shell.

This will launch the Linux shell environment in the Windows terminal. Now, you can use the Linux Bash Shell in Windows, just as if you were using a Linux PC. 

Alternatively, you can just type the distro name and press Enter to quickly launch your distro.

To view the list of all available Linux commands that you can use in Bash, type help-d and press Enter.

To get more details (such as options, arguments, usage, etc) about a specific command, type help followed by the command name as shown below (e.g. help type).

Another great thing about Linux is that Bash is the default shell included within Ubuntu and other Linux distros which means the same commands can be used on different distros to carry out the same functions. The following commands are mostly executed in Ubuntu Linux but they can be used in other distributions such as Kali Linux, OpenSUSE, Debian, etc.

Update Ubuntu in WSL

Once, the set up finished, it will take you to the bash command line. It’s better to update the software right away. In Ubuntu, you can search for, download, and install software updates, all from the apt command.

To run a command with administrative privileges, add sudo in front of the command.

Enter the below command to update the software:

sudo apt update

As you run the above command you’ll be prompted for the password. Type the UNIX password you created earlier to run the command as an administrator. When you type the password, it won’t be visible, so once you finish typing the password, hit Enter.

Once the password is verified, the above ‘update’ command will check for updates.

Ubuntu will get a series of package lists that can be upgraded in the Linux environment. As you can see below, the command shows that 26 packages can be upgraded.

But they are not upgraded yet. To see the list of available upgrades, use the below command :

sudo apt list --upgradable 

Then, your password and hit Enter.

This will list all the available updates along with their current version and upgradable version.

If you wish to update only a particular package, you can do so with the below command:

sudo apt --only-upgrade install package 

Here, replace package with the name of the package you want to upgrade.

For example, we want to update only the package named ‘curl’. To do that enter the below command:

sudo apt --only-upgrade install curl

If you are prompted for the password, type it and press Enter. Otherwise, enter ‘Y’ and press Enter to continue.

It will take a few seconds to install updates to the specified package.

To upgrade all available packages, enter the below command:

sudo apt upgrade

Then, type Y at the prompt to continue the installation.

The above command upgrades packages to their latest versions.

Add a User to Linux Distro in Windows 11

When configuring the new Linux distribution, you will be asked to create a new account and that account will also be used as your default user account. In case you want to create a new user account for a specific distro, here’s how you do this:

To create a new user account, use the below command:

sudo adduser <username>

Substitute <username> with the username for the new account.

Example:

sudo adduser rajallthings

Enter your current password when prompted. Then, type and retype the passwords for this new account and press Enter

After that, enter a new value or leave it blank and press Enter for each value of user information for the new user account. The user information includes Full Name, Room Number, Work Phone, Home Phone, and Others. Finally, click ‘Y’ and hit Enter to confirm the details.

To get the list of user accounts on your Linux console, type the following command and press Enter.

cat /etc/passwd|more

This will show you a list of special accounts used for daemons, apps, and system user accounts as shown below.

At the bottom of the screen, keep pressing Enter on ‘- -More- -’ to see everything related to user accounts.

You will see your user accounts at the end of the results.

Set Default User for WSL Linux Distro

The default account is the one that automatically signs in when you launch a distro. The one that you created during the initial setup of the distro will likely be the default account.

If you want to set another user account as the default UNIX user for WSL, run the following command:

<Distro> config --default-user <new_user_name>

Substitute <Distro> with the name of the Linux distribution and <new_user_name> with the user name you want to set as the default for the distro.

Example:

ubuntu config --default-user rajallthings

If you are using OpenSUSE, run the following command:

opensuse-42 config --default-user <new_user_name>

If you are using SUSE Linux Enterprise Server, run the following command:

sles-12 config --default-user <new_user_name>

If you are using Debian Linux, run the following command:

debian config --default-user <new_user_name>

If you are using Kali Linux, run the following command:

kali config --default-user <new_user_name>

Switch User in WSL Linux Distro in Windows 11

In Linux, ‘sudoers’ is a group of users who are allowed to run commands as root (i.e., elevated). In case you are using a user who is not a sudoer, you can quickly switch users to run elevated commands.

To switch users in the WSL Linux distro, run the following command:

su - <username>

Or

su - <username>

In the command, substitute the <username> with the actual user name. Example:

Su - rajstd

Remove User from WSL Linux Distro in Windows 11

To remove a specific user account from the WSL Linux distro, enter the below command in the Linux terminal:

sudo deluser <username>

Replace the <username> argument with the actual user you want to remove.

Example:

sudo deluser nightcircus

Change Password in Linux Distro in Windows 11 

Linux operates with root privileges, so it is vulnerable to misuse. In case your password is compromised or for some other reason you want to change your password, you can use the following command:

sudo passwd root

After entering the above command, you will be prompted for the current password. Type your current password and press Enter. Then, type your new password and then retype your new password. 

And the password will be updated successfully for the current account. 

Manage Windows Subsystem for Linux in Windows 11

Here’s how you can manage Windows Subsystem for Linux (WSL) and Linux distributions installed on Windows 11 through PowerShell.

List all Installed Linux distros on Windows 11

To list all the installed Linux distributions on your device, run the below command in PowerShell or Command Prompt:

wsl --list --verbose

or

wsl -l -v

This will show a list of all the Linux distros installed on your system along with their status and their WSL version.

To list only the Linux distros that are currently running on the device, you can run the below command:

wsl --list --running

Change Default Linux Distribution on Windows 11

By default, the WSL command installs and sets Ubuntu as the default Linux distribution or the Linux distribution you first installed. The default Linux distribution will be marked with a small asterisk (*) symbol when you list all distros using the above command. As you can see in the above screenshot, there’s an asterisk (*) character next to the distro name Ubuntu-20.04.

To change the default distribution to something else (e.g. Debian), run the following command:

wsl --set-default debian

You can launch the default distro by simply running wsl in a command line without specifying the distribution. 

Run a Specific Linux Distribution through PowerShell

In case you have only one Linux distribution installed on your device, you can run the following command from within PowerShell or Windows Command Prompt to launch it:

wsl

However, if you have multiple Linux distributions on your computer, you can use the following command from within PowerShell or Windows Command Prompt to start a specific Linux distro:

wsl -d <DistributionName>

Replace <DistributionName> with the name of the distribution you want to use. Example:

wsl -d debian

Type the above command and press Enter. This will start the specified distro’s bash shell directly in the current PowerShell or CMD terminal.

This image has an empty alt attribute; its file name is allthings.how-how-to-use-linux-terminal-in-windows-11-image-25.png

If you wish to log in to a WSL distro with a specific user, type the below command:

wsl --distribution debian --user rajstd

This image has an empty alt attribute; its file name is allthings.how-how-to-use-linux-terminal-in-windows-11-image-26.png

To get back to the PowerShell shell, simply type exit and press Enter to exit bash.

Stop a WSL Linux Distro on Windows 11

Once a WSL distro is started, it will continue to run in the background even after closing the Linux terminal window or the distro bash shell until you manually terminate the WSL instance. Here’s how you can stop a specific Linux distro or all of them.

wsl --terminate kali-linux

However, if you are still on the Linux bash shell or terminal, you can just type exit and press Enter instead of closing the Linux terminal window to stop the WSL instance.

If your computer has multiple Linux Distro running in the background and you want to stop them all, use the below command:

wsl --shutdown

Change the WSL version for a Specific Distribution

WSL 2 is the newer version of Windows Subsystem for Linux that runs on a virtual machine to run a Linux kernel with full system call compatibility while WSL 1 works better when working across filesystems. When you enable Windows Subsystem for Linux feature through Windows Features, WSL 1 will be set as default. However, if you use wsl --install command to install new Linux distros, WSL 2 will be set as default.

You can use wsl --set-version command to change the version of WSL (upgrade or downgrade) for the previously installed Linux distributions. You can also change the WSL version globally for all future Linux installations.

If you wish to upgrade the existing WSL 1 version to WSL 2 for a specific distribution. Then, run the below command in PowerShell or command prompt:

wsl –set-default-version <Distro> <version number>

Replace the <Distro> argument with the name of whichever distribution (Kali Linux in our case) you would like to use and <version number> with either 1 or 2. Make sure to specify the distribution name correctly.

Example:

wsl –set-default-version Kali Linux 1

To change the WSL version globally ( for all future WSL instances), use the below command:

wsl --set-default-version 2

Update the Window Subsystem for Linux (WSL) kernel

WSL feature is usually updated with Windows Updates however if you want to manually check and update the WSL feature, you can do that with the following commands:

wsl --status

First, use the above command to check the status of WSL, including the default distribution name and kernel version.

wsl --update

This command will check and update the WSL kernel version if an update is available.

Remove or Unregister a Linux Distribution

If you no longer need a particular distro or you want to install a different distribution in its place or want to troubleshoot a distro, you can uninstall the Linux distribution easily. Unregistering will erase all data, settings, and programs associated with that distribution. Here’s how you can unregister a Linux distro in Windows 11.

To remove or uninstall a Linux distro from WSL, execute the following command:

wsl --unregister <DistributionName>

Replace <DistributionName> with the actual name of the distro, you want to remove from WSL.

Once you run the above command, it will remove all the data, settings, and applications within that distro.

Mount a Disk to WSL Linux on Windows 11

Windows Subsystem for Linux now allows you to mount a physical disk formatted with a Linux file system (e.g. ext3, ext4) that is not supported by Windows and access its content. However, you can only use this feature in the Linux distro that is running on WSL 2 on Windows 11 (build 22000 or higher).

Windows Operating System recognizes drives and disks that are formatted with FAT16, FAT32, exFAT, NTFS, and a few other file systems, but it does not support the most commonly used Linux file systems such as EXT3, EXT4, XFS, etc.

For instance, if you are trying to access files copied from a Linux computer to a USB drive, Windows won’t recognize it and nothing will show up in File Explorer as the disk is formatted with a Linux file system (EXT3).

To access Linux disk format in the WSL distribution, you can mount hard drives, flash drives, and other removable disks using the wsl --mount command. Here’s how you can do that:

Before you mount a disk, you need to get a list of available drives and their deviceID. To do that, open PowerShell or Windows Terminal with administrative privileges and enter either of the following commands:

Get-CimInstance -query 'SELECT * from Win32_DiskDrive'

or

wmic diskdrive list brief

The above command will list all the available physical disks connected to your computer Now note down the device ID of the disk you wish to mount in the WSL distro.

If you have a single partition or unpartitioned disk, use the below syntax command to mount that disk

wsl --mount <DiskPath>

Example:

wslwsl --mount \\.\PHYSICALDRIVE2

The above command mounts the given disk globally so that it is available to all the Linux distros in WSL.

When you attempt to mount a disk to WSL, it will automatically assume it is an EXT4 file system. However, if your disk has a different file system, you will need to specify it using the --type or -t argument.

wsl --mount \\.\PHYSICALDRIVE2 --bare --type ext3

or

wsl --mount \\.\PHYSICALDRIVE2 --bare -t ext3

The -bare argument can be used with a command to make the specified disk available in WSL without mounting it to all distros. In the above command make sure to replace ‘ext3’ with the file format of the drive you are mounting.

If you wish to mount a particular partition with multiple partitions, you can use the following command syntax:

wsl --mount <DiskPath> --partition <PartitionNumber> --type <Filesystem>

Example:

This command mounts the specified disk and makes it available to all the Linux distros in WSL. You can use the --bare parameter to make the disk available in WSL without mounting it to all distros. The --type parameter can be used to specify the file system for the disk. If you don’t know the file system, you can skip this parameter.

wsl --mount \.\PHYSICALDRIVE3 --partition 1 -t ext3

To access the mounted Linux disk in File Explorer, open File Explorer and enter this in the address bar: \wsl$. Then, navigate to the desired distro.

After that, go to the ‘mnt’ folder in the list where you can find all your mounted drives and their contents.

To unmount a disk after finishing accessing its content, execute the following command:

wsl --unmount <DiskPath>

Example:

wsl --unmount \\.\PHYSICALDRIVE2

Access Windows Drives from Windows Subsystem for Linux (WSL)

The above commands let you mount the Linux files system to WSL but the Windows Subsystem for Linux still automatically mounts fixed NTFS drives on your computer. However, secondary drives, removable drives, and external networks need to be mounted to access their content in WSL. Here’s how you can mount Windows drives in Windows Subsystem for Linux to access their files.

You can use the new mounting option – ‘DrvFs’ to mount external drives like hard drives, USB sticks, CDs, DVDs, and other removable disks. However, this mounting option can only work on NTFS, ReFS, or FAT file systems.

Let’s assume you have an external drive ‘W:’. To mount this drive, you can use the below commands:

sudo mkdir /mnt/w
sudo mount -t drvfs W: /mnt/w

Replace w in the commands with your desired drive letter or path. When navigating a drive from a Linux terminal, make sure to add /mnt/ before the path. After entering the first command, type your Unix password. Then, enter the second command.

Once a drive is mounted, it will remain accessible in the Linux environment and you can access the drive anytime you want as long as it is connected to the device.

To access files in the mounted or the internal drive, use the below command:

ls /mnt/w

Here, replace w with your desired drive path.

To unmount an external drive, run the following command:

sudo umount /mnt/w/

Please remember there is no “n” between “u” and “mount” in the “umount” command.

When mounting a drive, a temporary folder will be created in the mnt directory where the mounted drives and locations will be located. You can also delete these temporary folders after unmounting the drive. You can remove the temporary folder using the ‘rmdir’ argument:

sudo rmdir /mnt/foldername

Substitute foldername with the drive letter or path of the location.

Example:

sudo rmdir /mnt/w

The rmdir parameter can only remove the empty directories. So make sure the location is properly unmounted before executing the above command.

Mount Windows Network Location

You can also mount network locations directly from WSL whether or not the network location has been mapped to a specific drive letter in Windows. If your network is already mapped to a drive letter inside Windows, you can use that drive letter to mount it.

In case you have an unmapped network location, you can mount it directly using the below commands.

First, let’s create a folder for the location inside the /mnt/ folder using the below command:

sudo mkdir /mnt/folder

Then, use the mount switch to connect the folder with the network location:

sudo mount -t '\\server\folder' /mnt/folder

Where replace \\server\folder with the path to your network location.

Clear the Terminal Screen

If you have been running commands for a while, the terminal window may get clustered. You can quickly clear your terminal screen to make it look like a new tab with this command:

clear

Result:

Access Windows Files through WSL and Vice Versa

You can also access your Windows files in the Linux environment as well as create, copy/ move files, and delete files in the Windows file system. Microsoft WSL allows you to access your Windows files through the Linux kernel by navigating to the exact path. Here’s how you can do this:

Navigate and Access Windows File System in WSL

You can use the cd command to navigate the Windows File System.

cd/mnt/windows_path

Replace windows_path with the Windows path, you want to navigate to.

Example:

cd /mnt/f/Projects

When navigating drives in Linux, always add /mnt/ before the path.

You can also access your User accounts with this:

cd /mnt/c/Users

To view the contents inside a directory or folder, use the ls command. Folders will be highlighted with a green background and blue text.

Copying/Moving files Between Linux and Windows File Systems through WSL

You can move or copy files between the two operating systems using the cp or mv commands.

To copy files from Windows to the Linux file system, run the following commands:

cp /mnt/f/Projects/Patch.zip /home/rajst/Documents

Here, f/Projects/Patch.zip is the location and file you want to copy from Windows to Linux. /home/rajst/Documents is the destination for the copied file.

To Move files from Windows to the Linux file system, run the following commands:

mv /mnt/f/Projects/Patch.zip /home/rajst/Documents

To move the file, you have to use ‘mv’ instead of ‘cp’. In case there’s already a file with the same name that exists in the destination, type y and hit to replace it.

To move a file from Linux to the Windows file system, run the following commands:

mv /home/rajst/Documents/Patch.zip /mnt/f/Projects

Edit Windows files through WSL

You can also edit your Windows files (e.g., text files) through the Linux terminal using WSL. To do that, you have to use a text editor that can run in a terminal like ‘nano’. Below is the command for the same:

sudo nano /mnt/f/Projects/TestREF.txt

The built-in nano text editor will open the files in the terminal. Now, you can make changes to the file.

To exit the editor, press Ctrl+X. If you have made any changes to the file, you’ll be prompted to save the changes before quitting the editor. To save and exit the file, type Y and then press Enter.

Create files in Windows through WSL.

You can also create any kind of file in a specific windows directory using the touch command.

First, navigate to the directory where you want to create the file with the command like this:

cd /mnt/f/Projects/Documents

Then, use the touch command followed by the filename and type to create the file:

touch final_report.docx

Substitute final_report.docx with the file name and file type your want to create. The file type can be anything you want (.txt, .xlsx, .mp4, etc.)

Delete Files from Windows File System through WSL

Deleting files is similar to creating files via WSL, you have to navigate the folder or directory first and then use the rm command to delete the files.

First, navigate the directory or location:

cd /mnt/f/Projects/Vids

Then, use the rm command to remove the unwanted files:

rm final_report.docx

Access Linux Files through File Explorer

You can also access the Linux file system through File Explorer. To do that, open Windows File Explorer, scroll down to the left navigation panel and select the ‘Linux’ option.

Here, you will see the list of all distro you have installed on your device. Select the desired distro folder to view its files.

Under the ‘Home’ folder, you can find user profiles and their files.

Running GUI Linux Apps using WSL

Windows 11 comes with ‘WSLg’, short for Windows Subsystem for Linux GUI, which is a new feature that allows you to run Linux Graphical apps on Windows in a fully integrated desktop experience. It is a great feature that helps users to run apps and tools that work well or are only available in Linux. Follow these instructions to install GUI apps in WSL.

Prerequisites:

You will need at least Windows 11 (build 22000 or later) or Windows 11 Insider Preview (builds 21362 or later). To run Linux GUI apps, you will need a system with virtual GPU (vGPU) enabled for WSL. You can download and install the below driver matching your system to enable virtual GPU (vGPU) to achieve hardware-accelerated rendering.

  • Intel GPU driver for WSL
  • AMD GPU driver for WSL
  • NVIDIA GPU driver for WS

Update WSL and package list:

Next, you need to update the Windows Subsystem for Linux. To do that, open PowerShell or Command Prompt in elevated mode and enter the below command:

wsl --update

Then restart the WSL for the changes to take effect with this command:

wsl --shutdown

Update the packages in your distribution:

Then update your packages in the Linux distribution using the following commands:

sudo apt update

sudo apt upgrade

Install Linux GUI apps

Now you can download and install the Linux applications you want to use via the bash shell. In Linux distros, you can use various package managers to install your desired applications. Here’s a list of commands to install some of the most popular software in Linux.

To install apps in WSL, use the below command syntax:

sudo apt-get install APP-NAME -y

Here, replace App-Name with the actual app name.

Install GIMP

GIMP is a free and open-source image editor available for GNU-Linux, macOS, and Windows. It is used for image editing, photo retouching, image manipulation, and image authoring. To install GIMP software, open the Linux terminal and type this command:

sudo apt install gimp -y

or

sudo apt install gimp 

In the install command, you can add -y at the end to skip confirmation and get right to the installation.

Install Gedit app

To install GNOME’s default text editor, use the below command:

sudo apt install gedit -y

Install VLC Media Player

sudo apt install vlc -y

Install X11 apps

X11 is a Linux Windowing system that provides a miscellaneous assortment of X applications such as the xclock, xcalc calculator, clipboard, etc.

sudo apt install x11-apps -y

Install Firefox

apt install firefox -y

Search for Apps in the Software Repository 

If you don’t know the specific name of the app you want to install, you can search for it using the apt-cache command. Run the following command to find the name of a specific application:

sudo apt-cache search [application name or type]

Example:

sudo apt-cache search kden

The apt-cache command will show the results related to the search word ‘kden’ in the repository.

Now, you can use the name of the app from the search to install it.

Once you finish installing your desired application on the WSL distro, restart your PC and launch the app via the bash command line.

List All Installed Packages and Programs in Linux Distro

To list all the packages that you have installed using on your distro, run the below command:

apt list --installed

This will list all the packages installed on your Linux distro.

Launch Linux GUI Apps

To launch the install apps in WSL, simply type the name of the app and hit Enter to run it.

For example:

gimp

or

gimp &

As you can see below in the screenshot, the above command launches the GIMP (GNU Image Manipulation Program) application. Now, you can use your mouse and keyboard to use the app just like any of your Windows apps.

Access Linux Apps from Windows 11 Start Menu

Once you install an app in Linux, you can also access that Linux app directly from your Windows Start menu, just like you do a Windows app. You can tell the difference between Windows and Linux apps with the app name. You can just open the Start menu and access the app from the Recent list.

Or, you can search for the app in Windows Search. As you can see below, the Linux app will have the Linux Distribution name as part of the label. Also, the Linux penguin logo will be visible at the corner of the app icon.

Installing a Desktop Environment

Unlike Windows, Linux offers several customizable desktop environments that you can install on the same Linux distro. A desktop environment is a bundle of programs that runs on top of the operating system to provide default graphical user interface elements such as menus, windows, icons, toolbars, wallpapers, etc.

Some Linux distros come with their own desktop environments while in others you can manually install and customize them as you see fit. In Windows 11, you can not only install Linux terminals and apps but also install Linux desktop environments and use Linux graphically as you do any other operating systems like Windows and macOS. Let us see how to install Linux desktop environments in Windows 11.

Xfce is a lightweight and easy-to-use desktop environment that provides a feature-rich user experience. And it is one of the most commonly used desktop environments on WSL.

Start by updating and upgrading Ubuntu:

sudo apt update
sudo apt upgrade

To download and install Xfce on the WSL distro, run the following command in the Linux terminal:

sudo apt-get -y install xfce4 && sudo apt-get -y install xubuntu-desktop

Then, enter your password to execute the command. It will take a while to complete the installation process.

In the middle of the installation, you will be asked to choose a Desktop Manager – ‘GDM3’ or ‘LightDM’.

Install X server for Windows

Once it’s finished installation, we need to install an X server for Windows, such as VcXsrv. To run a Linux desktop environment inside Windows, we will need an X server. To install and set up an X server, follow these steps:

First, go to the download page of VcXscr X Windows Server and click the ‘Download’ button to download the software.

Alternatively, you can also go to the GitHub page of VcXsrv server and download the latest version of the app.

After the software is downloaded, run the setup. Then choose ‘Full’ from the ‘Select the type of install’ drop-down menu and click ‘Next’.

Then, click ‘Install’ on the next window to install the program and its components.

Once the installation is finished, you will have a shortcut named ‘Xlaunch’ on the desktop. Don’t open it yet.

Now go back to the Linux terminal and enter the below command to see if the ‘resolv.conf file auto-generated:

cat /etc/resolv.conf

If the server is running, you will get an IP address. Now, note down the IP address you got from this command. (e.g., 172.29.128.1)

Next, type the below command to edit the .bashrc script file which contains a series of configurations for the terminal session:

nano ~/.bashrc

In case you see this prompt message on the screen, simply press Y.

This will show a series of scripts on the screen. Now, go to the bottom of the script and add this new entry:

export DISPLAY=172.29.128.1:0

Now, type that IP address (172.29.128.1) you got earlier in the code, and make sure to add a colon (:) and zero (0) at the end.

If you have a problem restarting your Xfce server running on Ubuntu or launching the desktop environment, type this entry instead:

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0 

Then, press Ctrl+X and then Y to save the script. After that, hit Enter to exit the script.

After that, reload the service with this command.

source ~/.bashrc

Launch Desktop Environment:

Next, go back to the desktop and launch the ‘XLaunch’ app (VcXsrv) that you installed earlier.

Then, choose a display option in the Display settings window and click ‘Next’. Here, we are selecting the ‘One window without titlebar’ option.

Under Client startup, select the ‘Start no client’ option and click ‘Next’ to start only the server.

On the next screen, add all the additional parameters needed by you for the X server in the field below and click ‘Next’. In the example, we are adding -ac.

Finally, click on ‘Finish’. You can also save these configurations for later use or backup by clicking the ‘Save configuration’ option.

If you see the Windows Security Alert prompt, make sure to select both options and click ‘Allow access’.

Once you do that, you may just see a black screen. It is normal, ignore it and go back to the terminal.

Then, launch the new desktop environment by entering the following:

startxfce4

If you have a problem running the above command, run the following command instead:

sudo -u rajst startxfce4

Here, replace rajst with your username.

This will launch the Xfce desktop environment. Now, go back to the VcXsrv server program in the taskbar and you will have a Linux desktop as shown below.

You can use the new desktop as if it were a normal Windows desktop. You can access the file manager by clicking the ‘Home’ button.

To open applications, click the search button (Application Finder) at the bottom of the Xfce desktop. Then, find and click on the application from the Application Finder menu to launch the app.

Install Desktop Environment for Kali Linux:

If you are using the Kali Linux distro, you can install Win-KeX desktop which is a Kali Desktop Experience for Windows Subsystem for Linux (WSL 2).

To do this, first launch the Kali Linux and update the packages using the below commands:

sudo apt update
sudo apt upgrade

Then, execute the following command to install the Win-Kex desktop environment and press Enter:

sudo apt install -y kali-win-kex

Run Bash Scripts on Windows 11

So far we have seen how to run commands one by one in an interactive way but there’s another way you can execute commands in Linux – batch mode. You can run commands in batches. You can create a bash script that contains all of the commands you would like Linux to execute in order. Then, run that bash script (batch file) to execute the task one by one automatically without having to manually run individual commands. Here’s how you can do this:

Open your favorite text editor like Notepad and create a new text file. The first line of the script must be “#!” followed by the path of your Linux bash. To find the path of your Linux bash, open the Ubuntu terminal and run which bash. This will show you the Bash path. Note down or copy it.

Now, open your new text file and include that first line at the top. For example:

"#!"/usr/bin/bash

Next, type the commands you want Linux to run in sequential order. Each line should have a single command.

For example:

Line 2: Use theecho command to show a welcome text to the user.

Line 3: Use echo with the date command to show today’s date, time, time zone, and more.

Line 3: A combination of USER and echo commands is used to return the current user name.

Line 4: Once again, the echo command is used to display the message ‘End of My Script’.

As you can see there are three sequential commands set to execute in this script file.

After typing all the commands you want, save the text file with a .sh extension. When saving the file, select ‘All files (*.*)’ as the Save as type. Be sure to remember where you saved it because you need the file path to run the script.

Next, open PowerShell or Bash shell (Linux terminal) and use the cd command to navigate to the path where you have saved the Bash script file.

Then, run the script with the following command:

bash <name of script>

Replace <name of script> with the name of the bash file you created.

bash Sample.sh

This simple example shows you how you can create bash scripts to execute more complex script programs.

Create Aliases in Windows Subsystem for Linux

Alias in Linux is a custom shortcut used to execute more complex and lengthy commands. Aliases make Linux commands easy to remember and use. For example, if you need to execute this long command – mysqldump -u root -p --all-databases > /home/server/Desktop/backupfile.sql which is hard to type and prone to mistakes, you can instead create an alias like mysqlback and use it to execute that command.

There are two ways you can create to create aliases in Linux – per session or permanently.

Create Per Session Aliases

To create a temporary alias for your current session of bash (which will expire once you close the terminal), use the below command:

alias <alias name>='<command>'

Example: Creating an alias for cp /home/rajst/Test.bas /mnt/f/Projects command:

alias copytest='cp /home/rajst/Test.bas /mnt/f/Projects'

Now, you can use the alias copytest to execute that command quickly. However, this alias will only be available for your current terminal session.

Create Permanent Aliases

To create permanent aliases between sessions, you will need to edit and save your aliases inside a configuration file called .bash_aliases or .bashrc

First, check if the .bash_aliases file exists in your system using the below commands:

cd ~
ls -a

If you can’t find it, then run the following command:

touch .bash_aliases

To edit the .bash_aliases file, use the below command:

nano  ~/.bash_aliases

Then, add your permanent aliases to the file. For example:

alias c='clear'
alias ll="ls -alF"
echo alias wmi=\'echo I am in $PWD\'
alias Guten='cd /mnt/f/Projects/Project Gutenberg'

You can also leave a comment before your aliases (like #My Custom Aliases) for organization purposes.

You can also add your aliases in the .bashrc file.

Press Ctrl+X and then type Y to save the file. Then press Enter to exit the editor.

The new aliases in the file will be automatically loaded in your next session. But if you want to use them in your current session, you can ‘source’ your .bash_aliases file using this command: 

source ~/.bashrc

Now, you can use your alias shortcuts to execute your frequent commands quickly.

Essential WSL Commands for PowerShell

Here’s a list of essential Windows Subsystem for Linux commands that you can use in Windows PowerShell.

Use Command
Update WSL wsl –update
Install WSL wsl –install
Install a specific Linux Distribution wsl –install –distribution <Distribution Name> or wsl –install -d <Distribution Name>
List all available Distribution wsl –list –online
List all installed Distributions wsl –list –verbose
Set the WSL version from 1 to 2 wsl –set-version <distribution name> <versionNumber>
Set default WSL version wsl –set-default-version <Version>
Set default Linux distribution wsl –set-default <Distribution Name>
Change directory to home wsl ~
Run a specific Linux distribution from PowerShell or CMD wsl –distribution <Distribution Name> –user <User Name>
Check WSL status wsl –status
List of options and commands available with WSL wsl –help
Run as a specific user wsl -u <Username>`, `wsl –user <Username>
Change the default user for a distribution <DistributionName> config –default-user <Username>
To shutdown WSL wsl –shutdown
To terminate or stop a specific distribution from running wsl –terminate <Distribution Name>
Export a distribution to a TAR file wsl –export <Distribution Name> <FileName>
Import a new distribution wsl –import <Distribution Name> <InstallLocation> <FileName>
Unregister or uninstall a Linux distribution wsl –unregister <DistributionName>
Mount a disk or device wsl –mount <DiskPath>

That’s it. Using this guide, you’ll become a pro in using Linux on your Windows 11 PC in no time.

A “Window Terminal” is a command-line interface inside a GUI window. While the Windows operating system is a perfectly-capable OS that can perform various tasks and functions using just the GUI itself, a terminal running on top of Windows allows you to perform administrative tasks with convenience.

Using different terminals, you can connect to remote computers, transfer large files, execute cmdlets remotely, and even run apps and programs on a remote computer.

Other than that, it also enables you to perform complex automation tasks in a few cmdlets which can take a while if performed traditionally using Windows GUI.

If you are a system administrator, or just like using the command line, this article lists the best terminal emulators you can run on top of Windows 10 and Windows 11 with maximum command support and ease of use.

Table of contents

  • Top Terminal Emulators for Windows
    • Windows Terminal
    • Cmder
    • ZOC Terminal Emulator
    • Xshell
    • ConEmu
    • Hyper
    • Putty
  • Honorable Mentions
  • Closing Thoughts

Top Terminal Emulators for Windows

Windows Terminal

Download Windows Terminal

Windows Terminal

Windows Terminal

The Windows Terminal comes preinstalled in Windows 10 and 11. It can also be downloaded from Microsoft Store.

Although it lacks some of the features that other terminal emulators hold, it still provides convenient CLI usage without having to install a third-party emulator.

The Windows Terminal is an improvement over the legacy Command Prompt and Windows PowerShell, and combines these CLIs plus the Git Bash, Windows Subsystem for Linux (WSL), and Azure Cloud Shell into an integrated interface.

Additionally, it allows running multiple tabs simultaneously, allowing you to perform multiple tasks and connections at the same time.

Cmder

Download Cmder

Cmder

Cmder

Cmder is another Windows terminal built on top of “ConEmu” with the addition of Clink. Clink enhances the features of ConEmu by integrating support for Git commands, amongst Command Prompt and PowerShell. It supports running Unix-base cmdlets on top of the Windows OS and is fully compatible with Cygwin, Mintty, and msysgit.

Cmder comes in two versions – portable and full. Only the full version supports Unix-based commands, while the portable version is only 10 MBs in size and can be run directly from a USB. The portable version is widely used by sysadmins which they can carry around in a USB and use as per need.

Additionally, like Windows Terminal, Cmder can also run multiple tabs simultaneously.

That said, there are reports of non-Unicode characters having issues running with Cmder. If you use such characters often, then you may want to opt for another terminal.

ZOC Terminal Emulator

Download ZOC Terminal Emulator

ZOC Terminal Emulator

ZOC Terminal Emulator

Even though ZOC Terminal Emulator is an excellent command line tool, it is not free to use. This is perhaps the only drawback of the tool.

Other than that, like most other emulators, ZOC has a multi-tabbed interface that allows you to run multiple instances at the same time.

This tool does not only have a terminal interface like Windows Terminal but also includes a bunch of settings and menus that you can use your mouse to access. Additionally, it also supports Linux (Xterm) emulation, which includes 256-color support, meta-keys, and local printing. It also includes the Cisco CLI as well.

This terminal is an all-in-one solution for heavy file transfers and utilizes X, Y, and Zmodem, amongst FTP, FTPS, SFTP, and SCP.

Xshell

Download Xshell

Xshell

Xshell

Xshell is available in both free (for non-commercial use) and paid versions.

This terminal emulator supports SSH, SFTP, RLOGIN, Telnet, and SERIAL. Xshell comes in multiple language packs to cater to clients all around the world and is also designed for commercial use.

Multi-session management, work automation, support for UTF-8 coding, data safety, and security are some of the salient features of Xshell. Using the MIT Kerberos authentication system, this tool enables users to specify a master password to restrict access and keep the data safe and secure.

ConEmu

Download ConEmu

ConEmu

ConEmu

ConEmu is a free, open-source, Windows-specific terminal emulator with multi-tab support. The tool offers many CLI tabs as well as Graphical User Interface (GUI) programs that can be customized.

As it offers many customization options, such as hotkeys, personalized color palettes, and an auto-hideable mode, the software is popular amongst programmers and developers. ConEmu is also compatible with numerous shells, including PowerShell, PuTTY, and Cmder.

However, the lack of key functions, such as remote connections, makes the software less than ideal for novice users.

Hyper

Download Hyper

Hyper

Hyper

Hyper is a cross-platform, web-based terminal emulator. By “web-based,” we mean that it uses web-based technologies like CSS, Electron, and JavaScript to connect to remote devices.

Using Hyper, you can connect to multiple devices using the SSH protocol. Moreover, it has the ability to be expanded using plugins and add-ons. With multi-tab support, tiling pane, support for different themes, quick rendering, and split screen view, hyper becomes the ideal Windows terminal for sysadmins and developers on the go.

Putty

Download Putty

Putty

Putty

Putty is perhaps one of the most popular and love terminals out there. Designed for both advanced users and beginners, it has a simplistic design that supports SSH, Telnet, Rlogin, SUPDUP, and Serial protocols for a secure, remote connection.

Using the PSFTP (PuTTY SFTP client) and PSCP (PuTTY Secure Copy client) utilities, it can safely transfer files between computers. Putty supports SSH-1, SSH-2, and naming session profiles for storing configuration.

Honorable Mentions

Apart from the top 7 Windows terminal emulators that we have discussed above, there still are plenty of other emulators that are equally good. Here is a list in case your needs are not met using the aforementioned terminal emulators:

  • MobaXterm
  • KiTTY
  • ConsoleZ
  • z/Scope
  • FireCMD
  • Terminus
  • Git Bash

Closing Thoughts

Terminal Emulators let you gain more control over the remote devices. It allows you to perform certain tasks, such as automation, that previously weren’t possible using the Windows GUI. Moreover, it also allows you to control computers with different operating systems from a PC running the Windows OS.

Let us know which one of these emulators did you prefer and why?

  • Linux для работы в домене windows
  • Linux terminal commands in windows
  • Linux sync time with windows
  • Linux для планшетов на windows
  • Linux subsystem for windows download