Linux Tutorial
Learn Linux from scratch: filesystem, navigation, permissions, users, processes, systemd, networking and Bash scripting, with hands-on examples and quizzes.
19 lessons in this tutorial
Introduction to Linux
What Linux actually is. Kernel versus distribution versus shell, which distro to learn for DevOps, and why servers and containers run Linux.
Linux Filesystem
The Linux directory tree explained. What /etc, /var and /usr are each for, /tmp versus /var/tmp, virtual /proc and /sys, and where disks fill up.
Linux Navigation
Move around Linux with confidence. Absolute vs relative paths, reading ls -l, which vs type, man pages, and fixing command not found.
Linux File Operations
Copy, move, delete and read files safely. Why rm has no undo, cp -r versus cp -a, the trailing-slash trap, find by name and size, and cat versus less versus tail.
Linux Text Processing
grep, sed, awk, sort and uniq for real work, which tool fits which question, the in-place edit portability trap, and why piped errors vanish.
Linux Permissions
Read, write and execute across user, group and other. Octal modes, why directory permissions differ, chmod vs chown, setuid and the sticky bit, and umask defaults.
Linux Users and Groups
Manage Linux accounts safely. Useradd vs adduser, why usermod -aG needs a new login, the destructive -G mistake, sudo vs su, and the passwd/shadow/group files.
Linux Process Management
Find, watch and stop processes, ps and top, SIGTERM before SIGKILL, zombie states, load average, and which port a process owns.
Linux systemd Basics
Manage services with systemd. Start vs enable, daemon-reload after every edit, writing a unit file, what Type= controls, and journalctl.
Linux Networking
Diagnose Linux networking with the current tools, ip and ss instead of ifconfig and netstat, why ping proves little, DNS debugging with dig, and rsync over scp.
Linux Disk and Storage
Find and fix disk problems, df vs du and why they disagree, deleted-but-open files, inode exhaustion, persistent mounts via UUID, and tar versus zip.
Linux Bash Scripting
Write bash scripts that fail loudly instead of silently. Set -euo pipefail, quoting, [[ ]] over [ ], trap for cleanup, and shellcheck.
Linux Package Management
Install software across distributions, apt vs apt-get, remove vs purge, fixing dpkg lock errors, dnf and rpm, and when snap is worth it.
Linux Environment Variables
Shell versus exported variables, .bashrc versus .bash_profile, extending PATH without breaking it, and why sudo drops your environment.
Linux Cron Jobs
Schedule jobs with cron. The five fields, why a job that works manually fails in cron, capturing output and errors, and cron vs systemd timers.
Linux SSH Keys
SSH keys done properly. Ed25519 over RSA, the permission errors that block a valid key, ssh-agent, ~/.ssh/config, and ProxyJump over agent forwarding.
Linux Firewall Basics
Configure a Linux firewall without locking yourself out. Ufw, firewalld and iptables compared, allowing SSH first, zones and persistence.
Linux Log Management
Find what went wrong in Linux logs, /var/log versus the systemd journal, tail -F over -f, logrotate and journald size caps, priority levels, and fast error triage.
Linux Performance Monitoring and Troubleshooting
A method for Linux performance triage. CPU, memory and I/O in order, what load average really counts, why free memory looks low, and reading iowait correctly.