Core Systems
Linux & Bash
The foundational operating system of internet infrastructure, cloud servers, and containers.
Linux powers over 90% of the public cloud. Mastering POSIX fundamentals, process scheduling, Unix permissions, file descriptors, pipes, and text filtering tools like grep, awk, and sed is essential for diagnosing production incidents and managing infrastructure.
Virtual Lab Ready
Automated testing sandbox running in your browser.
Launch First Lab ⚡No local installation required
Hands-on Practice
Interactive Terminal Labs
Real environment tasks with automated validation. Write real commands, verify state, and debug errors.
Create a Project Structure
Topic: Introduction
Create a project directory containing a src folder, a tests folder and a README.md. Follow the walkthrough below — every command is explained, and the validator checks what you actually built.
Key Checks:
- Directory ~/project exists
- Directory ~/project/src exists
Find the Largest Log
Topic: Introduction
Something is writing huge log files to /var/log/app. Inspect the filesystem, find the largest .log file in that directory and record it in ~/report/largest.txt. The walkthrough shows every command.
Key Checks:
- Directory ~/report exists
- File ~/report/largest.txt exists and names the largest log file
Lock Down a Secret File
Topic: Filesystems & Permissions
Create a secrets file with restrictive permissions. Only the owner should be able to read and write it — nobody else. This is exactly how SSH private keys work.
Key Checks:
- Directory ~/secure exists
- File ~/secure/secret.txt exists
Count Errors in a Log
Topic: Text Processing & Pipes
The application log at /var/log/app/app-2026-09-27.log is full of noise. Use grep and pipes to count the ERROR lines and save the result.
Key Checks:
- Directory ~/report exists
- File ~/report/error-count.txt exists and contains the number of ERROR lines
Identify a Running Process
Topic: Processes
An application called 'app' is running on this machine. Find its PID with ps, confirm it from the command line arguments, and record it.
Key Checks:
- Directory ~/report exists
- File ~/report/app-pid.txt exists and contains the PID of the app process
Write a Backup Script
Topic: Shell Scripting Basics
A backup you have to remember to run is a backup you do not have. Write a script that archives the project directory and can only be run by its owner.
Key Checks:
- Directory ~/scripts exists
- File ~/scripts/backup.sh exists and starts with a shebang
Write a Health Check Script
Topic: Shell Scripting Basics
Monitoring is a script that reports a number instead of a feeling. Write a health check that reads the application log and prints a verdict a monitoring agent can scrape.
Key Checks:
- Directory ~/scripts exists
- File ~/scripts/healthcheck.sh exists
System Design
Linux Kernel & Userspace Boundary
Understand how this tool operates internally before running production workloads.
Internal Mechanics
The Linux kernel controls hardware, memory paging, and process scheduling. Applications in userspace communicate with the kernel through system calls (syscalls like open, read, fork, clone, epoll).
Mental Model Rule of Thumb
Never treat Linux & Bash as a black box. Understanding its boundary with the kernel, filesystem, and network stack prevents 90% of production outages.
Core Architectural Subsystems
VFS (Virtual File System)
Abstracts ext4, xfs, overlayfs, procfs, and sysfs under a unified hierarchical tree.
Systemd / Init
PID 1 process manager supervising system services, cgroups, and journal logs.
Standard Streams
FD 0 (stdin), FD 1 (stdout), FD 2 (stderr) piped between composable Unix utilities.
Process Scheduler
Completely Fair Scheduler (CFS) allocating CPU time slices to runnable threads.
Developer Reference
Command Reference & Cheatsheet
Curated commands, flags, and one-liners tested for everyday operational productivity.
ps aux | grep -v grep | sort -nrk 3,3 | head -n 10List top 10 CPU-consuming processes on the server
chmod 755 script.sh && chown user:group script.shSet read/execute permissions and assign ownership
grep -rn 'ERROR' /var/log/ | awk '{print $1, $4}' | uniq -cFilter error logs and calculate incident frequency
find / -type f -size +100M -exec ls -lh {} \;Locate large files over 100MB consuming disk space
tar -czvf backup.tar.gz /path/to/dataCreate a gzip-compressed archive from a target folder
journalctl -u nginx.service -f -n 50Stream systemd service logs with 50 lines back-history
Fundamental Primitives
Key Terminology & Primitives
Core abstractions you must master to communicate and build with confidence.
Permissions (rwx / octal)
File modes split into User, Group, and Other (e.g. 755 = rwxr-xr-x; 644 = rw-r--r--).
Unix Philosophy
Write programs that do one thing well and compose them together via text streams and pipelines.
Signals (SIGTERM / SIGKILL)
Inter-process communications; SIGTERM (15) requests graceful shutdown, SIGKILL (9) halts process immediately.
Procfs (/proc)
Virtual filesystem providing a window into live kernel data structures, PID metrics, and networking.
Production War-Stories
Common Pitfalls & Debugging Playbook
The exact errors that take down production systems and how to diagnose and resolve them.
Permission Denied on executable
Symptom
bash: ./script.sh: Permission denied even though user owns the file.
Resolution
The executable bit is missing. Run 'chmod +x script.sh'.
Zombie processes piling up (defunct)
Symptom
ps aux shows status Z. Resources aren't freed.
Resolution
The parent process failed to reap child exit codes with waitpid(). Restart or terminate the parent process.
Reliability Standards
Production Readiness Checklist
Review this checklist before deploying workloads to staging or production clusters.
- ✓Disable root SSH password login; require SSH key authentication.
- ✓Configure logrotate to prevent system logs from exhausting disk inodes.
- ✓Monitor system load averages relative to physical/virtual CPU core counts.
- ✓Set proper ulimits for file descriptors on high-throughput database/proxy nodes.
- ✓Audit sudoers configuration to enforce principle of least privilege.
Full Curriculum Track
Master Linux & Bash as part of the DevOps Engineer path
Tools do not exist in isolation. Learn how Linux & Bash connects with other systems, CI/CD pipelines, and infrastructure patterns.