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.
