Linux Mastery Guide — Complete Reference

19-section Linux reference covering terminal mastery, app replacements, security, gaming, scripting, customization, and emergency recovery — the technical deep-dive companion to Linux Treasure Hunt.

Intermediate Verified Working Updated 25 min read Tested on Zorin OS 18.1 Pro (Ubuntu 24.04 Noble base) Hardware Lenovo ThinkPad L14 Gen 2

A single-page reference for everything you need to know after switching from Windows to Linux. Use the table of contents to jump to any section.

This guide is the reference manual. It is not meant to be followed day-by-day.

If you want the paced, beginner-first journey with weekly missions and fewer decisions, start with the companion Linux Treasure Hunt.

How to Use This Reference

Use this guide in one of three ways:

  • As a lookup manual: jump straight to the section that matches the problem in front of you.
  • As a systems map: read one section at a time to understand how Linux fits together.
  • As an adaptation layer: keep the Ubuntu-based commands, but use the distro notes to translate concepts when you are on Fedora, Arch-based systems, or openSUSE.

This guide intentionally keeps Ubuntu-based commands as the primary examples because that is the tested base for the repo and the lowest-friction path for most newcomers.

Distro Translation Layer

Most Linux advice becomes confusing because people mix three different things:

  • the distro family (apt, dnf, pacman, zypper)
  • the desktop environment (GNOME, KDE Plasma, Xfce, Cinnamon)
  • the application itself (Firefox, VS Code, Steam, Dropbox, etc.)

When adapting this guide to another distro, identify which layer is actually changing.

LayerUsually portableUsually distro-specific
Core conceptsfilesystem, permissions, shell usage, logs, servicespackage-manager syntax, repo setup
Desktop workflowapp behavior, browser setup, office workflowexact Settings labels, appearance tools
Recovery approachread logs, isolate cause, roll back safelybootloader commands, driver packaging

Package Manager Translation

When a section uses Ubuntu-based commands, translate the package manager, not the whole idea:

Ubuntu-basedFedoraArch-basedopenSUSE
aptdnfpacmanzypper
.deb packagesRPM packagesrepo/AUR/community packagesRPM packages
PPAs / Ubuntu reposFedora repos / COPRofficial repos / AURopenSUSE repos

The safe default for this repo remains: if you are new, stay on the Ubuntu-based path first and only adapt once you know why you need to.


01 — First Setup Checklist

Reference note: the commands below are Ubuntu-based. The checklist itself applies broadly even when the exact package-manager syntax changes.

Do these immediately after a fresh install, in order:

# 1. Update the entire system
sudo apt update && sudo apt upgrade -y

# 2. Enable Flatpak (access to 2000+ sandboxed apps)
sudo apt install flatpak gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# 3. Check your GPU driver
ubuntu-drivers devices
sudo ubuntu-drivers autoinstall

# 4. Set your computer's hostname
sudo hostnamectl set-hostname my-thinkpad

# 5. Install essential tools
sudo apt install -y curl wget git htop neofetch timeshift

After step 1 — open Timeshift and create your first snapshot before anything else.


02 — Windows → Linux App Replacements

How to Read This Table

The table below is not trying to prove that one Linux app is universally best. It is a practical shortlist:

  • start with the simplest credible replacement
  • prefer native or well-supported Linux options first
  • use web apps when they genuinely solve the problem
  • keep Windows-only compatibility layers as a fallback, not your default
WindowsLinux AlternativeInstall
Microsoft OfficeLibreOfficePre-installed / sudo apt install libreoffice
Microsoft Office (compat)OnlyOfficeflatpak install flathub org.onlyoffice.desktopeditors
Notepad++Katesudo apt install kate
PhotoshopGIMP + Inkscapesudo apt install gimp inkscape
LightroomDarktablesudo apt install darktable
Premiere ProDaVinci ResolveFree official download at blackmagicdesign.com
AudacityAudacity (same!)sudo apt install audacity
VLCVLC (same!)sudo apt install vlc
SpotifySpotifyflatpak install flathub com.spotify.Client
DiscordDiscordflatpak install flathub com.discordapp.Discord
WhatsAppWhatsApp Web PWAOpen in Chrome → Menu → Install as app
SlackSlackflatpak install flathub com.slack.Slack
ZoomZoomflatpak install flathub us.zoom.Zoom
WinRARBuilt-in ArkRight-click → Extract
7-Zipp7zipsudo apt install p7zip-full
Windows GamesSteam + Protonsudo apt install steam (enable Proton in settings)
VS CodeVS Code (same!)flatpak install flathub com.visualstudio.code
Windows TerminalGNOME Terminal / KittyPre-installed
KeePassKeePassXCsudo apt install keepassxc
BitwardenBitwarden (same!)flatpak install flathub com.bitwarden.desktop

