Linux Tutorial with Examples.
Linux tutorial for developers: shell commands, the file system, permissions, processes, networking and everyday sysadmin tasks.
Beginner
Start here — no prior experience needed
The Linux Filesystem Hierarchy, and Why /bin Is a Symlink
ls -la / shows /bin, /lib, and /sbin as symlinks into /usr — not historical clutter, but the real result of a filesystem-layout change most distros made years ago.
apt vs dpkg: A Real Broken Dependency, and How apt Actually Fixes It
dpkg -i installs a .deb but refuses to configure it when dependencies are missing — leaving a package that half-works. The real fix isn't reinstalling it; it's letting apt resolve what dpkg couldn't.
Intermediate
For developers with core concepts down
Permission Bits, Ownership, and Why passwd Needs setuid
A real permission-denied error from a locked-down file, then stripping the setuid bit from /usr/bin/passwd to see exactly why an ordinary user can't change their own password without it.
A Zombie Process That Never Gets Reaped — and the PID 1 That Fixes It
A child exits, its parent never calls wait(), and the zombie sits forever under a naive PID 1 — orphaned to PID 1 doesn't help unless that PID 1 actually reaps. Docker's --init does; a bare sleep infinity doesn't.
systemd Service Supervision: Restart Limits and Why They Trip
A service configured to restart on failure crash-loops until systemd's own StartLimitBurst safety valve trips and refuses to restart it again — a real failure that DigitalOcean's syntax-focused systemd guides don't walk through.
Linux Networking: Routes, Interfaces, and Bind Addresses
Two real networking failures at the OS layer: a deleted default route that leaves the local subnet reachable but the internet not, and a socket bound to 127.0.0.1 that refuses every connection from outside the container.
Inodes: The Filesystem Is Full, but df -h Says 1% Used
A real No space left on device error on a filesystem with 11MB free, caused by exhausting inodes rather than disk blocks — plus what hard links and symlinks reveal about what an inode actually is.
Also part of Linux
Taught in other topics. Each link opens the lesson in its home topic.
Bash Text Processing
Process text in Bash pipelines with grep, sed, awk, cut, sort, uniq, tr, wc and column, using real log and CSV examples and their real output.
Bash Process Management
Run background jobs, manage processes with jobs/fg/bg, send signals with kill, use trap for cleanup, and understand subshells.
Bash System Information
Inspect a Linux system from Bash with uname, df, du, free, ps, pgrep, ss, lsof and systemctl, and parse their output reliably in scripts.
Cron and Scheduling in Bash
Crontab syntax, cron expressions, at for one-time jobs, systemd timers and logging cron output, with real cron and systemd runs.
Bash File Operations
Bash file operations: file tests, reading files safely, cp, mv, safe rm, find, stat, symlinks and atomic writes, each shown with its real output.
Reading Linux SSH Auth Logs: Failed Logins You Generate Yourself
Produce real failed and successful SSH logins against your own container, read them in auth.log, and parse them in Python without missing invalid users.
Host Firewalls with nftables: DROP Times Out, REJECT Refuses
Firewall a container's own port with nftables: a drop rule makes clients time out, reject makes them refused, and a source allow-list lets one host in.