Skip to content

Repository files navigation

🐧 Linux for DevOps

The hands-on course that takes you from whoami to deploying a production server.

The companion repository for the Linux for DevOps course on YouTube by @devopsbymuh.

YouTube Made with Bash Platform: Linux Level: Beginner → Production Lessons License: MIT


Watch the videos to learn, then use this repo as your reference: concept notes, command tables, diagrams, cheat sheets, and copy-paste-ready scripts for every lesson.

📺 Full playlist: link coming soon

📚 Table of contents

🎯 Who this is for

  • Developers whose code works on their laptop but breaks the moment it lands on a server.
  • Aspiring DevOps / SRE / Cloud engineers who need Linux as a foundation.
  • Anyone who wants to truly understand the server they are working on.

No prior Linux experience required — we start from the very first ssh and build up.

🐧 Why Linux?

Because in DevOps, everything you touch is a Linux box:

flowchart LR
  VM[Cloud VMs<br/>AWS · Azure · GCP] --> L((Linux))
  CT[Every Docker<br/>container] --> L
  CI[Every CI/CD<br/>runner] --> L
  K8[Every Kubernetes<br/>node] --> L
  L --> YOU[You, over SSH<br/>with a terminal]
Loading

More than 9 out of 10 cloud servers run Linux. It won because it is free (no license fee per server), scriptable (everything can be automated from the command line), stable (servers run for years without a restart), and the same everywhere (the commands you learn here work on any cloud).

Docker, Kubernetes, CI/CD, AWS — all of them assume you can already drive Linux. That is why this course comes first. Full story in Lesson 01.

✨ What you'll learn

  • Navigate and manage a Linux system from the command line with confidence
  • Handle users, groups, permissions, processes, services, and logs
  • Configure networking and troubleshoot connectivity like a sysadmin
  • Write real Bash scripts to automate the boring, repetitive work
  • Deploy, secure, and monitor a production Linux server end-to-end

🗺️ Course content

5 modules · 18 lessons, beginner → production-ready. Each lesson has its own folder with a README.md (concepts + commands + cheat sheet) and, where useful, runnable scripts/.

1 · Linux Basics · 01-linux-basics

# Lesson
01 Why Every DevOps Engineer Needs Linux
02 Linux File System & Navigation
03 Working with Files
04 Text Processing

2 · Linux Administration · 02-linux-administration

# Lesson
05 Users & Groups
06 Linux Permissions
07 Process Management
08 Services & Logs
09 Package Management

3 · Networking · 03-networking

# Lesson
10 Linux Networking
11 Network Troubleshooting
12 SSH & Remote Servers

4 · Bash Scripting · 04-bash-scripting

# Lesson
13 Bash Basics
14 Advanced Bash
15 Automation Scripts

5 · Linux for DevOps · 05-linux-for-devops

# Lesson
16 Linux in Real DevOps
17 Production Linux Tasks
18 🏁 Capstone: Deploy a Production Linux Server

The final lesson is a capstone: deploy a secured, monitored, application-serving Linux server from scratch.

🗺️ Module maps

Each module comes with a one-page visual — lesson cards plus the key concepts drawn out. Browse them all in diagrams/, or preview Module 1 below:

Module 1 — Linux Basics

Maps are editable Excalidraw files — open any .excalidraw in the browser or the VS Code Excalidraw extension to remix or export your own.

🔤 What every command name means

Linux commands look cryptic, but almost all of them are short forms of English words. Read the full words once and the commands become easy to remember — usermod is not magic, it is just "user modify". The whole course dictionary:

