Tracks
First steps
From system basics and command input to navigation, files, text, and pipelines.
You are new to the Linux terminal.
Users, permissions, and processes
From file permissions and accounts to sudo, groups and processes.
You'll need: navigation, files and the terminal.
Packages, services, and logs
From packages and systemd services to your own unit, the journal, schedules and log rotation.
You'll need: the terminal, files, permissions, sudo and processes.
Networking
From addresses and routes to ports, filtering, DNS, SSH and multi-host connectivity.
You'll need: the terminal, files, sudo and service management.
Storage
From space diagnosis and mounting, through preparing a new disk, to logical volumes and data recovery.
You'll need: files, permissions, sudo and service management.
Bash: text processing and scripts
Searching and editing text with grep, sed and awk, your own scripts with arguments and checks, exit codes and scheduled runs with a log and a lock.
You'll need: the terminal and pipelines, file permissions, systemd services.
Inside the system: resources, kernel, processes
Load average and the CPU, memory and the OOM killer, process limits and kernel parameters, disk load, strace and /proc, kernel messages, the system boot and time synchronisation — up to triaging a slow server.
You'll need: processes and signals, services and logs, filesystems.
Web stack
Sites and reverse proxy on nginx, certificates and HTTPS, PostgreSQL access and restoring from a dump — up to a site and a database on two machines.
You'll need: services and logs, ports and curl, networking between two machines.
Server security
What a server exposes and what it keeps running after an update, password policy and fail2ban, a service with least privilege, AppArmor and auditd — up to getting a new server ready for publication.
You'll need: services and logs, networking and SSH, users and permissions.
Containers: Docker and compose
Image and container, ports, environment and restart, your own Dockerfile, volumes, container networking and a compose stack, memory limits and the user inside a container.
You'll need: services and logs, ports and curl, file permissions.
Automation: Git and Ansible
Configuration under git: who changed what, how to get the working version back and update a server from a repository; Ansible: inventory, ad-hoc commands and an idempotent playbook — up to configuring a second machine from the first.
You'll need: Bash and scripts, networking and SSH.