Linux Concepts

A beginner curriculum and reference for Linux fundamentals. Work through the numbered files in order if you’re starting out — they build on each other. The quick-reference topics at the bottom can be read standalone at any level.

Beginner Curriculum (01–12)

Start here if you’re new to Linux. Each file builds on the previous.

01 Filesystem Hierarchy What every directory in / is for — /etc for config, /var for changing data, /usr for programs, /dev for devices, /proc for kernel state, /tmp for temporary files. Understanding the layout makes everything else easier.

02 File Permissions The rwx permission model: reading, writing, executing for owner/group/others. chmod, chown, chgrp, umask, and the special bits — sticky bit (+t), setuid (+s), setgid (+s). ACLs for more granular control.

03 Processes What a process is: PID, parent/child relationships, zombie and orphan processes, daemon vs foreground. How to list, kill, and manage processes with ps, top, htop, and kill.

04 Users and Groups Linux’s multi-user model: /etc/passwd, /etc/shadow, and /etc/group explained. useradd, usermod, userdel, sudo, and how service accounts differ from regular users. The difference between /usr/sbin/nologin and /bin/false.

05 Package Management How packages work: the package manager’s job (dependencies, repositories, upgrades). apt on Debian/Ubuntu, pacman on Arch/Manjaro, dnf on Fedora/RHEL. What a .deb or .pkg.tar.zst actually contains.

06 System Services What a daemon is and how systemd manages services. systemctl start, stop, restart, enable, disable, status. Reading and writing basic .service files. The difference between enable and start.

07 Boot Process The full sequence from pressing the power button: BIOS/UEFI POST → bootloader (GRUB) → kernel loads → initramfs mounts the real root → systemd starts services in parallel → login screen. Kernel command-line parameters and GRUB basics.

08 Logging Where Linux stores logs: /var/log/syslog, /var/log/auth.log, and friends. journalctl for querying the systemd journal: filtering by unit, time, priority, boot ID. logrotate for keeping logs from filling the disk. Binary logs (last, lastlog, faillog) and when to use them.

09 Networking Basics IP addresses (IPv4 and IPv6), CIDR notation, private ranges. Subnets and gateways. DNS resolution: /etc/resolv.conf, host, dig. Checking connectivity with ping and curl. Listening ports: ss -tlnp. Firewalls at a high level (UFW basics).

10 Storage Basics How Linux sees storage: disks → partitions → filesystems → mount points. lsblk, fdisk, parted. Creating filesystems with mkfs. Mounting manually and automatically via /etc/fstab. UUIDs and why device names like /dev/sda1 can be unreliable. LVM at a high level (PV/VG/LV).

11 Shell Basics Bash fundamentals: environment variables, PATH, aliases, history (!!, !$, Ctrl+R). Tab completion, job control (&, Ctrl+Z, fg, bg, jobs). Shell configuration files (~/.bashrc vs ~/.bash_profile).

12 O Redirection The three standard streams: stdin (0), stdout (1), stderr (2). Redirecting to files (>, >>, 2>). Pipes (|). tee for write-and-pass-through. xargs for building commands from stdin. here-docs (<<EOF) and here-strings (<<<). Process substitution (<(cmd)).

Quick-Reference Topics

Standalone topics useful at any level:

[[hardlink-vs-softlink]]  — Hard links vs symbolic links, when to use each
[[ulimit]]               — Resource limits: open files, processes, memory
[[tty-pty]]             — Terminals: TTY, PTS, PTY, screen, tmux
[[tmpfs]]               — RAM-based filesystem: /dev/shm, /run, /tmp
[[sockets]]             — Unix domain sockets: SOCK_STREAM, SOCK_DGRAM
[[spool-directory]]      — /var/spool: mail, print queues, at-jobs
[[bash-cheatsheet]]     — bash quick reference (devhints.io style)