This repository documents my complete journey learning Linux and Unix system administration for my Spring 2025 semester.
Instead of just following theory, I’m focusing on understanding, breaking, fixing, and mastering each concept through the terminal (WSL + Ubuntu).
- Build strong Linux fundamentals (not just memorize commands)
- Get comfortable with Bash scripting & automation
- Understand users, permissions, processes, and scheduling
- Learn package management, system administration, and networking
- Create a mini project to apply everything hands-on
| Week | Focus | Key Hands-on Tasks |
|---|---|---|
| 1 | Installation & Overview | Install Ubuntu/WSL, explore file system (ls, pwd, cd), learn man pages |
| 2 | Basic Commands | Practice file operations (cp, mv, rm, cat, touch, mkdir), use redirection and pipes |
| 3 | More Commands | Learn grep, find, wc, sort, head, tail, and use pipelines efficiently |
| 4 | Users, Groups, Privileges | Create users/groups, switch users, manage sudoers, experiment with chown, chmod |
| 5 | Intro to Bash & Scripting | Write first scripts (#!/bin/bash), use variables, loops, conditions, arguments |
| 6 | Structures & Programs | Automate file operations, create scripts using case, for, and while, and functions |
| 7 | Admin Tasks | Learn system logs (journalctl, /var/log), scheduling with cron, monitoring with top, htop |
| 8 | Mid-term Exam | Revise everything using practical command challenges |
| 9 | Permissions & Shared Dirs | Deep dive umask, sticky bits, and collaborative directories |
| 10 | Processes & SJF Algorithm | Simulate SJF in Bash, learn ps, kill, nice, and renice |
| 11 | FCFS Algorithm | Implement FCFS scheduling in Bash or C, compare with SJF |
| 12 | Process Management & Scheduling | Learn bg, fg, jobs, top, at, and scheduling strategies |
| 13 | Packages in UNIX / CentOS | Master apt, yum, dnf, snap; install, remove, and update packages |
| 14 | Networking in CentOS | Learn IP config (ip, ifconfig), ping, netstat, scp, and SSH setup |
| 15 | Project Task I | Build a system script (like backup automation or user audit tool) using everything learned |
I don’t memorize commands — I break things until I understand them.
Every command in this repo has been executed, tested, and sometimes failed (on purpose).
- WSL (Ubuntu 22.04)
- Visual Studio Code
- Git & GitHub for version control
- Optional: VirtualBox + CentOS for system-level testing
- 🎥 Kunal Khushwaha’s Linux Series
- 🎥 TrainWithShubham
- 🎥 Sanjeev Thiyagarajan
- 🎥 KeepItTechie
- 🧠
manpages andtldrfor command help - 🐍 Practice scripting through simple automation tasks
Muhammad Izhan Waheed
GitHub