📖 Open the full dictionary (50+ names)
Command / word Stands for
pwd print working directory
ls list
cd change directory
mkdir make directory
cp / mv / rm copy / move / remove
cat concatenate — joins files; also prints one
less a joke on the older pager more — "less is more"
grep global regular expression print
wc word count
uniq unique
sed stream editor
awk its creators' initials: Aho, Weinberger, Kernighan
vim Vi improved
uname Unix name
whoami literally "who am I"
sudo superuser do
useradd / usermod user add / user modify
passwd password
id identity
chmod change mode (the permission set)
chown / chgrp change owner / group
rwx read · write · execute
SUID / SGID Set User / Group ID
ps process status
top / htop table of processes / Hisham's top
PID process ID
bg / fg background / foreground
SIGTERM / SIGKILL signal terminate / signal kill
daemon a program that runs in the background
systemd / systemctl system daemon / system control
journalctl journal control — systemd's log book
apt Advanced Package Tool
dpkg / rpm Debian package / Red Hat Package Manager
yum / dnf Yellowdog Updater, Modified / Dandified YUM
IP / DNS Internet Protocol / Domain Name System
ping named after the submarine sonar "ping" sound
curl / wget client for URLs / web get
ss / netstat socket statistics / network statistics
dig / nslookup domain information groper / name server lookup
nc netcat — like cat, but over the network
ssh Secure Shell
scp / sftp secure copy / SSH File Transfer Protocol
bash Bourne Again SHell — a pun on the original shell by Steve Bourne
shebang #! "sharp" (#) + "bang" (!)
cron / crontab Greek chronos = time / cron table
df / du disk free / disk usage
tar tape archive — from the days of tape backups
gzip GNU zip
wsl Windows Subsystem for Linux
/etc /var /usr /tmp /bin et cetera (config) · variable data · Unix system resources · temporary · binaries

Every lesson repeats the names it uses — both in the command comments and in its own small "What the names mean" table.

🚀 Getting started

# 1. Clone the repo
git clone https://github.com/codewithmuh/linux-course.git
cd linux-course

# 2. Open the lesson for the video you're watching
cd 01-linux-basics/01-why-devops-needs-linux

# 3. Read the lesson and run the scripts
cat README.md
bash scripts/server-info.sh

No Linux machine yet? Start with a free local install — no cloud account needed:

  • Windows → open PowerShell as Administrator, run wsl --install -d Ubuntu, restart — this one command installs WSL and Ubuntu together
  • macOSbrew install --cask multipass, then multipass launch --name devops and multipass shell devops — a real Ubuntu VM in three commands
  • Linux desktop → open your terminal, you are ready

Optional, for later: a free-tier cloud VM (AWS EC2, DigitalOcean, etc.) gives you a public server on the internet. Nice to have — but every lesson in this course, including the capstone, also works on the free local VM.

⚠️ The macOS Terminal looks similar, but macOS is not Linux — commands like apt and systemctl do not exist there. For this course, work inside Ubuntu: WSL, Multipass, or a cloud VM.

🕹️ Practice online — no install

Don't want to touch your own computer yet? Practice Linux in the browser:

Option What you get
GitHub Codespaces — on this repo, click Code → Codespaces → Create codespace A real Ubuntu terminal in the browser, with all course files already in it. Free monthly hours on every GitHub account.
Killercoda Ubuntu playground A fresh Ubuntu machine for 1 hour, with root access — services and systemctl work here too.
Google Cloud Shell A free Linux shell with 5 GB of storage (needs only a Google account).
OverTheWire: Bandit A free game you play over SSH — perfect extra practice for Modules 1 and 3.

Honest limit: browser terminals are great for Modules 1–4 (commands, files, text, Bash). For the services lesson and the capstone you want a real VM — the free local install above is enough.

📖 How to use this repo

  1. Open the module → lesson folder for the video you're watching.
  2. Follow along with the commands in the lesson README.md.
  3. Grab the cheat sheet and any scripts/ you want to keep.
  4. Try the practice challenge at the end of each lesson.

✅ Prerequisites

  • Any computer with a terminal
  • A Linux environment (WSL, a VM, or a cloud server — see Getting started)
  • No prior Linux, sysadmin, or DevOps experience needed

🧭 Roadmap

Linux is the first tool in a larger DevOps journey. Coming next on the channel:

Git & GitHub → Docker → Docker Compose → GitHub Actions → AWS → Kubernetes and beyond.

🤝 Contributing

Spotted a typo or a better example? Issues and PRs are welcome. 🙌

If this course helped you, consider starring ⭐ the repo and subscribing on YouTube — it genuinely helps.


Built with 🐧 by @devopsbymuh

About

Linux & Bash for DevOps Engineers – Beginner to Production. Hands-on tutorials, Bash scripts, cheat sheets, and real-world Linux projects.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages