Linux Learning Roadmap
Linux runs 96% of the world's servers, every Android device, and most of the cloud infrastructure you deploy to. Knowing Linux means you can SSH into any server, navigate its filesystem, manage processes and services, and debug production issues in the environment where code actually runs. Essential for backend, DevOps, and cloud roles.
Total time
6–10 weeks
Stages
5 stages
Job-ready at
Stage 3
Career paths
3 paths
Before you start — Prerequisites
Access to a Linux terminal
You can use Ubuntu via WSL on Windows, macOS terminal (BSD-compatible), or a free cloud VM (Oracle Cloud, Google Cloud free tier).
Stage 1: Shell & Navigation
Move around and manage files
Topics to cover
Bold = especially important
Milestone
You navigate any Linux system by terminal — find files, read them, create directories, and move data around without a GUI.
Project to build
Organize a project directory
Create a multi-level directory structure, use cp/mv/rm to organize 20+ files, read config files with cat/less — no GUI allowed.
Stage 2: Text Processing & Pipes
The Unix philosophy: small tools, chained together
Topics to cover
Bold = especially important
Milestone
You chain grep, awk, sort, and uniq to answer questions about log files and datasets in one-liners. The pipe symbol feels natural.
Project to build
Analyze server logs
Download a real Apache/nginx access log, use grep+awk+sort+uniq to find: top 10 IP addresses, 404 error count, requests per hour.
Stage 3: Users, Permissions & Processes
✓ Min. Job ReadyWho can do what, and what is running
Topics to cover
Bold = especially important
Milestone
You create users, set correct permissions on sensitive files, manage running processes, and configure environment variables.
Project to build
Secure multi-user setup
Create two users with different permissions, set correct chmod on sensitive files, create a deployment user that can run an app but nothing else.
Stage 4: Networking & SSH
Connect to remote servers and debug network issues
Topics to cover
Bold = especially important
Milestone
You SSH into any server with key authentication, transfer files, debug network connectivity, and configure a basic firewall.
Project to build
Deploy app to a cloud VM
Provision an Oracle Cloud free-tier VM, SSH in with key auth, install dependencies, deploy a web app, open firewall port.
Stage 5: Services, Packages & Shell Scripts
Manage a Linux server in production
Topics to cover
Bold = especially important
Milestone
You write shell scripts that automate routine tasks, manage system services with systemd, and set up cron jobs. You maintain a Linux server without rebooting unnecessarily.
Project to build
Automated server setup script
Bash script that installs packages, creates a non-root user, configures SSH hardening, enables ufw, and sets up a systemd service — idempotent.
What to learn next with Linux
Skills that pair directly with Linux in job postings
Docker
Containers run on Linux — Docker concepts make much more sense with Linux knowledge
Git
Git lives in the terminal — Linux skills and Git skills compound together
AWS
EC2 instances run Linux — cloud work is Linux work
Kubernetes
Kubernetes nodes are Linux — debugging K8s often means debugging the OS
Bash
Shell scripting automates Linux administration and CI/CD tasks
Career paths that use Linux
Frequently asked questions
Which Linux distribution should I learn?
Ubuntu — specifically Ubuntu LTS (Long Term Support). It's the most common Linux distribution on cloud servers, has the most documentation, and is what most tutorials assume. Debian is a close second. Once you know Ubuntu, switching to CentOS/RHEL, Amazon Linux, or Alpine is straightforward.
Can I learn Linux on a Mac?
Yes — macOS uses a BSD-based terminal that's very similar to Linux. Most commands work identically. For full Linux practice, install Ubuntu via VirtualBox (free) or use Windows Subsystem for Linux (WSL2) on Windows. A free cloud VM works too.
Do I need to memorize every Linux command?
No. You need to know what's possible and how to find the right command. man <command> gives the manual for any command. The commands you use daily (ls, cd, grep, find, ssh, systemctl) become automatic quickly. The rest you look up.
Linux vs Windows for a developer — which should I use?
Linux for servers (non-negotiable — 96% of servers run Linux). For your local development machine, macOS or Linux are both excellent. Windows works with WSL2. Most professional developers use macOS or Linux as their daily driver for a reason — better terminal, native Unix tools, fewer compatibility issues.
Is Linux command line the same as Bash?
Almost. Bash (Bourne Again Shell) is the most common command interpreter on Linux. When you type commands in a terminal, you're usually talking to Bash. There are other shells (zsh, fish, sh), but Bash is the standard for scripting and server administration. Learning Bash means learning Linux.
Ready to start learning?
Browse our curated Linux resources — every course, book, and video ranked by quality.
View Linux Resources →