Files
Terminal-from-scratch/README.md

14 KiB

Terminal-from-scratch

When your computer crashes (Windows, Linux, or macOS), you need to remember all the software installed to set them up again once you recover your OS.

This guide serves as a source of truth to encapsulate all the steps needed to set up a development environment from scratch.

Supported Operating Systems

Symbol OS
🍎 macOS
🐧 Linux (Debian/Ubuntu)
🅰️ Arch Linux
🪟 Windows

Table of Contents


Installing Google Chrome

🍎 macOS

Using Homebrew:

brew install --cask google-chrome

Or download directly from google.com/chrome

🐧 Linux (Debian/Ubuntu)

sudo apt update && sudo apt upgrade -y
sudo apt install wget
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb

If you have errors during installation:

sudo apt-get install -f

🅰️ Arch Linux

yay -S google-chrome

Or using paru:

paru -S google-chrome

🪟 Windows

Using Chocolatey:

choco install googlechrome

Using winget:

winget install Google.Chrome

Or download from google.com/chrome


Font Installation

Download MesloLGS NF (recommended for Powerlevel10k):

🍎 macOS

Double-click each .ttf file and click "Install Font", or:

brew tap homebrew/cask-fonts
brew install --cask font-meslo-lg-nerd-font

🐧 Linux (Debian/Ubuntu)

mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf
fc-cache -fv

🅰️ Arch Linux

yay -S ttf-meslo-nerd-font-powerlevel10k

Or manually:

mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf
fc-cache -fv

🪟 Windows

Download and double-click each .ttf file, then click "Install".

Or using Chocolatey:

choco install nerd-fonts-meslo

Installing VS Code

🍎 macOS

brew install --cask visual-studio-code

🐧 Linux (Debian/Ubuntu)

sudo apt update
sudo apt install wget apt-transport-https
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt update
sudo apt install code

🅰️ Arch Linux

sudo pacman -S code

Or for the proprietary version:

yay -S visual-studio-code-bin

🪟 Windows

Using Chocolatey:

choco install vscode

Using winget:

winget install Microsoft.VisualStudioCode

Launch with:

code

Installing Git

🍎 macOS

Git comes pre-installed. To update or install:

brew install git

🐧 Linux (Debian/Ubuntu)

sudo apt install git-all

🅰️ Arch Linux

sudo pacman -S git

🪟 Windows

Using Chocolatey:

choco install git

Using winget:

winget install Git.Git

Verify Installation (All Platforms)

git --version

Configure Git (All Platforms)

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

Set Up SSH Key (All Platforms)

Generate SSH key:

ssh-keygen -t ed25519 -C "your.email@example.com"

Start the SSH agent:

macOS/Linux:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Windows (Git Bash or PowerShell):

Start-Service ssh-agent
ssh-add ~/.ssh/id_ed25519

Copy your public key:

cat ~/.ssh/id_ed25519.pub

Add the key to GitHub: Go to Account > Settings > SSH and GPG keys > New SSH Key

Github key.png


Installing Node.js and NPM

🍎 macOS

Using Homebrew:

brew install node

Using nvm (recommended):

brew install nvm
mkdir ~/.nvm
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc
echo '[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"' >> ~/.zshrc
source ~/.zshrc
nvm install --lts

🐧 Linux (Debian/Ubuntu)

Using apt:

sudo apt update
sudo apt install nodejs npm

Using nvm (recommended):

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

Using NodeSource (for specific version):

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

🅰️ Arch Linux

sudo pacman -S nodejs npm

Using nvm:

yay -S nvm
echo 'source /usr/share/nvm/init-nvm.sh' >> ~/.zshrc
source ~/.zshrc
nvm install --lts

🪟 Windows

Using Chocolatey:

choco install nodejs-lts

Using winget:

winget install OpenJS.NodeJS.LTS

Using nvm-windows:

choco install nvm
nvm install lts
nvm use lts

Verify Installation (All Platforms)

node --version
npm --version

Installing Oh-My-Zsh

🍎 macOS

Zsh is the default shell. Install Oh-My-Zsh:

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

🐧 Linux (Debian/Ubuntu)

sudo apt install zsh git curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
chsh -s $(which zsh)

Restart your terminal or log out and back in.

🅰️ Arch Linux

sudo pacman -S zsh git curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
chsh -s $(which zsh)

🪟 Windows

Install Git Bash or Windows Terminal with WSL, then:

Using WSL:

sudo apt install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
chsh -s $(which zsh)

Using Git Bash: Download Zsh from MSYS2 and configure Git Bash to use it.


Installing Neovim

🍎 macOS

brew install neovim

🐧 Linux (Debian/Ubuntu)

