[..]

    _                    _ _  __ _   _                _       
   / \   _ __ ___  _ __ | (_)/ _(_) | |__   ___  __ _| |_ ___ 
  / _ \ | '_ ` _ \| '_ \| | | |_| | | '_ \ / _ \/ _` | __/ __|
 / ___ \| | | | | | |_) | | |  _| | | |_) |  __/ (_| | |_\__ \
/_/   \_\_| |_| |_| .__/|_|_|_| |_| |_.__/ \___|\__,_|\__|___/

(some explicit language is used, it's the name of a software package, not me swearing.)

What is WSL?

The wikipedia entry has some good info:

Windows Subsystem for Linux (WSL) is a compatibility layer for running Linux binary executables (in ELF format) natively on Windows 10 and Windows Server 2019. In May 2019, WSL 2 was announced, introducing important changes such as a real Linux kernel, through a subset of Hyper-V features. Since June 2019, WSL 2 is available to Windows 10 customers through the Windows Insider program, including the Home edition.

WSL provides a linux compatible kernel, without any linux kernel code, which runs a GNU user space on top of it. Giving you a bash shell in windows. You can install distros through the microsoft store. WSL 2 has a kernel running in a virtual machine.

How do I go about installing it?

It's crazy simple (you need Windows 10 64bit!):

  • Go to "turn windows features on or off"
  • Find Windows Subsystem for Linux
  • Click it
  • restart when prompted
  • go into microsoft store and search for WSL or linux and install a distro! (I used Ubuntu). These are non graphical to start!
  • (optional) get windows terminal (from github or microsoft store) for a better experience
  • launch distro or windows terminal
  • go through setup
  • run wslfetch!
  • WSLFetch

    What can I do?

    Here's a few highlights (imo)

  • running linux applications in a windows machine
  • having fun in bash
  • learning the terminal in a more comfortable environment
  • It’s lighter than a virtual machine and consumes fewer resources (CPU, memory and storage).
  • Easy to setup.
  • Natively integrated with Windows OS and supported by Microsoft.
  • No third party VM software is required.
  • Fairly large community and good documentation available from Microsoft, which allows even developers who have never used Linux before to get started easily.
  • Speeds up the development process in case of cross-platform projects.
  • You can share Windows apps and Linux tools on the same set of files.
  • In general, almost near native Linux distro performance.
  • Very stable.
  • Cost-efficient (no licence fee).
  • Users can install the required packages (for example, if you are running the WSL Ubuntu image, you can install packages from the Ubuntu repository).
  • It offers distribution support. With Ubuntu LTS (long-term support) releases, users will have five years of security patches and updates.
  • What about GUI stuff?

    It's tricky to set up in WSL 1, not ideal. But WSL 2 offers native GUI support, but you need to be an Insider lol

    Some cool stuff I got set up

  • TheFuck - type fuck after a command gets messed up:
  • 02:45:26 Amplifi@WSL ~ → sudo sapt install x
    [sudo] password for Amplifi:
    sudo: sapt: command not found
    02:47:28 Amplifi@WSL ~ → fuck
    sudo apt install x [enter/↑/↓/ctrl+c]
    

  • Oh-my-bash - makes bash a bit prettier, I'm using the primer theme, I think
  • git - duh
  • cowsay - it's a lifesaver
  • ^