Linux Complete Course: Zero to Production Ready
From "what is Linux" to a hardened, monitored production web server on AWS - one server, one story.
That guide is part of the full course. Enroll below to unlock every lesson, video and guide.
What you will learn
- Set up a safe Linux lab on AWS and connect with SSH keys, no passwords
- Work confidently in the shell - files, pipes, find and grep
- Control access with users, groups, permissions, sudo and ACLs
- Install software and run apps as hardened systemd services
- Manage disks, LVM, backups and restores you have actually tested
- Lock the server down with firewalls, SSH hardening, fail2ban, AppArmor and auditd
- Serve a real shop website with Nginx and free TLS certificates
- Automate with Bash scripts and Ansible
- Monitor with CloudWatch - metrics, logs, alarms and a dashboard built with Terraform
About this course
From “what is Linux” to a hardened, monitored production web server on AWS – one server, one story.
Every lesson is recorded on a real Ubuntu server: one shop, one server, built up from the first lesson to a hardened, monitored production web server. Each video comes with a written guide and copy-ready commands.
- Getting a Linux machine – 5 lessons
- Shell fundamentals – 7 lessons
- Users, permissions, privilege – 7 lessons
- Software and processes – 8 lessons
- systemd and services – 6 lessons
- Storage – 7 lessons
- Networking – 8 lessons
- Bash scripting and automation – 7 lessons
- Security and hardening – 7 lessons
- Observability with CloudWatch – 10 lessons
- Operating in production – 6 lessons
Your instructor: Yemi Ayodipe. Cloud security engineer with 14+ years in AWS architecture and security. AWS Certified Solutions Architect – Professional and Security – Specialty.
Course content
11 modules · 78 lessons · 6h 25m1 Module 1: Getting a Linux machine 5 lessons · 29 min
- What Is Linux? Distros, and Why Servers Run It (Beginner's Guide) Free preview 6:17
- Set Up a Safe Linux Lab on AWS EC2 (with an Undo Button) Free preview 10:14
- Connect to a Linux Server with SSH Keys (No Passwords) Free preview 5:10
- Put Your First Web Page Online with Nginx on Ubuntu Free preview 5:47
- Linux Course: Module 1 Recap and What's Next Free preview 1:41
2 Module 2: Shell fundamentals 7 lessons · 34 min
- Linux Terminal Basics: the Prompt, Commands, and Getting Help (man, --help, tldr) Free preview 5:21
- Navigate the Linux Filesystem: pwd, ls, cd and Where Everything Lives Free preview 5:09
- Linux Files for Beginners: Create, Copy, Move and Delete Safely Free preview 5:39
- View and Edit Files in Linux: cat, less, head, tail, nano and vim 5:04
- Linux Pipes and Redirection for Beginners (|, >, >>, 2>&1) - with Real Logs 5:08
- How to Find Files and Text in Linux: find, grep and locate 5:30
- Linux Course: Module 2 Recap and What's Next 1:53
3 Module 3: Users, permissions, privilege 7 lessons · 39 min
- Linux Users and Groups for Beginners: useradd, groupadd, usermod and id 5:17
- Linux File Permissions and Ownership Explained (chmod, chown, ls -l) 5:45
- Linux sudo Done Right: Least Privilege with visudo and sudoers.d 5:35
- Linux Shared Folders: umask, setgid and the Sticky Bit Explained 5:57
- Linux ACLs for Beginners: setfacl and getfacl Explained 5:28
- Linux Permissions Lab: Lock Down a Shared Project Folder 9:29
- Linux Course: Module 3 Recap - You've Finished Linux Basics 1:54
4 Module 4: Software and processes 8 lessons · 41 min
- Linux Package Managers: apt and dnf for Beginners 6:06
- Linux Repositories and GPG Keys: Add Software You Can Trust 5:56
- Linux Processes and Signals: ps, top, htop and kill 4:54
- Linux Jobs, nohup and tmux: Keep Programs Running After You Disconnect 4:27
- Linux cron and systemd Timers: Schedule Jobs for Beginners 5:09
- Automatic Security Updates on Ubuntu with unattended-upgrades 5:06
- Linux Course: Module 4 Recap - Software and Processes 1:29
- Linux Incident: The Disk Is Full (No Space Left on Device) 8:07
5 Module 5: systemd and services 6 lessons · 29 min
- How Linux Boots: GRUB, the Kernel, and systemd Explained 5:02
- systemctl for Beginners: Start, Stop, Reload and Enable Linux Services 5:02
- Write Your Own systemd Service and Timer (Unit Files for Beginners) 5:26
- Linux Logs for Beginners: journalctl and /var/log 4:49
- Harden a systemd Service: Dedicated User and Sandboxing (Lab) 7:35
- Linux Course: Module 5 Recap - systemd and Services 1:30
6 Module 6: Storage 7 lessons · 33 min
- Linux Disks, Partitions and Filesystems: Add a New Disk to a Server 5:08
- Linux /etc/fstab for Beginners: Mount a Disk Permanently (and Safely) 5:20
- Linux LVM for Beginners: Grow a Volume Without Downtime 5:09
- Linux Disk Usage: df, du and ncdu, and Cleaning Up Safely 4:39
- Linux Backups for Beginners: rsync, tar, and Testing the Restore 5:30
- Linux Course: Module 6 Recap - Storage 1:28
- Linux Incident: A systemd Service Crashes and Won't Stay Up 5:53
7 Module 7: Networking 8 lessons · 37 min
- IP Addresses, DNS and Routing on Linux: The Basics 5:19
- Inspect a Linux Server's Network: ss, dig, curl and nc 4:12
- Linux Firewalls for Beginners: ufw (and nftables underneath) 4:40
- Harden SSH and Install fail2ban on Ubuntu 6:11
- Nginx for Beginners: Your Own Site File and a Reverse Proxy 5:37
- Free HTTPS with Let's Encrypt and Nginx on Ubuntu 5:12
- Linux Course: Module 7 Recap - Networking 1:32
- Linux Incident: A Firewall Change Takes the Website Offline 4:24
8 Module 8: Bash scripting and automation 7 lessons · 30 min
- Your First Bash Script: Variables, Quoting and Running It 4:33
- Bash Conditions and Loops: if, test and for 4:16
- Bash Functions, Arguments and Exit Codes 4:42
- Safe Bash Scripts: set -euo pipefail and shellcheck 5:17
- awk, sed and cut: Analyse an Nginx Log on Linux 4:45
- Intro to Ansible: Configure a Linux Server the Same Way, Every Time 5:24
- Linux Course: Module 8 Recap - Bash Scripting and Automation 1:28
9 Module 9: Security and hardening 7 lessons · 31 min
- Linux Security Audit with Lynis (and the CIS Benchmarks) 5:32
- AppArmor for Beginners: Confine a Program (and Never Turn It Off) 5:39
- Linux Auditing with auditd: Who Opened That File? 5:06
- Secrets on a Linux Server: Keep Keys Out of Files and Shell History 4:23
- Patching an Ubuntu Server and Checking CVEs with pro fix 4:06
- Linux Course: Module 9 Recap - Security and Hardening 1:34
- Linux Incident: A Bad Deploy Makes Nginx Return 502 Bad Gateway 4:25
10 Module 10: Observability with CloudWatch 10 lessons · 54 min
- Why Observability Matters: Metrics, Logs and Alarms on a Linux Server 5:23
- Give an EC2 Server CloudWatch Permission with an Instance Role (Never Access Keys) 5:41
- Install the CloudWatch Agent on Ubuntu and Send Memory and Disk Metrics 5:07
- Send Nginx, Auth and System Logs to CloudWatch Logs with the CloudWatch Agent 5:29
- CloudWatch Logs Insights and Metric Filters: Count Nginx Errors and Failed SSH Logins 7:35
- Build a CloudWatch Dashboard for a Linux Web Server: CPU, Memory, Disk, Errors and Logs 7:46
- CloudWatch Alarms with SNS Email: Get Told When Your Linux Server Breaks 6:24
- Share a CloudWatch Dashboard Safely (and Why Not a Public Link) 5:04
- Linux Course: Module 10 Recap - Observability with CloudWatch 1:23
- Linux Incident: A CloudWatch Alarm at 2am and a Service That Stopped Itself 3:48
11 Module 11: Operating in production 6 lessons · 27 min
- CloudWatch Dashboard as Code with Terraform (Alarms and Metric Filters Too) 6:20
- Linux Performance Troubleshooting: From the CloudWatch Dashboard to the Process 4:31
- Containers on Linux for Beginners: Namespaces, cgroups and Docker 4:37
- A Linux Troubleshooting Runbook: One Method for Any Incident 3:41
- Linux Capstone: Build, Harden and Monitor a Production Web Server from Scratch 6:35
- Linux Course: Module 11 Recap - Operating in Production (and the End of the Course) 1:18