sudo add-apt-repository ppa:neovim-ppa/unstable
sudo apt update
sudo apt install neovim

Install clipboard support:

sudo apt install xclip xsel

🅰️ Arch Linux

sudo pacman -S neovim xclip xsel

🪟 Windows

Using Chocolatey:

choco install neovim

Using winget:

winget install Neovim.Neovim

Install Dependencies (All Platforms)

Python interface:

pip3 install neovim
pip3 install --upgrade neovim

For 🐧 Linux / 🅰️ Arch:

# Ruby interface
sudo gem install neovim

For 🍎 macOS:

brew install ruby
gem install neovim

Check health:

nvim +checkhealth

checkhealth.png

Install vim-plug (All Platforms)

sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

Windows (PowerShell):

iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
    ni "$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim" -Force

For Vim usage reference: vimsheet.com

Check out my VIM Repository for my configuration.


Installing ZSH Plugins

zsh-autosuggestions

All Platforms (with Oh-My-Zsh):

Clone the repository:

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

Add to ~/.zshrc:

plugins=(... zsh-autosuggestions)

zsh-syntax-highlighting

All Platforms (with Oh-My-Zsh):

Clone the repository:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Add to ~/.zshrc:

plugins=(... zsh-syntax-highlighting)

Restart your terminal.


Installing Powerlevel10k

All Platforms (with Oh-My-Zsh):

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

Set ZSH_THEME="powerlevel10k/powerlevel10k" in ~/.zshrc.

Restart your terminal and follow the configuration wizard.

Note: For full icon support, use the MesloLGS NF font.


Installing Ranger

🍎 macOS

brew install ranger

🐧 Linux (Debian/Ubuntu)

sudo apt install ranger

Or from source:

git clone https://github.com/ranger/ranger.git
cd ranger
sudo make install

🅰️ Arch Linux

sudo pacman -S ranger

🪟 Windows

Ranger is primarily for Unix systems. Use WSL for Windows.

Configuration (All Platforms)

ranger --copy-config=all

Config files are located at ~/.config/ranger/

Install Colorschemes

cd ~/.config/ranger
git clone https://github.com/ranger/colorschemes.git

Installing Terminal Emulator

🍎 macOS

iTerm2 (recommended):

brew install --cask iterm2

Alacritty:

brew install --cask alacritty

Kitty:

brew install --cask kitty

🐧 Linux (Debian/Ubuntu)

Terminator:

sudo apt install terminator

Alacritty:

sudo add-apt-repository ppa:aslatter/ppa
sudo apt update
sudo apt install alacritty

Kitty:

sudo apt install kitty

🅰️ Arch Linux

Alacritty:

sudo pacman -S alacritty

Kitty:

sudo pacman -S kitty

Terminator:

sudo pacman -S terminator

🪟 Windows

Windows Terminal (recommended):

winget install Microsoft.WindowsTerminal

Alacritty:

choco install alacritty

Installing GNOME Extensions (Linux)

🐧 Linux (Debian/Ubuntu)

sudo apt update && sudo apt upgrade
sudo apt install gnome-shell-extensions chrome-gnome-shell

🅰️ Arch Linux

sudo pacman -S gnome-shell-extensions
yay -S chrome-gnome-shell

Browse more at extensions.gnome.org


Installing Postman

🍎 macOS

brew install --cask postman

🐧 Linux (Debian/Ubuntu)

sudo snap install postman

Or using Flatpak:

flatpak install flathub com.getpostman.Postman

🅰️ Arch Linux

yay -S postman-bin

🪟 Windows

Using Chocolatey:

choco install postman

Using winget:

winget install Postman.Postman

Installing DBeaver

🍎 macOS

brew install --cask dbeaver-community

🐧 Linux (Debian/Ubuntu)

wget -O - https://dbeaver.io/debs/dbeaver.gpg.key | sudo apt-key add -
echo "deb https://dbeaver.io/debs/dbeaver-ce /" | sudo tee /etc/apt/sources.list.d/dbeaver.list
sudo apt update
sudo apt install dbeaver-ce

Or using Snap:

sudo snap install dbeaver-ce

🅰️ Arch Linux

sudo pacman -S dbeaver

🪟 Windows

Using Chocolatey:

choco install dbeaver

Using winget:

winget install dbeaver.dbeaver

Quick Reference - Package Managers

OS Package Manager Install Command
🍎 macOS Homebrew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
🐧 Debian/Ubuntu apt Pre-installed
🅰️ Arch Linux pacman/yay sudo pacman -S yay or install from AUR
🪟 Windows Chocolatey Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
🪟 Windows winget Pre-installed on Windows 11 / Available via Microsoft Store

License

See LICENSE for details.