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.
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.
| Layer | Usually portable | Usually distro-specific |
|---|---|---|
| Core concepts | filesystem, permissions, shell usage, logs, services | package-manager syntax, repo setup |
| Desktop workflow | app behavior, browser setup, office workflow | exact Settings labels, appearance tools |
| Recovery approach | read logs, isolate cause, roll back safely | bootloader commands, driver packaging |
Package Manager Translation
When a section uses Ubuntu-based commands, translate the package manager, not the whole idea:
| Ubuntu-based | Fedora | Arch-based | openSUSE |
|---|---|---|---|
apt | dnf | pacman | zypper |
.deb packages | RPM packages | repo/AUR/community packages | RPM packages |
| PPAs / Ubuntu repos | Fedora repos / COPR | official repos / AUR | openSUSE 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
| Windows | Linux Alternative | Install |
|---|---|---|
| Microsoft Office | LibreOffice | Pre-installed / sudo apt install libreoffice |
| Microsoft Office (compat) | OnlyOffice | flatpak install flathub org.onlyoffice.desktopeditors |
| Notepad++ | Kate | sudo apt install kate |
| Photoshop | GIMP + Inkscape | sudo apt install gimp inkscape |
| Lightroom | Darktable | sudo apt install darktable |
| Premiere Pro | DaVinci Resolve | Free official download at blackmagicdesign.com |
| Audacity | Audacity (same!) | sudo apt install audacity |
| VLC | VLC (same!) | sudo apt install vlc |
| Spotify | Spotify | flatpak install flathub com.spotify.Client |
| Discord | Discord | flatpak install flathub com.discordapp.Discord |
| WhatsApp Web PWA | Open in Chrome → Menu → Install as app | |
| Slack | Slack | flatpak install flathub com.slack.Slack |
| Zoom | Zoom | flatpak install flathub us.zoom.Zoom |
| WinRAR | Built-in Ark | Right-click → Extract |
| 7-Zip | p7zip | sudo apt install p7zip-full |
| Windows Games | Steam + Proton | sudo apt install steam (enable Proton in settings) |
| VS Code | VS Code (same!) | flatpak install flathub com.visualstudio.code |
| Windows Terminal | GNOME Terminal / Kitty | Pre-installed |
| KeePass | KeePassXC | sudo apt install keepassxc |
| Bitwarden | Bitwarden (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.
Navigation
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. PressTabtwice 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
| Command | What it does |
|---|---|
neofetch | Beautiful system overview with distro art |
uname -a | Kernel and architecture info |
lscpu | Detailed CPU information |
free -h | RAM usage (human readable) |
lspci | grep VGA | Identify your GPU |
lsblk | List disks and partitions |
df -h | Disk space on all filesystems |
uptime | How long system has been running |
inxi -Fxz | Full 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
| Command | What it does | Example |
|---|---|---|
ip a | Show network interfaces and IPs | ip a | grep inet |
ping | Test if host is reachable | ping -c 4 google.com |
curl | Fetch content from URL | curl https://api.ipify.org |
wget | Download a file | wget https://site.com/file.zip |
ss -tulnp | Show open ports and listening services | ss -tulnp |
nmap | Scan ports on a host | nmap 192.168.1.1 |
traceroute | Trace network path | traceroute google.com |
dig | DNS lookup | dig google.com |
ssh user@host | Connect to remote server | ssh mohsin@192.168.1.10 |
scp file user@host:/path | Copy 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 & Search
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:
- The distro’s primary package manager
- The vendor’s official package or official repository
- Flatpak for desktop apps when packaging is better there
- Snap when it is the cleanest maintained option for that app
- AppImage or manual installs only when the above are weak or unavailable
That order keeps maintenance, updates, rollback, and troubleshooting much simpler.
| Manager | Best for | Source |
|---|---|---|
| APT | System packages, CLI tools, native apps | Ubuntu/Debian repos |
| Flatpak | Desktop GUI apps, sandboxed | Flathub |
| Snap | Some apps only on Snap | Snap Store |
| AppImage | Portable apps, no install needed | Direct download |
Decision tree:
- Try
aptfirst — usually the most integrated option on an Ubuntu-based system - Not in apt? Use
flatpak install flathub [app-id] - Want the absolute latest version? Check Flatpak
- 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:
- Create Timeshift snapshot
sudo apt update && sudo apt upgrade -y(Snapshot again if you want)- Enable Flatpak
- Check and install GPU drivers
- 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,findgrepand pipesapt 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.
chmodand file permissionshtopand process managementsystemctland 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:
- Official documentation for the app, distro, or vendor
- Distro-family Q&A sites such as AskUbuntu for Ubuntu-based systems
- Arch Wiki for concepts and broad Linux mechanics
- 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