Web apps gap: For WhatsApp, Notion, Figma, Gmail — open in Chrome → Menu → “Install as app”. Opens in its own window like a native app. This closes the last 10% of the app gap on Linux.


03 — Terminal: Navigation & File Management

The terminal is not optional — it is where Linux becomes 10× more powerful than Windows. Open it with Ctrl+Alt+T.

pwd                     # print working directory — where am I?
ls                      # list files
ls -la                  # list all files (including hidden), with details
cd Documents            # change to Documents folder
cd ..                   # go up one level
cd ~                    # go to home directory
cd -                    # go to previous directory

File Operations

cp file.txt backup.txt          # copy a file
cp -r folder/ backup/           # copy a folder recursively
mv old-name.txt new-name.txt    # rename or move a file
rm file.txt                     # delete a file
rm -rf folder/                  # delete a folder and all contents (careful!)
mkdir new-folder                # create a directory
mkdir -p a/b/c                  # create nested directories
touch file.txt                  # create an empty file

Finding Things

find ~ -name "*.txt"                    # find all .txt files in home
find /etc -name "*.conf" -type f        # find config files
find . -newer reference.txt             # files newer than a reference
locate filename                         # fast indexed search (update with sudo updatedb)
which python3                           # where is this command installed?

Disk Usage

df -h                           # disk space on all filesystems
du -sh *                        # size of each item in current folder
du -sh * | sort -hr | head -10  # top 10 largest items
ncdu /                          # interactive visual disk explorer (install: sudo apt install ncdu)

Tab Completion: Type the first 2–3 letters of any filename or command and press Tab. It auto-completes. Press Tab twice to see all options. This is the number one speed multiplier in the terminal.


04 — Terminal: Text, Search & Editing

Reading Files

cat file.txt                    # print entire file
less file.txt                   # scroll through file (q to quit)
head -20 file.txt               # first 20 lines
tail -20 file.txt               # last 20 lines
tail -f /var/log/syslog         # follow log file in real time

grep — Search Inside Files

grep is one of the most powerful tools you will ever learn.

grep "error" logfile.txt                # find lines containing "error"
grep -i "error" logfile.txt             # case-insensitive
grep -r "TODO" ~/projects/              # search recursively in folder
grep -n "function" script.js            # show line numbers
grep -v "debug" logfile.txt             # show lines that do NOT match
grep -c "error" logfile.txt             # count matching lines
ps aux | grep firefox                   # pipe: find process by name
cat /etc/passwd | grep "mohsin"         # pipe grep into any command

sed — Stream Editor

sed 's/old/new/g' file.txt              # replace all "old" with "new" (print only)
sed -i 's/old/new/g' file.txt          # replace in-place (modifies file)
sed -n '5,10p' file.txt                 # print lines 5 to 10
sed '/^#/d' file.txt                    # delete comment lines

Text Editors

nano — easiest, perfect for beginners:

nano filename.txt       # open (or create) a file
# Ctrl+O = save, Ctrl+X = exit, Ctrl+W = search

vim — powerful, worth learning:

vim filename.txt
# i = enter insert mode (start typing)
# Esc = return to command mode
# :w = save, :q = quit, :wq = save and quit, :q! = quit without saving
# Run "vimtutor" in terminal for an interactive 30-minute lesson

05 — Terminal: System & Process Management

System Information

CommandWhat it does
neofetchBeautiful system overview with distro art
uname -aKernel and architecture info
lscpuDetailed CPU information
free -hRAM usage (human readable)
lspci | grep VGAIdentify your GPU
lsblkList disks and partitions
df -hDisk space on all filesystems
uptimeHow long system has been running
inxi -FxzFull system summary (sudo apt install inxi)

