Linux Learning Roadmap: From Beginner to Expert (2026)

Written by Coursera • Updated on

Follow this Linux learning roadmap from beginner to expert, covering key topics like commands, scripting, security, automation, networking, and project practice.

Linux

Introduction to Linux

Linux is an open-source operating system powering servers, desktops, embedded devices, and cloud infrastructure globally. It underpins Android, most supercomputers, and much of the modern internet—making it a foundational skill for IT, DevOps, cybersecurity, data, and cloud roles. A structured Linux learning roadmap from beginner to expert helps you move from core Linux commands and Linux terminal basics to system administration, security, and containers without gaps. As outlined in Coursera’s Linux career guidance, Linux skills connect directly to roles in administration, security, and DevOps, which are in high demand.

Setting Up Your Linux Environment

Hands-on practice is safest in an isolated environment. Start with VirtualBox or VMware for a full virtual machine, Docker for lightweight containers, or Windows Subsystem for Linux (WSL) if you’re on Windows. Live USBs from Ubuntu or Fedora let you try Linux without changing your disk, and hosted cloud labs offer anywhere access.

Compare your options:

  • Virtual machine (VM): Closest to production, snapshots for rollback; requires more CPU/RAM.

  • Live USB: No install, zero risk; changes don’t persist unless configured with persistence.

  • WSL (Windows): Fast startup, integrates with Windows tools; limited to user space (no full kernel modules without WSL2).

  • Hosted cloud lab: Realistic networks and scale; may have time or cost limits.

Essential Linux Commands and File System Basics

Build confidence with core Linux commands for navigation and file manipulation in Linux. Remember the Unix philosophy: everything in Linux is a file—devices, processes, and configuration all surface as files. Practice these core Linux commands daily to accelerate fluency.

CommandPurposeExample
pwdShow current directorypwd
lsList filesls -la /etc
cdChange directorycd /var/log
catView file contentscat /etc/os-release
lessPage through textless /var/log/syslog
echoPrint text/variablesecho $HOME
cpCopy files/dirscp file.txt /tmp/
mvMove/renamemv app.log old.log
rmRemoverm -rf /tmp/testdir
mkdirCreate directorymkdir -p ~/projects/demo
touchCreate/modify filestouch notes.txt
head/tailStart/end of filetail -f /var/log/auth.log
grepSearch textgrep -i error app.log
findDiscover filesfind /etc -name "*.conf"
manCommand helpman systemctl

Navigating the Linux Filesystem Hierarchy

Knowing where things live speeds up troubleshooting and safe changes.

DirectoryWhat it’s forTypical contents
/Root of the filesystemTop-level directories
/homeUser data/home/alex, /home/dev
/etcSystem configuration/etc/ssh/sshd_config
/varVariable dataLogs, caches, queues
/tmpTemporary filesEphemeral runtime data
/usrUser utilitiesBinaries, libraries, docs
/bin, /sbinEssential binariesls, cp, ip, systemd
/optOptional softwareThird-party apps
/devDevice files/dev/sda, /dev/null
/proc, /sysKernel interfacesProcess and system info
/bootBootloader, kernelsvmlinuz, initramfs

Basic Shell and Bash Scripting Skills

Bash scripting enables automating sequences of commands and handling errors efficiently. Start with variables, conditionals, loops, and exit codes; then add error handling and logging. Bash and Zsh are the most common interactive shells; both support robust scripting conventions.

Example 1: Hello, variables, and conditionals

#!/usr/bin/env bash

set -euo pipefail

NAME=${1:-"Linux Learner"}

HOUR=$(date +%H)

if (( HOUR < 12 )); then GREETING="Good morning"; else GREETING="Hello"; fi
echo "$GREETING, $NAME!"

Example 2: Simple loop with error handling

#!/usr/bin/env bash

set -euo pipefail

trap 'echo "Error on line $LINENO"; exit 1' ERR

for f in *.log; do

  gzip -9 "$f"

done

User and Group Management Fundamentals

Linux uses user IDs (UIDs) and group IDs (GIDs) to control access. Typical workflow: create a user, assign groups, set a secure password, and test permissions.

  • Create/modify/delete: useradd, usermod, userdel; groupadd, groupdel

  • Ownership/permissions: chown user:group file; chmod 640 file; umask for defaults

  • Check: id username, getent passwd, groups username

Example:

  • Add user and group: groupadd devops; useradd -m -G devops -s /bin/bash alice

  • Set password: passwd alice

  • Test: sudo -u alice touch /tmp/test; ls -l /tmp/test

Managing Processes and System Resources

A process is an instance of a running program. Learn to list, inspect, prioritize, and terminate processes to maintain responsive systems.

