Linux Engineer Learning Path
A complete roadmap to mastering Linux — from basic commands to system administration, shell scripting, networking, security hardening, and managing production servers.
By the end of this path you will confidently manage Linux servers in production — administering users, processes, storage, networking, security, and services using the command line.
Click a milestone to see tools, technologies, and resources
Select a station to explore tools and resources
- Navigate and manage Linux file systems, permissions, and ownership confidently
- Write production-quality bash scripts for automation and ops tasks
- Manage users, groups, sudo access, and system services
- Configure network interfaces, firewalls, and diagnose connectivity issues
- Administer storage with LVM, manage mounts, and monitor disk health
- Harden a Linux server to production security standards
Who Is This Path For?
This path is for absolute beginners — you’ve never used a Linux terminal before, and that’s completely fine. It’s also great for developers who use Linux daily but have gaps in their sysadmin knowledge.
Linux is the foundation of cloud computing, DevOps, and server engineering. Almost every server running AWS, Kubernetes, or Docker runs on Linux. This path gives you that foundation.
Milestone 1 — Getting Started with Linux
Break the fear of the terminal. It’s just text — and it’s powerful.
Topics:
- What is Linux? Distributions — Ubuntu, CentOS, Amazon Linux
- Installing Ubuntu (VM with VirtualBox, or a free EC2 t2.micro)
- The terminal — what it is, why it matters
- Essential commands:
ls,cd,pwd,mkdir,rm,cp,mv - Understanding the Linux file system hierarchy (
/etc,/var,/home,/usr,/tmp) - Getting help —
man,--help,tldr - Package management —
apt update,apt install,apt remove
Hands-On Task: Install Ubuntu on a VM or EC2. Navigate to 5 different system directories, read a config file with cat, and install htop, tree, and curl using apt.
Milestone 2 — Files, Permissions & Users
Linux security starts here. Everything is a file — and every file has an owner.
Topics:
- File permissions — read, write, execute (
r,w,x) chmod— symbolic (chmod u+x) and octal (chmod 755)chownandchgrp— changing ownership- User management —
useradd,usermod,userdel,passwd - Group management —
groupadd,groups,gpasswd sudo— granting and restricting root access (/etc/sudoers,visudo)- Special permissions — setuid, setgid, sticky bit
umask— default permission for new files
Hands-On Task: Create three users (dev, ops, readonly). Set up a shared group directory where dev and ops can write but readonly can only read. Use visudo to allow ops to run only systemctl with sudo.
Milestone 3 — Bash Scripting
Stop repeating commands. Automate everything.
Topics:
- Shebang line, making scripts executable (
chmod +x) - Variables — declaring, using, environment vs local
- User input —
read, command-line arguments ($1,$@,$#) - Conditionals —
if/elif/else,test,[[ ]]comparisons - Loops —
for,while,until - Functions — defining, calling, returning values
- Exit codes and error handling —
$?,set -e,trap - String manipulation —
cut,awk,sed,grep - Arithmetic —
$(( )),bc - Logging — writing to files, timestamps, log levels
Hands-On Task 1: Write a script that checks if a website is reachable every 5 minutes, logs the result with a timestamp, and sends an alert (echo or email) if it’s been down for 3 consecutive checks.
Hands-On Task 2: Write a system health report script that outputs CPU usage, memory usage, disk usage, top 5 processes by CPU, and failed systemd services — all formatted as a readable report.
Milestone 4 — Process & Service Management
Topics:
- Processes —
ps,top,htop,pgrep,kill,killall,nice,renice - Background jobs —
&,jobs,fg,bg,nohup,screen,tmux systemd— the init systemsystemctl start/stop/restart/enable/disable/status- Writing a custom
.serviceunit file journalctl— querying logs (-u,-f,--since)
- Cron —
crontab -e, cron syntax,/etc/cron.d/ - Anacron for systems that aren’t always on
logrotate— managing log file sizes
Hands-On Task: Write a Python web server, create a systemd service unit for it (start on boot, restart on failure), enable it, and verify it starts after a reboot. Set up logrotate to compress its logs weekly.
Milestone 5 — Networking
Topics:
- Networking basics — IP addresses, subnets, CIDR, gateways, DNS
- Network interfaces —
ip addr,ip link,ip route,nmcli - DNS —
/etc/resolv.conf,/etc/hosts,dig,nslookup - SSH — connecting, key-based auth,
~/.ssh/config, tunnels,scp,rsync - Firewall management:
ufw— simple and practical (Ubuntu)iptables— understanding INPUT, OUTPUT, FORWARD chainsfirewalld— zones and services (CentOS/RHEL)
- Troubleshooting tools —
ping,traceroute,mtr,ss,netstat,tcpdump,nc,curl /etc/hostsand local DNS overrides
Hands-On Task: Set up two VMs. Configure SSH key authentication between them. Write a firewall ruleset with ufw that allows only SSH (22) and HTTP (80) inbound. Use tcpdump to capture and inspect HTTP traffic.
Milestone 6 — Storage & Disk Management
Topics:
- Block devices —
/dev/sda,lsblk,fdisk,parted - Filesystems —
mkfs.ext4,mkfs.xfs,mkfs.btrfs, when to use each - Mounting —
/etc/fstab,mount,umount, UUIDs - LVM — Logical Volume Manager
- Physical Volumes (PV), Volume Groups (VG), Logical Volumes (LV)
- Creating, extending, and snapshotting LVs
- Disk monitoring —
df,du,iostat,iotop,dstat - NFS — setting up an NFS server and client mount
- Swap — creating and managing swap space
Hands-On Task: Attach a new 10GB disk to your VM. Create a partition, set up LVM on it (PV → VG → LV), format it ext4, mount it persistently via /etc/fstab. Then extend the LV by 5GB without unmounting.
Milestone 7 — Security Hardening & Production Readiness
Servers in production must be hardened. This milestone teaches you how professionals do it.
Topics:
- SSH hardening:
- Disable root login (
PermitRootLogin no) - Key-based auth only (
PasswordAuthentication no) - Change default port
AllowUsersdirective
- Disable root login (
fail2ban— blocking brute-force SSH attacks- Automatic security updates (
unattended-upgrades) SELinuxoverview (CentOS) andAppArmor(Ubuntu) — modes, profiles- Audit logs —
auditd,aureport,ausearch - Finding world-writable files and SUID binaries
- CIS Benchmark basics — hardening checklist
- System patching strategy — staging → production
Capstone Project: Start with a fresh Ubuntu 24.04 VM. Write a single bash script that:
- Creates an
opsuser with sudo privileges and SSH key - Disables root SSH login and password authentication
- Installs and configures
fail2ban - Sets up
ufwrules (SSH + HTTP + HTTPS only) - Enables automatic security updates
- Installs
auditdand enables logging of privilege escalations - Outputs a final security report
This script becomes your server bootstrap automation — the kind that DevOps and SRE teams run on every new server.
Help Improve This Learning Path
Have a resource, project idea, or milestone suggestion? Submit it!
Open Google Form