Process Management

htop                            # interactive process viewer (better than top)
ps aux                          # list all running processes
ps aux | grep firefox           # find a specific process
kill 1234                       # kill process by ID (find ID with htop)
kill -9 1234                    # force kill (no cleanup)
killall firefox                 # kill all processes matching name
xkill                           # click any window to force close it

Package Management (APT)

sudo apt update                         # refresh package list
sudo apt upgrade -y                     # upgrade all packages
sudo apt install vlc                    # install a package
sudo apt remove vlc                     # remove (keep config)
sudo apt purge vlc                      # remove + delete config files
sudo apt autoremove                     # remove unused dependencies
apt search "music player"               # search for packages
apt show ffmpeg                         # show package details
dpkg -l | grep python                   # check if something is installed
sudo apt --fix-broken install           # fix broken dependencies
sudo apt clean && sudo apt update       # clear cache and refresh

Systemd Services

sudo systemctl start nginx      # start a service
sudo systemctl stop nginx       # stop a service
sudo systemctl restart nginx    # restart
sudo systemctl enable nginx     # start automatically on boot
sudo systemctl disable nginx    # don't start on boot
systemctl status nginx          # is it running?
journalctl -u nginx -f          # watch service logs in real time
journalctl -xe                  # all system logs with errors highlighted
journalctl -b -1                # logs from last boot

06 — Terminal: Networking

CommandWhat it doesExample
ip aShow network interfaces and IPsip a | grep inet
pingTest if host is reachableping -c 4 google.com
curlFetch content from URLcurl https://api.ipify.org
wgetDownload a filewget https://site.com/file.zip
ss -tulnpShow open ports and listening servicesss -tulnp
nmapScan ports on a hostnmap 192.168.1.1
tracerouteTrace network pathtraceroute google.com
digDNS lookupdig google.com
ssh user@hostConnect to remote serverssh mohsin@192.168.1.10
scp file user@host:/pathCopy file to remote server
rsync -avz src/ user@host:/dst/Sync files efficiently

07 — Terminal: Permissions & Users

Linux file permissions are the number one thing that confuses newcomers. Once you understand them, they become obvious and powerful.

Every file has three permission sets: owner, group, and everyone else. Each set has three bits: r (read=4), w (write=2), x (execute=1).

ls -la                          # see permissions: -rwxr-xr-x
chmod 755 script.sh             # rwx for owner, rx for group+others
chmod +x script.sh              # add execute permission for everyone
chmod 600 private.key           # only owner can read/write (for SSH keys)
chmod -R 755 folder/            # apply recursively to folder
chown mohsin file.txt           # change owner
chown mohsin:mohsin file.txt    # change owner and group
sudo chown -R www-data /var/www # change ownership recursively

Permission numbers cheat sheet:

  • 7 = rwx (full access)
  • 6 = rw- (read and write)
  • 5 = r-x (read and execute)
  • 4 = r— (read only)
  • 755 = owner full, others read+execute (typical for scripts)
  • 644 = owner read+write, others read-only (typical for files)
  • 600 = owner read+write only (SSH keys, secrets)

User Management

sudo adduser newuser            # create a new user
sudo usermod -aG sudo newuser   # add user to sudo group
su - newuser                    # switch to another user
sudo passwd newuser             # change a user's password
who                             # who is currently logged in
last | head -20                 # login history

08 — Terminal: Power Tricks & Shortcuts

Pipes & Redirection

Pipes (|) chain commands together — the output of one becomes the input of the next. This is the core of Linux power.

ls -la | grep ".txt"            # list only .txt files
ps aux | grep firefox | grep -v grep    # find process
cat /var/log/syslog | grep error | tail -20 # last 20 errors
command > output.txt            # redirect output to file (overwrites)
command >> output.txt           # append to file
command 2> errors.txt           # redirect errors to file
command > output.txt 2>&1       # redirect both stdout and stderr
history                         # show all previous commands
history | grep "apt"            # search history
Ctrl+R                          # reverse history search (start typing to find)
!!                              # repeat last command
!apt                            # repeat last command starting with "apt"

Aliases — Your Own Shortcuts

Add these to ~/.bashrc:

alias update='sudo apt update && sudo apt upgrade -y'
alias ll='ls -la'
alias ..='cd ..'
alias ...='cd ../..'
alias grep='grep --color=auto'

# Apply without restarting terminal:
source ~/.bashrc

Environment Variables

echo $HOME                      # print a variable
echo $PATH                      # show executable search path
export MY_VAR="hello"           # set a variable for current session
# Add to ~/.bashrc for persistence:
echo 'export MY_VAR="hello"' >> ~/.bashrc

Middle Click Superpower

Select any text anywhere in Linux — it is automatically copied. Middle-click anywhere to paste it. No Ctrl+C needed. This is a Linux feature that Windows users do not have.


09 — Bash Scripting Basics

A bash script is a text file with a list of commands that run in order. Once you write one, you will automate everything.

Your First Script

#!/bin/bash
# ← Always the first line (the "shebang" — tells the system this is bash)

# Variables
NAME="Linux User"
DATE=$(date +%Y-%m-%d)         # capture command output into variable
BACKUP_DIR="/backup/$DATE"

# Print to terminal
echo "Hello $NAME! Starting backup on $DATE"

# Create directory if it doesn't exist
mkdir -p "$BACKUP_DIR"

# Copy files
cp -r ~/Documents "$BACKUP_DIR/"
echo "Documents backed up to $BACKUP_DIR"

Make it executable and run it:

chmod +x backup.sh      # make executable
./backup.sh             # run it

If / Else

if [ -f "/etc/hosts" ]; then
  echo "File exists!"
elif [ -d "/etc" ]; then
  echo "/etc is a directory"
else
  echo "Neither exists"
fi

For Loop

for file in ~/Documents/*.pdf; do
  echo "Processing: $file"
  cp "$file" /backup/pdfs/
done

While Loop & User Input

echo -n "Enter your name: "
read USERNAME
echo "Welcome, $USERNAME!"

# Count with while:
COUNT=1
while [ $COUNT -le 5 ]; do
  echo "Count: $COUNT"
  COUNT=$((COUNT + 1))
done

Schedule with Cron

crontab -e      # edit your cron jobs
# Format: minute hour day month weekday command
# Examples:
0 2 * * *     /home/mohsin/backup.sh         # every night at 2am
*/5 * * * *   /home/mohsin/check-status.sh   # every 5 minutes
0 9 * * 1     /home/mohsin/weekly-report.sh  # every Monday at 9am

10 — Essential Daily Apps

Browsers

# Firefox (default, privacy-focused)
sudo apt install firefox

# Brave (fastest, built-in ad blocker, Chrome extensions)
flatpak install flathub com.brave.Browser

# Chromium (open source Chrome)
sudo apt install chromium-browser

Office & Productivity

# LibreOffice (Writer, Calc, Impress — full Office suite)
sudo apt install libreoffice

# OnlyOffice (better MS format compatibility)
flatpak install flathub org.onlyoffice.desktopeditors

# Obsidian (markdown notes, local files, plugin ecosystem)
flatpak install flathub md.obsidian.Obsidian

# Standard Notes (end-to-end encrypted)
flatpak install flathub org.standardnotes.standardnotes

Communication

# Discord
flatpak install flathub com.discordapp.Discord

# Telegram
flatpak install flathub org.telegram.desktop

# Thunderbird (email client — handles Gmail, Outlook, any IMAP)
sudo apt install thunderbird

# Zoom
flatpak install flathub us.zoom.Zoom

# Slack
flatpak install flathub com.slack.Slack

Media

# VLC (plays every format ever invented)
sudo apt install vlc

# Spotify
flatpak install flathub com.spotify.Client

# Celluloid (beautiful mpv frontend)
flatpak install flathub io.github.celluloid_player.Celluloid

# Rhythmbox (music library)
sudo apt install rhythmbox

# Shotwell (photo library manager)
sudo apt install shotwell

11 — Developer Tools

Git Essentials

git init                                # initialize a repo
git clone https://github.com/user/repo # clone a repo
git status                              # see what's changed
git add .                               # stage all changes
git add filename.txt                    # stage a specific file
git commit -m "Your message"            # commit with message
git push origin main                    # push to remote
git pull                                # fetch and merge
git log --oneline -10                   # last 10 commits
git branch feature-x                    # create a branch
git checkout feature-x                  # switch to branch
git checkout -b feature-x               # create and switch
git merge feature-x                     # merge into current branch
git stash                               # temporarily save uncommitted changes
git stash pop                           # restore stashed changes