ToolWhat it showsTypical usage
ps, pgrepSnapshot of processesps aux
top/htopLive CPU/mem viewtop
nice/reniceAdjust priorityrenice 10 -p 1234
kill/killallSend signalskill -TERM 1234; killall nginx
bg/fg/nohupJob controlmyjob &; fg %1; nohup cmd &
free/vmstatMemory statsfree -h; vmstat 1
iostatI/O throughputiostat -xz 1
df/duDisk usagedf -h; du -sh /var/log/*

Package Management and Software Installation

Understand your distro’s package manager to install, update, and remove software safely.

  • Debian/Ubuntu: apt with dpkg under the hood

    • Update indexes: sudo apt update

    • Upgrade: sudo apt upgrade

    • Search/install/remove: apt search htop; sudo apt install htop; sudo apt remove htop

  • RHEL/CentOS/Fedora: dnf or yum with rpm

    • Update: sudo dnf upgrade

    • Search/install/remove: dnf search htop; sudo dnf install htop; sudo dnf remove htop

Use trusted repositories, enable security updates, and keep kernels and critical services current.

Understanding Disks, Filesystems, and Storage

A filesystem organizes data on disk for retrieval and storage. Linux supports ext4, XFS, ZFS, and others.

  • Inspect: lsblk, blkid, fdisk -l

  • Space and usage: df -h, du -sh /path

  • Format/mount: mkfs.ext4 /dev/sdb1; mount /dev/sdb1 /mnt/data; umount /mnt/data

  • Health and growth: fsck, resize2fs (ext), xfs_growfs (XFS), zpool/zfs (ZFS)

  • Consider snapshots and send/receive with ZFS for robust backups (see the ZFS on Linux course on Coursera).

Booting Process and Service Management with systemd

systemd is the system and service manager in modern Linux distributions, responsible for booting and controlling system units.

  • Service control: systemctl start|stop|restart|status nginx

  • Enable on boot: systemctl enable nginx; systemctl is-enabled nginx

  • Logs: journalctl -u nginx --since "1 hour ago"

Example unit file (/etc/systemd/system/myapp.service):

[Unit]

Description=My App

After=network.target

[Service]

ExecStart=/usr/local/bin/myapp

Restart=on-failure

[Install]

WantedBy=multi-user.target

Enable and start: systemctl enable --now myapp

Networking Basics and Remote Access

Know your interfaces, routes, and connectivity.

  • Interfaces and IPs: ip addr, ip link

  • Routes: ip route

  • Connectivity: ping host, traceroute host

  • Ports and sockets: ss -tulpn

  • Name resolution: dig example.com, getent hosts example.com

  • Remote access: ssh user@host; copy files with scp or rsync -e ssh

Try SSH into a VM you control to build real admin muscle memory.

Intermediate Shell Scripting and Automation

Move from ad hoc scripts to scheduled, reliable automation.

  • Schedule with cron: crontab -e; example: 0 2 * * * /usr/local/bin/backup.sh

  • Common tasks: rsync snapshots, daily package updates, log rotation, report generation

  • Useful CLI tools: rsync, curl, jq, tar, zip/unzip, parallel

Version Control with Git and Collaboration Tools

Git is a distributed version control system for tracking code, configuration, and documents.

  • Workflow: git init; git clone URL; git add; git commit -m "msg"; git push; git pull; git branch; git merge

  • Good habits: frequent commits, meaningful messages, branches and pull requests on GitHub/GitLab

Using tmux and Text Processing Tools

tmux is a terminal multiplexer that lets you manage multiple sessions, windows, and panes in one terminal—perfect for persistent remote work.

  • Text utilities: grep (search), sed (stream edits), awk (pattern scanning/fields)

  • Editors: Vim, Nano, and VS Code (via Remote SSH)

  • Quick wins: tmux new -s work; grep -R "ERROR" /var/log; sed -n '1,100p' file; awk -F: '{print $1}' /etc/passwd

Introduction to Containers and Docker

A container packages an application and its dependencies to ensure consistency across environments.

  • Run: docker run --rm -it ubuntu:22.04 bash

  • Build: docker build -t myapp:1.0 .

  • Share: docker push myrepo/myapp:1.0

  • Benefits: fast provisioning, sandboxing, reproducibility, and simplified CI/CD pipelines.

Kubernetes Basics and Container Orchestration

Kubernetes automates deployment, scaling, and management of containerized applications.

  • Try locally: minikube start; kubectl apply -f deploy.yaml

  • Core objects: Pods (runtime units), Services (network access), Deployments (stateless rollout), ConfigMaps/Secrets (config)

  • Inspect: kubectl get pods -A; kubectl logs deploy/myapp

Frequently Asked Questions

Updated on
Written by:

Coursera

Writer

Coursera is the global online learning platform that offers anyone, anywhere access to online course...

This content has been made available for informational purposes only. Learners are advised to conduct additional research to ensure that courses and other credentials pursued meet their personal, professional, and financial goals.