free course · YouTube + GitHub
Linux for DevOps
From whoami to deploying a production server. Every DevOps tool — Docker, Kubernetes, CI/CD — runs on Linux. This course teaches you to drive it.
- modules
- 5
- modules
- lessons
- 18
- lessons
- capstone project
- 1
- capstone project
- to start
- $0
- to start
# why linux first
In DevOps, everything you touch is a Linux box.
More than 9 out of 10 cloud servers run Linux. Docker, Kubernetes, CI/CD, AWS — all of them assume you can already drive it. That is why Linux comes first on the DevOps roadmap.
Free
No license fee, on any number of servers.
Scriptable
Everything can be automated from the command line.
Stable
Servers run for years without a restart.
Same everywhere
One skill works on every cloud.
every arrow ends at a terminal — yours
# module 1 / 5
Linux Basics
Get comfortable at the command line — install Linux, move around, read files, and process text.
4 lessons — one slide each, keep scrolling
- 01Why Every DevOps Engineer Needs LinuxWhat Linux is, why more than 9 out of 10 cloud servers run it, and how to get your own — free, on the computer you already have.
- 02Linux File System & NavigationLearn the map of a Linux system — what /etc, /var, and /home are for — and move around it without a mouse.
- 03Working with FilesRead, edit, and search files — then chain small commands into powerful ones with pipes and redirection.
- 04Text ProcessingTurn messy command output into clean answers. This is the skill that makes log analysis look like magic.
After this module: You can navigate a server, manage files, and shape text output — the everyday work of ops.
$ ▊
grepglobal regular expression print
# module 1 · lesson 01 / 18
Why Every DevOps Engineer Needs Linux
What Linux is, why more than 9 out of 10 cloud servers run it, and how to get your own — free, on the computer you already have.
# in this lesson — every command, in real words
wsl --install -d Ubuntuone command installs Ubuntu inside Windowsmultipass launch --name devopscreates a free Ubuntu VM on your Macssh muh@serverlog in to a remote server as user muhwhoamiprints which user you are right nowuname -aprints the system name and kernel version
# module 1 · lesson 02 / 18
Linux File System & Navigation
Learn the map of a Linux system — what /etc, /var, and /home are for — and move around it without a mouse.
# in this lesson — every command, in real words
pwdprint working directory — “where am I?”ls -lalist all files, including hidden ones, with detailscd /var/logchange directory — go where the logs livemkdir -p app/configmake a folder, and its parents if missingcp · mv · rmcopy, move (or rename), and remove filesfind / -name '*.log'search the whole disk for .log files
# module 1 · lesson 03 / 18
Working with Files
Read, edit, and search files — then chain small commands into powerful ones with pipes and redirection.
# in this lesson — every command, in real words
cat · lessprint a whole file / read it page by pagetail -f syslogwatch a log live as new lines arrivenano · vimedit files right in the terminalgrep error app.logprint only the lines that contain “error”cmd1 | cmd2pipe — feed one command’s output into the next> · >>redirect — write or append output to a file
# module 1 · lesson 04 / 18
Text Processing
Turn messy command output into clean answers. This is the skill that makes log analysis look like magic.
# in this lesson — every command, in real words
sortsort lines alphabetically or by numberuniq -ccollapse repeated lines and count themcut -d: -f1keep only column 1, split at every “:”wc -lcount lines — “how many errors today?”awk '{print $1}'print the first word of every linesed 's/old/new/'replace “old” with “new” in a stream
# module 2 / 5
Linux Administration
Manage a real system — users, permissions, processes, services, logs, and packages.
5 lessons — one slide each, keep scrolling
- 05Users & GroupsEvery file and every process belongs to someone. Create users, organize them into groups, and use sudo the right way.
- 06Linux PermissionsWho may read, write, or run a file — the rwx system explained until numbers like 755 feel obvious.
- 07Process ManagementSee everything the machine is running, find what eats the CPU, and stop a program safely — or by force when needed.
- 08Services & LogsKeep programs running after every reboot, and read their story in the logs when something breaks.
- 09Package ManagementInstall, update, and remove software cleanly — on Ubuntu, Debian, and Red Hat family systems.
After this module: You can administer a running server — control who can do what, keep services alive, and read the logs.
$ chmod 755 deploy.sh
I do everything, others read + run
nginx.serviceactive (running)
$ journalctl -u nginx --since today
sudosuperuser do
# module 2 · lesson 05 / 18
Users & Groups
Every file and every process belongs to someone. Create users, organize them into groups, and use sudo the right way.
# in this lesson — every command, in real words
sudo <command>run one command with superuser poweruseradd -m dev1create user dev1, with a home directorypasswd dev1set or change dev1’s passwordgroups dev1show which groups dev1 belongs toidshow your user ID and all your group IDs
# module 2 · lesson 06 / 18
Linux Permissions
Who may read, write, or run a file — the rwx system explained until numbers like 755 feel obvious.
# in this lesson — every command, in real words
chmod 755 deploy.sh755 = rwx r-x r-x → I do all, others read + runchown muh app/make muh the owner of the app folderchgrp webadmins /var/www/var/www now belongs to the webadmins groupchmod 600 secret.key600 = rw- --- --- → private, only the ownerSUID · SGID · sticky bitspecial bits for shared folders and programs
# module 2 · lesson 07 / 18
Process Management
See everything the machine is running, find what eats the CPU, and stop a program safely — or by force when needed.
# in this lesson — every command, in real words
ps auxlist every process running right nowtop · htoplive view of CPU and memory, per processkill -15 <PID>ask a process to stop nicely (SIGTERM)kill -9 <PID>force it to stop immediately (SIGKILL)jobs · bg · fgpark tasks in the background, bring them back
# module 2 · lesson 08 / 18
Services & Logs
Keep programs running after every reboot, and read their story in the logs when something breaks.
# in this lesson — every command, in real words
systemctl status nginxis the nginx service running or dead?systemctl restart nginxrestart the service after a config changesystemctl enable nginxstart nginx automatically at every bootjournalctl -u nginxread nginx’s logs from the system journal/var/log/…the folder where classic log files live
# module 2 · lesson 09 / 18
Package Management
Install, update, and remove software cleanly — on Ubuntu, Debian, and Red Hat family systems.
# in this lesson — every command, in real words
apt updaterefresh the list of available packagesapt upgradeupdate everything that is installedapt install nginxinstall the nginx packagedpkg -llist every package on the systemyum · dnfthe same jobs on Red Hat family systems
# module 3 / 5
Networking
Understand how traffic reaches a server — and fix it when it does not.
3 lessons — one slide each, keep scrolling
- 10Linux NetworkingIP addresses, DNS names, and the commands that show how your server talks to the rest of the internet.
- 11Network TroubleshootingA calm, step-by-step method for “why can’t I connect?” — from the DNS name all the way to the port.
- 12SSH & Remote ServersThe tool you will use every single working day — log in with keys instead of passwords, and copy files safely.
After this module: You can debug “why can’t I connect?” step by step, like a sysadmin.
name → IP → port — every connection makes this trip
sshSecure Shell
# module 3 · lesson 10 / 18
Linux Networking
IP addresses, DNS names, and the commands that show how your server talks to the rest of the internet.
# in this lesson — every command, in real words
ip ashow this machine’s network interfaces and IPsping 8.8.8.8“can I reach the internet at all?”curl -I https://site.comfetch a page — show only the response headerswget <url>download a file from the internethostname -Iprint this machine’s IP address
# module 3 · lesson 11 / 18
Network Troubleshooting
A calm, step-by-step method for “why can’t I connect?” — from the DNS name all the way to the port.
# in this lesson — every command, in real words
ss -tulpnwhich ports are open, and which process owns themdig devopsbymuh.comask DNS: which IP is behind this name?traceroute <host>show every network hop on the way to the servernc -zv host 22test one thing: is port 22 open over there?
# module 3 · lesson 12 / 18
SSH & Remote Servers
The tool you will use every single working day — log in with keys instead of passwords, and copy files safely.
# in this lesson — every command, in real words
ssh muh@serveropen a secure shell on the remote serverssh-keygen -t ed25519create a key pair — much safer than passwordsssh-copy-id muh@serverput your public key on the serverscp app.tar server:copy a file to the server, encryptedsftp muh@serverbrowse and transfer files over SSH
# module 4 / 5
Bash Scripting
Turn manual command-line work into automation — from variables and loops to scripts you will keep.
3 lessons — one slide each, keep scrolling
- 13Bash BasicsYour first scripts — store values in variables, read input, make decisions, and repeat work with loops.
- 14Advanced BashScripts you can trust in production — functions, arguments, exit codes, and error handling that catches problems early.
- 15Automation ScriptsBuild four real tools an engineer would actually keep: backup, health check, log cleanup, and a server monitor.
After this module: You can write robust Bash scripts with error handling and automate repetitive ops tasks.
- 1#!/bin/bash
- 2for host in web1 web2 db1; do
- 3 ssh "$host" df -h /
- 4done
- 5echo "disk check done ✓"
0 2 * * * /opt/scripts/backup.sh # cron: every night at 2 AM, no human needed
bashBourne Again SHell
# module 4 · lesson 13 / 18
Bash Basics
Your first scripts — store values in variables, read input, make decisions, and repeat work with loops.
# in this lesson — every command, in real words
#!/bin/bashshebang — “run this file with bash”name="muh"store a value in a variableecho "Hello $name"print text, with the variable filled inread answerask the user and store what they typeif · then · firun commands only when a condition is truefor · whilerepeat commands in a loop
# module 4 · lesson 14 / 18
Advanced Bash
Scripts you can trust in production — functions, arguments, exit codes, and error handling that catches problems early.
# in this lesson — every command, in real words
my_func() { … }group commands into a reusable function$1 · $@ · $#the script’s arguments: first, all, how manyexit 1stop the script and report “something failed”set -euo pipefailsafety switch — stop on the first errortrap cleanup EXITalways run cleanup code when the script ends
# module 4 · lesson 15 / 18
Automation Scripts
Build four real tools an engineer would actually keep: backup, health check, log cleanup, and a server monitor.
# in this lesson — every command, in real words
backup.shcompress important data and store dated copieshealth-check.shtest the service and alert when it is downlog-cleanup.shdelete old logs before the disk fills upmonitor.shCPU, memory, and disk in one clean report
# module 5 / 5
Linux for DevOps
Apply everything to the real job — cron, environments, disks, monitoring — then build a full server.
3 lessons — one slide each, keep scrolling
- 16Linux in Real DevOpsThe daily habits of the job — schedule tasks with cron, manage environment variables, and keep an eye on the disks.
- 17Production Linux TasksA junior DevOps toolkit, built live: check CPU, RAM, and disk, restart services, analyze logs, and watch open ports.
- 18Capstone: Deploy a Production ServerThe final project — build a secured, monitored server that serves a real application. From an empty machine to production, all by yourself.
After this module: You finish with a real achievement: a secured, monitored, application-serving server you built end to end.
🖥️ prod-server-01
live
- ✓Create users & groups
- ✓Lock down SSH (keys only)
- ✓Install & configure Nginx
- ✓Deploy the sample app
- ✓Schedule automatic backups
- ✓Monitor logs & resources
lesson 18 — you build all of this yourself
cronGreek “chronos” — time
# module 5 · lesson 16 / 18
Linux in Real DevOps
The daily habits of the job — schedule tasks with cron, manage environment variables, and keep an eye on the disks.
# in this lesson — every command, in real words
crontab -eedit your scheduled tasks (cron jobs)0 2 * * * backup.shcron line: run the backup every night at 2 AMexport APP_ENV=prodset an environment variable for your appsdf -h · du -sh *disk free / which folder is eating the spacetar -czf logs.tar.gz logs/pack and compress a folder into one file
# module 5 · lesson 17 / 18
Production Linux Tasks
A junior DevOps toolkit, built live: check CPU, RAM, and disk, restart services, analyze logs, and watch open ports.
# in this lesson — every command, in real words
uptime · free -h · df -hthe first look on any slow serversystemctl restart apprestart the service after a changegrep -c ' 500 ' access.logcount server errors in the web logss -tulpn | grep 8080confirm the app is listening on its port
# module 5 · lesson 18 / 18
Capstone: Deploy a Production Server
The final project — build a secured, monitored server that serves a real application. From an empty machine to production, all by yourself.
# in this lesson — every command, in real words
users + SSH keyscreate the admin user, log in with keys onlysecure sshd_configno root login, no passwords — keys onlynginxthe web server that fronts your applicationdeploy the appput a real application live on the servercron backupsbackups run every night without youlog monitoringknow about problems before the users do
# start today
Everything is free. Pick your door.
No Linux machine yet? One command:
Windowswsl --install -d Ubuntu
macOSbrew install --cask multipass
after Linux: Git → Docker → GitHub Actions → AWS → Kubernetes — all coming on the channel