Node.js / Python / Docker

# Node.js (via NVM — recommended)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
nvm install --lts
nvm use --lts

# Python 3 (usually pre-installed)
python3 --version
pip3 install requests pandas numpy

# Docker
sudo apt install docker.io
sudo systemctl enable docker
sudo usermod -aG docker $USER   # run docker without sudo (re-login required)

VS Code

flatpak install flathub com.visualstudio.code
# Or download the .deb from code.visualstudio.com and install with:
sudo dpkg -i code_*.deb

Essential extensions: GitLens, Prettier, ESLint, Python, Remote-SSH (connect to servers directly from VS Code).


12 — Creative Suite

# GIMP — professional image editor (Photoshop alternative)
sudo apt install gimp

# Inkscape — vector graphics editor (Illustrator alternative)
sudo apt install inkscape

# Darktable — photo library + RAW editing (Lightroom alternative)
sudo apt install darktable

# Blender — 3D modeling, animation, rendering
flatpak install flathub org.blender.Blender

# Kdenlive — video editor
flatpak install flathub org.kde.kdenlive

# Audacity — audio editor and recorder
sudo apt install audacity

# OBS Studio — screen recording and streaming
sudo apt install obs-studio

# DaVinci Resolve — professional video editor (free tier is excellent)
# Download the official Linux installer from blackmagicdesign.com

13 — Security & Privacy

Good news: Linux does not need antivirus for everyday use. Viruses are written for Windows. Focus on privacy tools instead.

# KeePassXC — local encrypted password manager
sudo apt install keepassxc

# UFW Firewall — enable it on every machine
sudo apt install ufw gufw
sudo ufw enable
sudo ufw status

# Bitwarden — cloud password manager (open source, audited)
flatpak install flathub com.bitwarden.desktop

# ProtonVPN — a well-supported VPN option for Linux with a native app
flatpak install flathub com.protonvpn.www

# Tor Browser — anonymous browsing
flatpak install flathub com.github.micahflee.torbrowser-launcher

# GPG — encrypt files and emails
gpg --gen-key                   # generate your key pair
gpg -c secret.txt               # encrypt a file (symmetric)
gpg secret.txt.gpg              # decrypt

14 — Gaming on Linux

Linux gaming has transformed. The majority of Steam games run on Linux via Proton. The Steam Deck runs Linux. Gaming is no longer a reason to stay on Windows.

# Steam (official Linux client)
sudo apt install steam
# → In Steam: Settings → Steam Play → "Enable Steam Play for all other titles" → choose Proton

# Proton-GE (better compatibility than stock Proton)
flatpak install flathub com.valvesoftware.Steam.CompatibilityTool.Proton-GE

# Bottles — run Windows games via Wine (easy GUI)
flatpak install flathub com.usebottles.bottles

# Lutris — gaming hub (GOG, Epic, Battle.net, standalone)
sudo apt install lutris

# Heroic Games Launcher — play Epic Games Store + GOG games
flatpak install flathub com.heroicgameslauncher.hgl

Check game compatibility before buying: ProtonDB.com has community-tested ratings for every Steam game. Platinum/Gold = works perfectly. Silver = minor issues. Bronze = runs with workarounds.


15 — Package Managers Explained

Trust Order

When multiple install methods exist, prefer them in this order unless you have a specific reason not to:

  1. The distro’s primary package manager
  2. The vendor’s official package or official repository
  3. Flatpak for desktop apps when packaging is better there
  4. Snap when it is the cleanest maintained option for that app
  5. AppImage or manual installs only when the above are weak or unavailable

That order keeps maintenance, updates, rollback, and troubleshooting much simpler.

ManagerBest forSource
APTSystem packages, CLI tools, native appsUbuntu/Debian repos
FlatpakDesktop GUI apps, sandboxedFlathub
SnapSome apps only on SnapSnap Store
AppImagePortable apps, no install neededDirect download

