kfu

WINDOWS SUBSYSTEM FOR LINUX

OPEN POWERSHELL AS ADMINISTRATOR AND RUN

wsl --install

TO INSTALL A SPECIFIC DISTRIBUTION, SPECIFY

wsl --install -d debian

RESTART IF PROMPTED OPEN WSL TERMINAL, CREATE A USER AND SET A PASSWORD

UPDATE & UPGRADE

sudo apt update && sudo apt upgrade -y

INSTALL ESSENTIAL TOOLS

sudo apt install -y build-essential curl git wget unzip

CONFIGURE GIT

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

GENERATE AN SSH AND ADD IT TO GITHUB (OR OTHER SERVICES)

ssh-keygen -t ed25519 -C "your.email@example.com"
cat ~/.ssh/id_ed25519.pub

OPTIONAL:

INSTALL NODE.JS

FOR JAVASCRIPT

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

VERIFY

node -v
npm -v

INSTALL NVM (NODE VERSION MANAGER) FOR EASIER VERSION CONTROL

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
source ~/.bashrc
nvm install --lts

CHECK IF PYTHON IS INSTALLED

python3 --version

IF NOT, INSTALL PYTHON

sudo apt install -y python3 python3-pip python3-venv

INSTALL DOCKER

sudo apt install -y docker.io

ADD YOUR USER TO THE DOCKER GROUP

sudo usermod -aG docker $USER

START DOCKER

sudo service docker start

open a WSL & NAVIGATE TO YOUR PROJECT DIRECTORY, LAUNCH VS CODE FROM WSL

code .

SYNC FILES BETWEEN WINDOWS AND WSL

\\wsl$\<distro_name>\

MISCELLANEOUS TOOLS

JAVA

sudo apt install default-jdk

MYSQL

sudo apt install mysql-server

POSTGRESQL

sudo apt install prstgresql postgresql-contrib

RUBY

sudo apt install ruby-full

GO

sudo apt install golang

SET ZSH AS DEFAULT SHELL

sudo apt install -y zsh
chsh -s $(which zsh)

INSTALL OH-MY-ZSH FOR CONFIGURATION

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"