Linux Fundamentals

Open course, Ämrahs University, Computer Science, 2025

This is a short course on Linux Fundamentals for devops and server management.

Linux Fundamentals: A Short, Reading Course

​These are some Linux Fundamentals and commands every devops engineer and system administrator should know. This will be helpful for you whether you are a professional devops engineer, a noobie to Linux or just a Linux user trying to debug your system at weekend (probably you are using Arch BTW). ​

Course Overview and Outcomes

By the end of this course, you will:

  • Understand Linux architecture, distributions, the kernel, and the Filesystem Hierarchy Standard.
  • Navigate and manage files from the terminal with confidence.
  • Use redirection, pipes, expansions, and globbing to compose powerful command pipelines.
  • Edit text effectively with nano and vim.
  • Manage users, groups, permissions, and special bits (setuid, setgid, sticky).
  • Administer services and the boot process with systemd: systemctl, journalctl, unit files, and targets.
  • Configure networking using iproute2, NetworkManager, and distro tools (Netplan, ifupdown).
  • Manage software with apt, yum/dnf; understand repos and package lifecycles.
  • Process and transform text using grep, sed, awk; apply regex competently.
  • Write reliable Bash scripts: variables, conditionals, loops, functions, debugging.
  • Harden hosts with firewalls (ufw, firewalld, nftables, iptables) and security best practices.
  • Monitor and troubleshoot systems using ps/top/htop, systemd-journald, vmstat/iostat, ss, lsof, dmesg, journalctl.

Module 1 — Foundations: Linux, Distros, and the Filesystem

Key Components of the Linux Kernel

The Linux kernel manages hardware resources virtually for multiple processes, preventing conflicts and providing a monolithic or hybrid structure for optimal performance. It performs four primary functions: memory management to track usage and location, process management to allocate CPU time, device drivers to mediate hardware interactions, and system calls for secure service requests from user applications. System libraries act as intermediaries, offering pre-written code for common tasks like file operations, reducing development redundancy. The shell provides a command-line interface for users to execute commands and scripts, bridging human input to kernel operations. Hardware layer components, such as CPU, RAM, and storage, are controlled through kernel instructions, while system utilities handle administration tasks like software installation and monitoring.

Module 2 — The Shell: Commands, Globbing, Redirection, Pipes

Module 3 — Editors: nano and Vim Essentials

Module 4 — Users, Groups, Permissions, Ownership

Module 5 — Processes, Jobs, and Logs

Module 6 — systemd: Services, Boot, Journals

Module 7 — Networking: IP Tools, DNS, and Distro Config

Module 8 — Package Management: apt vs yum/dnf

Module 9 — Text Processing: grep, sed, awk, regex power

Module 10 — Bash Scripting: From one-liners to tools

Module 11 — Security Fundamentals: Firewalls and Hardening

Module 12 — Monitoring and Troubleshooting