Decision tree:

  1. Try apt first — usually the most integrated option on an Ubuntu-based system
  2. Not in apt? Use flatpak install flathub [app-id]
  3. Want the absolute latest version? Check Flatpak
  4. AppImage: download one file, chmod +x, run — no installation
# Flatpak setup (if not already done)
sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# AppImage usage
chmod +x AppName.AppImage
./AppName.AppImage
# To integrate into launcher: install "AppImageLauncher" from Flathub

16 — Customization

Make Your Terminal Beautiful

# Oh My Zsh — framework with themes and plugins
sudo apt install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# Starship — cross-shell prompt (shows git branch, Python env, Node version)
curl -sS https://starship.rs/install.sh | sh
# Add to ~/.bashrc or ~/.zshrc:
eval "$(starship init bash)"

Desktop Customization

# GNOME Tweaks — control fonts, icons, window buttons, animations
sudo apt install gnome-tweaks

# Papirus icon theme (most popular)
sudo apt install papirus-icon-theme
# Apply in GNOME Tweaks → Appearance → Icons

# GNOME Extensions — install from extensions.gnome.org
# Must-haves: Dash to Panel, AppIndicator Support, Blur My Shell
sudo apt install gnome-shell-extensions chrome-gnome-shell

Quality-of-Life CLI Tools

sudo apt install -y \
  bat          \   # "cat" with syntax highlighting (use as: batcat)
  fd-find      \   # faster "find" (use as: fdfind)
  ripgrep      \   # blazing fast grep (use as: rg)
  tmux         \   # split terminal into panes, keep sessions alive
  fzf          \   # fuzzy finder for files, history, anything
  ncdu         \   # visual disk usage explorer
  tldr         \   # simplified man pages with practical examples
  exa              # modern "ls" with colors and icons

tmux basics:

tmux                    # start a session
Ctrl+B, "             # split horizontally
Ctrl+B, %             # split vertically
Ctrl+B, arrow         # navigate between panes
Ctrl+B, d             # detach (session keeps running)
tmux attach           # re-attach to session

17 — Emergency Recovery

When things go wrong — and occasionally they will — these commands cover many of the common recovery cases you will hit on an Ubuntu-based desktop.

Fix Broken Packages

sudo apt --fix-broken install
sudo dpkg --configure -a
sudo apt clean && sudo apt update
sudo apt upgrade -y

Restore from Timeshift

# From recovery mode (GRUB → Advanced → Recovery → root shell):
timeshift --restore
sudo timeshift --list       # see available snapshots first

Free Up Disk Space

sudo apt autoremove --purge
sudo apt autoclean
sudo journalctl --vacuum-size=100M      # trim system logs
sudo find /tmp -type f -delete          # clear temp files
ncdu /                                  # find what's using space

Desktop Frozen / Crashed

# Switch to text terminal (TTY):
Ctrl+Alt+F3             # open TTY3
# Log in with username/password, then:
sudo systemctl restart display-manager
Ctrl+Alt+F7             # return to graphical desktop

Force Kill Frozen Apps

xkill                           # click any window to kill it
killall firefox                 # kill by name
kill -9 $(pgrep firefox)        # force kill by process ID
# Or: open htop, find the process, press F9 → select signal 9 (SIGKILL)

Read System Logs

journalctl -xe              # system logs with errors
journalctl -b -1            # logs from last boot
dmesg | tail -50            # kernel messages
cat /var/log/syslog | grep error | tail -30

The Magic SysRq Keys — Nuclear Option

When the system is completely frozen and nothing responds, hold Alt+PrintScreen and type these letters one at a time, slowly:

R E I S U B

This safely reboots Linux even when everything else is dead. Remember: “Reboot Even If System Utterly Broken”


18 — Skill Progression Ladder

This is not a duplicate of the Treasure Hunt. The Treasure Hunt gives you a paced onboarding sequence. This section shows the skill layers you should expect to build over time so you can tell where you are and what to learn next.

Day 1 — The Foundation

Before anything else:

  1. Create Timeshift snapshot
  2. sudo apt update && sudo apt upgrade -y (Snapshot again if you want)
  3. Enable Flatpak
  4. Check and install GPU drivers
  5. Learn Ctrl+Alt+T

Week 1 — Settle In & Replace Apps

