A structured, practical Linux course. It starts at the command line and shell scripting, then moves on to the skills behind modern DevOps.
This repository is a complete Linux reference, built phase by phase around real terminal practice. It begins with the filesystem and core commands, then covers streams, regular expressions, and text processing. After that it moves into Bash scripting and automation, and it ends with the skills used on production systems: process and service management, networking, storage, logging, and security.
Every phase stands on its own, with written documentation and a lab folder that holds runnable practice files and exercises. The material matches what DevOps and cloud engineering work asks for, because Linux skill is the base that containers, CI/CD, and infrastructure as code are built on.
Some labs, such as permissions, users, storage, and security hardening, change system settings. A wrong command can lock you out or damage files.
- Run these labs in a VM, a container, or a fresh WSL2 install, never on your main machine.
- Read each script before you run it.
- Take a snapshot of your VM before the storage and security phases.
| Tool | Check | Used for |
|---|---|---|
| WSL2 + Ubuntu (or any Linux VM or Docker) | lsb_release -a |
Lab environment |
| Bash 5 or newer | bash --version |
Running scripts |
| GNU coreutils, grep, sed, gawk | gawk --version |
Text processing phases |
| ShellCheck | shellcheck --version |
Checking scripts for mistakes |
| Git | git --version |
Cloning the repo |
Get the repo:
git clone https://github.com/akshayredekar07/linux.git
cd linuxWindows users: open PowerShell as Administrator and run wsl --install -d Ubuntu, then restart your computer and open the Ubuntu app.
Install the tools on Ubuntu:
sudo apt update
sudo apt install -y git gawk shellcheck| Phase | Folder | Focus |
|---|---|---|
| 1 | 01__fundamentals/ |
Components, hierarchy, file types |
| 2 | 02__navigation/ |
Paths, ls, directories |
| 3 | 03__file-operations/ |
Create, copy, move, symlinks |
| 4 | 04__viewing-comparing/ |
cat, less, diff |
| 5 | 05__text-processing/ |
wc, sort, paste, tr |
| 6 | 06__streams-pipes/ |
Redirection, pipes, tee, xargs |
| 7 | 07__find-locate/ |
locate, find |
| 8 | 08__regex-grep/ |
Regular expressions, grep |
| 9 | 09__permissions/ |
Permissions, umask, sudo |
| 10 | 10__editors/ |
vi and vim |
| 11 | 11__shell-basics/ |
Scripts, variables, arguments, .bashrc, aliases, PATH, environment variables, dotfiles |
| 12 | 12__control-flow/ |
Tests, case, loops |
| 13 | 13__arrays-functions/ |
Arrays, functions |
| 14 | 14__sed-awk/ |
sed, awk, jq for JSON, YAML basics |
| 15 | 15__advanced-scripting/ |
trap, getopts, strict mode |
| 16 | 16__users-groups/ |
Users and groups |
| 17 | 17__processes-services/ |
Processes, job control (bg, fg, nohup), signals, boot process, systemd, cron |
| 18 | 18__networking-ssh/ |
Networking, SSH, curl, firewalls (ufw, nftables), time sync |
| 19 | 19__storage-packages/ |
Disks, filesystems, mounting, LVM, packages, archives, backups with rsync and tar |
| 20 | 20__logging-monitoring/ |
Logs, performance tools |
| 21 | 21__security-hardening/ |
SSH hardening, firewall rules, SELinux |
| 22 | 22__devops-toolchain/ |
Containers, cloud, Git, Ansible, make and Makefiles |
| 23 | 23__projects/ |
Full shell projects |
| 24 | 24__resources/ |
Cheat sheets, references |
Phase 22: DevOps toolchain
- Containers with Docker: images, containers, volumes, networks
- Cloud basics: virtual machines, SSH access, simple deployments
- Git for daily work: branches, merges, tags
- Ansible: inventories, playbooks, simple roles
makeand Makefiles for repeatable tasks
Phase 23: Projects
- Backup script with
rsyncand rotation - Log analyzer that counts errors and builds a report
- System health checker for CPU, memory, and disk
- User onboarding script that creates users and sets permissions
- Service watcher that restarts a failed service and sends an alert
awesome-linux/
├── README.md
├── LICENSE
├── .gitignore
├── .github/workflows/shellcheck.yml
├── scaffold.sh
├── 01__fundamentals/ ... 24__resources/
│ ├── README.md # phase overview
│ ├── documentation/ # written lessons
│ └── lab/ # runnable scripts, sample data, and exercises
│ ├── scripts/ # practice scripts
│ ├── data/ # sample files used by the scripts
│ └── exercises.md # practice questions with answers
└── assets/
├── images/
└── diagrams/
Fixes and new examples are welcome.
- Fork the repo and create a branch.
- Keep each phase in the same layout:
documentation/andlab/. - Run
shellcheckon every script before you open a pull request. - Open a pull request with a short note on what you changed.
This project uses the license in the LICENSE file.
Built by @akshayredekar07 with ❤️