Find Linux equivalents for every Windows app you use. Get comfortable with the file manager. Your only goal: feel at home.

  • Install browser + extensions
  • Set up email client (Thunderbird)
  • Replace Office with LibreOffice or OnlyOffice
  • Learn: ls, cd, pwd, mkdir
  • Enable automatic updates

Weeks 2–3 — Terminal Basics

Use the terminal for at least 3 tasks per day. Start with file operations, then package management.

  • cp, mv, rm, find
  • grep and pipes
  • apt install / remove
  • Set up aliases in ~/.bashrc
  • Master Tab completion and Ctrl+R

Month 1 — System Understanding

Learn what is under the hood. File permissions, users, processes. This is where you go from user to confident operator.

  • chmod and file permissions
  • htop and process management
  • systemctl and services
  • Reading log files with journalctl
  • Enable UFW firewall

Month 2 — Customize & Automate

Make Linux truly yours. Write your first scripts to automate repetitive tasks.

  • Write a backup script
  • Set up cron jobs
  • Install Oh My Zsh + Starship
  • Desktop themes and GNOME extensions
  • Set up SSH key authentication

Month 3 — You Are a Linux User

You instinctively open the terminal to solve problems. You help others in forums. You have not thought about Windows in weeks.

  • Comfortable with Git
  • Set up a home server or VPS
  • Understand networking commands
  • Contribute to a Linux forum
  • Consider your next distro: Ubuntu → Fedora → Arch

19 — Best Linux Resources

Essential Websites

wiki.archlinux.org — Deep Linux Reference One of the most comprehensive Linux documentation resources on the internet. Much of it is useful beyond Arch itself. When you need concept-level explanations, it is often worth checking.

askubuntu.com — Q&A for Ubuntu-based systems Stack Overflow for Ubuntu-family Linux. Every common problem has been answered here. Add site:askubuntu.com to your searches for targeted results.

linuxcommand.org — Terminal School Free online book “The Linux Command Line” by William Shotts. A very structured resource for learning the terminal from scratch.

protondb.com — Game Compatibility Community reports on how well every Steam game runs via Proton. Check before buying any Windows game.

flathub.org — App Discovery Browse and install 2000+ Linux apps as Flatpaks. It is one of the most useful discovery layers for desktop Linux software.

Communities

r/linux4noobs — Strong beginner community. Ask broad beginner questions there when you need human help.

r/zorinos — Useful if you are specifically on Zorin OS. Treat it as a flavor-specific supplement, not a general Linux source.

Which Source to Trust First

When you are troubleshooting, use this order:

  1. Official documentation for the app, distro, or vendor
  2. Distro-family Q&A sites such as AskUbuntu for Ubuntu-based systems
  3. Arch Wiki for concepts and broad Linux mechanics
  4. Forums and Reddit for edge cases, workarounds, and confirmation

This order cuts down a lot of bad advice and stale copy-paste fixes.

LinuxQuestions.org — Old school forum with an incredibly deep archive of solved problems.

YouTube Channels

  • @TheLinuxExperiment — Linux news, app reviews, tutorials
  • LearnLinuxTV — server setup and practical guides
  • DistroTube — distro reviews and philosophy
  • Chris Titus Tech — optimization and productivity

Quick Reference Cheatsheet

# Navigation
pwd && ls -la && cd ~ && cd -

# Files
cp -r src/ dst/  |  mv old new  |  rm -rf folder/
mkdir -p a/b/c   |  chmod 755 file  |  chown user file

# Search
grep -ri "term" /path  |  find . -name "*.py"
history | grep "apt"   |  Ctrl+R (reverse search)

# System
htop  |  free -h  |  df -h
ps aux | grep name  |  systemctl status svc

# APT
sudo apt update && upgrade  |  install / remove / purge
sudo apt autoremove --purge  |  --fix-broken install

# Networking
ip a  |  ping -c4 google.com  |  ss -tulnp
curl ifconfig.me  |  ssh user@host  |  rsync -avz src/ dst/

# Firewall
sudo ufw enable  |  sudo ufw status  |  sudo ufw allow 22

# Logs
journalctl -xe  |  journalctl -b -1  |  dmesg | tail -50

YOU ARE FREE NOW. The penguin does not answer to Redmond. Neither do you.

Discussion