Darmowy kurs od Chmuroholika
Linux i Bash
od zera do admina
Od pierwszego otwarcia terminala do samodzielnej pracy administratora serwerów. Bez znajomości programowania na starcie.
2026-11-03 · Eryk
Jak działa ta seria
Kurs prowadzi od pierwszego otwarcia terminala do samodzielnej pracy administratora serwerów Linux. Kto skończy całość, umie postawić, skonfigurować, zabezpieczyć, monitorować i naprawić serwer oraz automatyzować go skryptami w Bashu, Gitem i Ansible. Seria ma 117 lekcji po 10–15 minut, razem około 24–30 godzin. Wszystko jest w tym jednym dokumencie: ta zakładka to plan, a pełne scenariusze są w zakładkach modułów.
Czego sam kurs nie da. Zakres pokrywa wymagania egzaminów RHCSA i LFCS i wystarcza na stanowisko Junior Linux Administrator. Ale admina robi praktyka, nie oglądanie. Do kursu trzeba doliczyć około 150–300 godzin własnego laboratorium: 3–5 maszyn wirtualnych (Rocky lub Alma Linux i Ubuntu), na których psujesz i naprawiasz to, co w lekcjach. Do tego egzaminy próbne na czas i jeden publiczny projekt w Gicie jako portfolio. Oferty na poziom mid wymagają jeszcze 2–3 lat doświadczenia oraz podstaw Pythona i chmury. Mówimy o tym otwarcie w pierwszym i ostatniej lekcji.
Zakres sprawdziliśmy z czterech stron:
- wymagania egzaminów administratorskich: Red Hat RHCSA EX200 (dziś oparty na RHEL 10), Linux Foundation LFCS, LPIC-1 i CompTIA Linux+ XK0-006;
- listy codziennych komend adminów: Red Hat Enable Sysadmin, Opensource.com, dokumentacja Ubuntu Server;
- dziesięć zestawień pytań z rozmów rekrutacyjnych na admina Linuksa;
- polskie oferty pracy na stanowisko administratora Linuksa z justjoin.it i praca.pl.
Wszystko, czego wymagają egzaminy RHCSA i LFCS albo o co pytają co najmniej dwa zestawienia pytań, ma w kursu swój lekcja. Środowisko graficzne, drukarki i dostępność z LPIC-1 pomijamy, bo admin serwerów ich nie używa.
- Stały schemat lekcji: hak (scena z życia albo „zobacz, co dziś zbudujemy”) → jedno nowe pojęcie, najpierw obraz, potem nazwa → pokaz w terminalu krok po kroku → „Jak to działa pod spodem” (co naprawdę robi system, gdy wpisujesz komendę) → „Ściąga flag” (tabela najważniejszych opcji z wyjaśnieniem każdej) → typowy błąd i jak go naprawić → zadanie dla kursanta → zapowiedź następnego.
- Każda lekcja działa sam: na początku jedno zdanie przypomnienia, a nie „w poprzedniej lekcji”.
- Zadanie domowe na końcu każdej lekcji, z rozwiązaniem na początku następnego. To naturalny powód, żeby obejrzeć dalej.
- Weryfikacja: każda komenda i każdy skrypt z tego dokumentu zostały uruchomione w prawdziwym Bashu 5.2 i sprawdzone narzędziem ShellCheck, które wyłapuje typowe błędy w skryptach. Przy komendach, które na macOS działają inaczej, jest dopisek [macOS].
- Oznaczenia: [na ekranie: …] to grafika albo nagranie terminala, [dla zaawansowanych] to smaczek na jedno zdanie, i jak zwykle.
- Na jakim systemie nagrywać: terminal na Linuksie (np. Ubuntu w maszynie wirtualnej). Na macOS domyślna powłoka to zsh, a wbudowany Bash jest bardzo stary (3.2), więc kursantom z Maca w lekcji 1 pokazujemy, jak zainstalować nowy albo jak użyć Linuksa w okienku.
PROGRAM KURSU
Nic nie znalazłem. Spróbuj innej komendy.
Pierwsze kroki
Po nim: nie boisz się terminala
Lekcje
- 1Czarne okienko, którego nie trzeba się baćterminal i Bash, otwieranie na Linuksie, Macu i Windowsie, budowa komendy
- 2Gdzie ja jestem? Chodzenie po folderachpwd, ls (-l, -a, -h), cd, ścieżki, ~, ., .., Tab, historia
- 3Tworzenie, kopiowanie i kasowaniemkdir -p, touch, cp -r, mv, rm (-r, -i, -f), cat, less, head, tail
- 4Jak nie zgubić się nigdy więcejman, --help, help, type, which, man -k
Praca w powłoce
Po nim: terminal jest szybszy niż myszka
Lekcje
- 5Gwiazdka, która robi robotę za ciebie*, ?, [...], {a,b}, {1..10}
- 6Gdzie idzie wynik komendy>, >>, <, 2>, 2>&1, &>, /dev/null, deskryptory
- 7Rura i narzędzia do tekstu|, grep (-i, -v, -c, -n, -r), sort (-n, -r, -k, -t), uniq -c, wc, cut, tr, tee
- 8Mapa Linuksa: co leży w którym folderzestandard FHS: /, /bin, /sbin, /usr, /etc, /home, /root, /var, /tmp, /opt, /srv, /boot, /dev, /proc, /sys, /run, /mnt, /media; „wszystko jest plikiem”; czemu /bin to dziś skrót do /usr/bin
- 9Co to jest powłoka i jakie sąsh, Bash, zsh, fish, dash, ksh, csh; /etc/shells, echo $SHELL, chsh -s; czemu skrypty systemowe pisze się pod sh; zsh na Macu
- 10Jak Bash czyta twoją komendękolejność: słowa, aliasy, rozwinięcia (klamry, tylda, zmienne, $( ), arytmetyka, dzielenie na słowa, wzorce, usuwanie cudzysłowów), przekierowania; szukanie komendy: funkcja, wbudowana, PATH; fork i exec; kod 127
- 11nano: edytor, z którego da się wyjśćnano, skróty Ctrl+O, Ctrl+X, Ctrl+W, Ctrl+K, -l, edycja plików konfiguracyjnych z sudo
- 12vi i vim bez panikitryby (normalny, wstawiania, komend), i, a, o, Esc, :w, :q, :wq, :q!, dd, yy, p, u, /szukaj, n, :%s/a/b/g, :set number, vimtutor; czemu vi jest na każdym serwerze
- 13Midnight Commander i inne menedżery plikówmc, dwa panele, F3 podgląd, F4 edycja (mcedit), F5 kopiuj, F6 przenieś, F7 folder, F8 usuń, F10 wyjście; praca na zdalnym serwerze przez mc; ranger, nnn, lf, yazi, vifm
- 14Linki: skróty, które nie są skrótamii-węzeł (inode), ls -i, stat, ln (twardy), ln -s (symboliczny), co się dzieje po usunięciu oryginału, readlink -f
- 15Kto może czytać twój plikls -l od środka, chmod (litery i cyfry), chown, chgrp, umask
- 16Uprawnienia specjalne i ACLSUID, SGID, sticky bit (/tmp), find -perm, getfacl, setfacl (-m, -x, -d), lsattr, chattr +i
- 17Ustawienia Basha pod siebiezmienne środowiskowe, env, export, PATH, .bashrc kontra .bash_profile, /etc/profile, aliasy, PS1, HISTSIZE, HISTCONTROL
- 18tmux: terminal, który przeżyje rozłączeniesesje, okna, panele, tmux new -s, attach, odłączenie (Ctrl+B D), ls; czemu długie prace na serwerze odpala się w tmux; screen
Procesy i jak działa system
Po nim: rozumiesz, co się dzieje w środku
Lekcje
- 19Co to jest proces? ps od środkaprogram a proces, PID, PPID, fork i exec, ps aux, ps -ef, kolumny, --sort, -o, pgrep, pstree, /proc/PID
- 20Rodzaje procesówpierwszoplanowe i w tle, demony, procesy jądra, wątki, PID 1, sieroty, zombie, stany R, S, D, T, Z
- 21top: co ten ekran w ogóle mówiload average, CPU us, sy, wa, st, pamięć, VIRT, RES, SHR, klawisze, top -b -n 1 w skryptach
- 22htop: top dla ludziinstalacja, paski, drzewo, filtr, sortowanie, zabijanie, F-klawisze, konfiguracja; btop i glances w skrócie
- 23Sygnały i zabijanie procesówkill, kill -l, SIGTERM kontra SIGKILL, SIGHUP, SIGINT, killall, pkill
- 24Programy w tle&, jobs, fg, bg, Ctrl+Z, Ctrl+C, nohup, disown
- 25Priorytety, limity i profile tunednice, renice, ionice, ulimit, /etc/security/limits.conf, cgroups w skrócie, tuned-adm (list, active, recommend, profile)
- 26Pamięć, obciążenie i dysk pod presjąfree -h, uptime, vmstat, iostat -x, iotop, pidstat, /proc/meminfo, swap, OOM killer
- 27Jak Linux startujeBIOS/UEFI → GRUB → jądro → initramfs → PID 1; SysV init i Upstart jako historia; systemd i targety, get-default, set-default, isolate; /etc/default/grub, grub2-mkconfig, grubby (--update-kernel, --args, --set-default)
- 28systemd i usługijednostki, systemctl (status, start, stop, restart, reload, enable --now, disable, mask, is-active, list-units --failed, daemon-reload), własna usługa ze skryptu
- 29Logi/var/log, journalctl (-u, -f, -b, -p err, --since), trwały dziennik, rsyslog, logrotate, dmesg, logger
- 30Sprzęt, jądro i udevuname -a, lscpu, lsblk, lspci, lsusb, dmidecode, lsmod, modprobe, sysctl, udevadm
Pisanie skryptów
Po nim: piszesz własne programy w Bashu
Lekcje
- 31Twój pierwszy skryptplik, #!, chmod +x, ./skrypt, bash skrypt, komentarze, co się dzieje przy uruchomieniu
- 32Zmienne i cudzysłowyprzypisanie, $zmienna, ${zmienna}, "..." kontra '...', read (-p, -s, -r)
- 33Skrypt, który przyjmuje polecenia$1 …, $#, "$@" kontra $*, $0, shift
- 34Udało się czy nie?kod wyjścia, $?, exit, &&, ||, true, false
- 35Jeśli… to…if, elif, else, test, [ ], [[ ]], -eq, -lt, -z, -n, -f, -d, -e, -r, -x
- 36Wybór z menucase, wzorce, select
- 37Pętlefor (lista, zakres, styl C), while, until, break, continue, while IFS= read -r
- 38Bash umie liczyć (trochę)$(( )), (( )), let, liczby całkowite, bc, RANDOM
- 39Wynik komendy w zmiennej$( ), stare odwrotne apostrofy, <( )
- 40Funkcjedefinicja, argumenty, local, return kontra echo, zakres zmiennych
Napisy, listy i przetwarzanie danych
Lekcje
- 41Nożyczki do tekstu${#v}, ${v:0:3}, ${v#}, ${v%}, ${v/a/b}, ${v^^}, ${v:-domyślnie}
- 42Listy (tablice)tworzenie, dodawanie, ${a[@]}, ${#a[@]}, pętle po tablicach, mapfile
- 43Słownikideclare -A, klucze i wartości [macOS: wymaga nowego Basha]
- 44Ładne wypisywanie i długie tekstyprintf z formatami, here-doc, here-string
- 45Wyrażenia regularnegrep -E, grep -o, [[ =~ ]], BASH_REMATCH
- 46sed od podstaws///, flagi g i i, -i, -n z p, usuwanie linii, adresy, edycja plików konfiguracyjnych
- 47awk od podstawkolumny, -F, warunki, sumy, NR, NF, raporty
- 48Znajdź wszystkofind (-name, -type, -mtime, -size, -user, -perm, -exec, -delete), xargs, -print0, locate
Skrypty, które się nie sypią
Lekcje
- 49Spacje w nazwach plikówcytowanie, IFS, bezpieczne pętle po plikach, nullglob
- 50Tryb „zatrzymaj się przy błędzie”set -e, set -u, set -o pipefail i ich pułapki
- 51Sprzątanie po sobietrap, sygnały w skryptach, mktemp
- 52Opcje jak w prawdziwych programachgetopts, --help, sprawdzanie danych
- 53Szukanie błędówbash -n, bash -x, set -x, PS4, ShellCheck, strace w skrócie
- 54Komunikaty, logi i kolorystdout kontra stderr w skryptach, logger, kolory, konwencje kodów wyjścia
- 55Duży skrypt w porządkusource, biblioteki funkcji, struktura, styl, flock
Dyski i systemy plików
Lekcje
- 56Dyski i miejscedf -h, df -i, du -sh, du --max-depth, ncdu, lsblk, blkid; „dysk pełny, a du pokazuje mniej” (lsof +L1)
- 57Co to jest system plikówext4, XFS, Btrfs, VFAT, i-węzły, księgowanie, mkfs.ext4, mkfs.xfs, mkfs.vfat, fsck, xfs_repair, tune2fs
- 58PartycjeMBR kontra GPT, fdisk, gdisk, parted, partprobe
- 59Montowaniemount, umount, „device is busy”, findmnt, /etc/fstab, UUID, defaults, noatime, nofail, mount -a
- 60Swapplik i partycja wymiany, mkswap, swapon, swapoff, vm.swappiness
- 61LVM i szyfrowanie dyskówPV, VG, LV, pvcreate, vgcreate, lvcreate, lvextend --resizefs, pvs, vgs, lvs, migawki; LUKS: cryptsetup luksFormat, open, /etc/crypttab
- 62RAID i zdrowie dyskówpoziomy 0, 1, 5, 10, mdadm (--create, --fail, --remove, --add), /proc/mdstat, smartctl -a
- 63Dyski przez siećNFS (exportfs, mount -t nfs), Samba i CIFS, autofs, iSCSI w skrócie (iscsiadm)
Pakiety i oprogramowanie
Lekcje
- 64Menedżery pakietów: sklep z aplikacjami dla serwerapakiet, repozytorium, zależności, podpisy; Debian i Ubuntu (apt, dpkg), Red Hat, Fedora, Rocky, Alma (dnf, yum, rpm), SUSE (zypper), Arch (pacman), Alpine (apk)
- 65apt i dpkg z bliskaupdate, upgrade, full-upgrade, install, remove, purge, autoremove, search, show, apt-cache policy, apt-mark hold, /etc/apt/sources.list.d, dpkg -l, -L, -S, -i, unattended-upgrades
- 66dnf, rpm i repozytoriainstall, remove, update, search, provides, info, history i history undo, repolist, pliki .repo w /etc/yum.repos.d, config-manager --add-repo, lokalne repozytorium z ISO, EPEL, updateinfo --security, needs-restarting -r, subscription-manager; rpm -qa, -qi, -ql, -qf, -V
- 67Programy spoza repozytoriumFlatpak (remote-add, install, uninstall), Snap, AppImage, pobrane .deb i .rpm, kompilacja ze źródeł, /usr/local, /opt, biblioteki: ldd, ldconfig, /etc/ld.so.conf.d
Sieć
Lekcje
- 68Sieć w piętnaście minutadres IP, maska, brama, DNS, DHCP, port, TCP kontra UDP, IPv4 kontra IPv6, adresy prywatne
- 69ip: adresy, trasy, interfejsyip a, ip link, ip r, ip n; czemu ifconfig i netstat to przeszłość
- 70Konfiguracja sieci na stałenetplan (netplan try, apply), NetworkManager i nmcli (con show, con mod, con up), nmtui, stały adres IP, hostnamectl, /etc/hosts, /etc/resolv.conf, resolvectl
- 71Diagnostyka sieci i DNSping -c, traceroute, tracepath, mtr, dig (+short, +trace, -x), rekordy A, AAAA, CNAME, MX, PTR, TXT, TTL, host, nslookup, curl -I -v, wget, nc -zv
- 72Porty: kto słucha i dlaczegoss -tulpn, lsof -i :80, fuser, /etc/services, 127.0.0.1 kontra 0.0.0.0
- 73Otwieranie i zamykanie portówufw (allow 80/tcp, deny, status verbose, enable), firewalld (firewall-cmd --add-service, --add-port, --permanent, --reload, --list-all, strefy), nftables, iptables
- 74Routing, NAT, przekierowanie portów, bonding i mostkiip route add, trasy w nmcli, net.ipv4.ip_forward, firewall-cmd --add-masquerade, --add-forward-port, NAT w nftables, bonding i mostek w nmcli
- 75Podglądanie ruchutcpdump (-i, -n, port, host, -w, -r), Wireshark w skrócie
- 76SSH od środkassh, ssh-keygen -t ed25519, ssh-copy-id, ~/.ssh/config, authorized_keys i uprawnienia, sshd_config, scp, sftp, tunele -L, -R, -J
- 77Archiwa i kopiowanie przez siećtar (-czf, -xzf, -tzf, -j, -J, -C), gzip, bzip2, xz, zip, rsync (-a, -v, -z, --delete, -n)
Użytkownicy i bezpieczeństwo
Lekcje
- 78Użytkownicy i grupyuseradd -m -s, usermod -aG, userdel -r, passwd, chage, groupadd, gpasswd, id, getent, /etc/passwd, /etc/shadow, /etc/group, /etc/skel, /etc/login.defs
- 79sudo i rootsudo -i, sudo -l, su -, visudo, /etc/sudoers.d, zasada najmniejszych uprawnień
- 80Kto się logowałwho, w, last, lastb, /var/log/auth.log i /var/log/secure, PAM, faillock, blokowanie kont
- 81Konta z jednego miejsca: LDAP i Active Directory/etc/nsswitch.conf, getent, SSSD, sssd.conf, authselect, realm discover, realm join, ldapsearch, automatyczne katalogi domowe
- 82SELinux bez strachutryby, getenforce, setenforce, ls -Z, ps -Z, restorecon -Rv, semanage fcontext, semanage port, getsebool, setsebool -P, czytanie odmów
- 83AppArmorprofile, aa-status, aa-enforce, aa-complain
- 84Utwardzanie serweraaktualizacje, wyłączanie usług, fail2ban, SSH na klucze, auditd, audyt: lynis, OpenSCAP (oscap), AIDE
- 85Certyfikaty i szyfrowaniejak działa HTTPS, openssl s_client, openssl x509 -noout -dates, klucz i CSR, certbot, gpg, sha256sum -c
- 86Czas i język systemutimedatectl, chrony, chronyc tracking, chronyc sources, hwclock, localectl, locale, LANG
Usługi i serwery
Lekcje
- 87Zadania o wyznaczonej godzinie i powiadomieniacron, crontab -e, -l, składnia, /etc/cron.d, MAILTO, „działa ręcznie, a z crona nie”, at, atq, atrm, timery systemd, powiadomienia mailem (/etc/aliases, Postfix jako klient wysyłający)
- 88Apache: instalacjaapt install apache2, dnf install httpd, systemctl enable --now, otwarcie portu 80, pierwsza strona w /var/www/html
- 89Apache: konfiguracja/etc/apache2, sites-available, a2ensite, a2enmod; /etc/httpd/conf/httpd.conf, conf.d; VirtualHost, DocumentRoot, apachectl configtest, logi, .htaccess, mod_rewrite
- 90Apache z HTTPScertbot --apache, przekierowanie z 80 na 443, kontekst SELinux httpd_sys_content_t
- 91Nginx, reverse proxy i rozkładanie ruchubloki server, nginx -t, proxy_pass, upstream, metody rozkładania, HAProxy (frontend, backend, haproxy -c)
- 92Bazy danych dla adminaMariaDB i PostgreSQL: instalacja, zabezpieczenie, użytkownik i baza, mysqldump, pg_dump
- 93Stos LAMP od zeraApache, MariaDB i PHP razem, PHP-FPM, pierwsza aplikacja
- 94Kontenery, część 1Docker i Podman: obraz, kontener, run, ps, logs, exec, -p, -v, sieci
- 95Kontenery, część 2Containerfile, build, compose, Podman bez roota, kontener jako usługa systemd (Quadlet), :Z przy SELinux
- 96Maszyny wirtualne: KVM i libvirtvirt-install, virsh (list, start, shutdown, console, snapshot-create-as), qemu-img, sieć NAT kontra mostek, cloud-init
- 97Monitorowaniesar (sysstat), progi i alarmy, Zabbix z agentem, Netdata, Prometheus z node_exporter w skrócie
- 98Kopie zapasowe na seriozasada 3-2-1, pełna, przyrostowa, różnicowa, rsync, tar, borg i restic, test odtwarzania
- 99Gdy serwer nie wstajerescue.target, emergency.target, edycja wpisu w GRUB, rd.break, reset hasła roota, fsck przy starcie, kernel panic, błąd w fstab
- 100Metoda rozwiązywania problemówserwer wolny, CPU 100%, brak pamięci, pełny dysk, pełne i-węzły, usługa nie wstaje, brak SSH, strona nie działa; zgłoszenie, zmiana, dokumentacja, raport po awarii
Automatyzacja: Git, Ansible i Bash w pracy admina
Lekcje
- 101Git dla adminagit init, clone, add, commit, log, diff, branch, merge, pull, push, .gitignore, klucz SSH do GitLaba i GitHuba, skrypty w repozytorium, etckeeper
- 102Wiele serwerów narazpętla po serwerach przez SSH, ~/.ssh/config, równoległe uruchamianie
- 103Ansible w praktyceinwentarz, ansible -m ping, shell, copy, playbook, moduły apt, dnf, service, template, lineinfile, user, firewalld, handlery, zmienne, ansible-vault, --check --diff
- 104Instalacja i konfiguracja ze skryptuapt i dnf bez pytań, DEBIAN_FRONTEND=noninteractive, idempotencja, edycja konfiguracji sed
- 105Bezpieczne skryptyhasła i sekrety, rm -rf w skryptach, czemu nie eval, uprawnienia skryptów
Rozmowa rekrutacyjna
Lekcje
- 106Pytania rekrutacyjne: pliki i uprawnienialink twardy kontra symboliczny, i-węzeł, FHS, chmod 750, SUID, SGID, sticky bit, find, grep, sed, awk, przekierowania
- 107Pytania rekrutacyjne: procesy, start systemu, dyskizombie i sieroty, kill -15 kontra -9, load average, OOM killer, start systemu, init kontra systemd, swap, fstab, LVM, df kontra du
- 108Pytania rekrutacyjne: sieć i bezpieczeństwoDNS, TCP kontra UDP, który proces słucha na porcie, zapora, SSH „dalej pyta o hasło”, utwardzanie, SELinux kontra AppArmor, ulimit
- 109Pytania rekrutacyjne: scenariusze„serwer jest wolny”, „dysk pełny”, „nie mogę się zalogować”, „z crona nie działa”, „co się dzieje, gdy wpisujesz komendę”, bomba fork; jak odpowiadać na głos
Projekty końcowe
Po nim: masz portfolio
Lekcje
- 110Projekt 1: nowy serwer w dziesięć minutskrypt przygotowujący nowy serwer: użytkownik, SSH na klucze, zapora, aktualizacje, fail2ban
- 111Projekt 2: dwie strony na Apache z HTTPSserwer WWW z dwiema stronami na Apache i HTTPS
- 112Projekt 3: kopie zapasowe, które naprawdę da się odtworzyćsystem kopii zapasowych z rotacją, raportem i testem odtwarzania
- 113Projekt 4: monitor, który krzyczy raz, a nie co pięć minutmonitor dysku, pamięci i usług z powiadomieniem mailem
- 114Projekt 5: analizator logów z raportem dziennymanalizator logów z raportem dziennym
- 115Projekt 6: LAMP na trzech maszynach z Ansible, wszystko w GitAnsible: stos LAMP na trzech maszynach wirtualnych, wszystko w repozytorium Git
- 116Egzamin próbny: 20 zadań, dwie godziny, zero podpowiedzizadania w stylu egzaminów RHCSA i LFCS na czas
- 117Co dalej: certyfikaty, laboratorium domowe i pierwsza pracacertyfikaty (RHCSA, LFCS, LPIC-1, CompTIA Linux+), laboratorium domowe, Python, chmura, Kubernetes, jak szukać pierwszej pracy
ODZNAKI
zbieraj XP i odznaki za ukończone lekcjeANALOGIE
jedno pojęcie, jedno porównanieJedna analogia na jedno pojęcie, ta sama przez wszystkie lekcje. Przy każdym nowej lekcji powtarzamy ją jednym zdaniem dla nowych kursantów.
| Pojęcie | Analogia | Pierwszy raz |
|---|---|---|
| Terminal i Bash | okienko w urzędzie i urzędnik za szybą: piszesz wniosek, urzędnik go wykonuje | lekcja 1 |
| Komenda | wniosek do urzędnika: co zrobić i z czym | lekcja 1 |
| Folder i ścieżka | budynek z piętrami i pokojami, ścieżka to adres pokoju | lekcja 2 |
| Przekierowanie | dwa głośniki: odpowiedź do segregatora, skargi do osobnej teczki | lekcja 6 |
Rura (|) | taśma w fabryce: jeden pracownik podaje drugiemu | lekcja 7 |
| Struktura katalogów (FHS) | plan biurowca: recepcja, archiwum, magazyn, kotłownia, zawsze w tym samym miejscu | lekcja 8 |
| Różne powłoki | urzędnicy z różnych urzędów: prawie ten sam język, inny akcent | lekcja 9 |
| vi i jego tryby | pianino z pedałem: te same klawisze grają inaczej zależnie od trybu | lekcja 12 |
| Link symboliczny i twardy | kartka „przeprowadziłem się pod adres X” kontra drugie drzwi do tego samego mieszkania | lekcja 14 |
| Uprawnienia | klucze do pokojów: kto może wejść, kto może przestawiać meble | lekcja 15 |
| Proces | kucharz realizujący jedno zamówienie (program to przepis, proces to gotowanie) | lekcja 19 |
| Zombie | gość wyszedł, a jego rachunek wisi, bo kelner (rodzic) go nie zamknął | lekcja 20 |
| Sygnał | grzeczna prośba o zamknięcie lokalu (SIGTERM) kontra wyłączenie prądu w budynku (SIGKILL) | lekcja 23 |
| systemd i PID 1 | kierownik zmiany, który otwiera zakład i pilnuje każdej maszyny | lekcja 27 |
| Skrypt | przepis kulinarny wykonywany krok po kroku | lekcja 31 |
| Zmienna | pudełko z napisem, do którego coś wkładasz | lekcja 32 |
| Cudzysłowy | koperta, która trzyma kartki razem | lekcja 32 |
| Kod wyjścia | kciuk w górę albo w dół | lekcja 34 |
Warunek if | bramkarz w klubie | lekcja 35 |
| Pętla | taśma przy kasie: to samo dla każdego produktu | lekcja 37 |
| Funkcja | przycisk w windzie | lekcja 40 |
| Tablica | szuflada z ponumerowanymi przegródkami | lekcja 42 |
| Tablica asocjacyjna | szafka w szatni z nazwiskami | lekcja 43 |
set -e | kierowca, który staje przy pierwszej kontrolce | lekcja 50 |
trap | sprzątaczka, która przychodzi zawsze na koniec imprezy | lekcja 51 |
| Montowanie | podłączenie nowego skrzydła budynku do korytarza | lekcja 59 |
| LVM | regały na kółkach zamiast burzenia ścian | lekcja 61 |
| Menedżer pakietów | hurtownia z kurierem, który dowozi też wszystko, czego zamówienie potrzebuje | lekcja 64 |
| Port | numer okienka w urzędzie: ten sam budynek, różne sprawy | lekcja 68 |
| Zapora | ochroniarz na bramie z listą okienek | lekcja 73 |
| Klucz SSH | kłódka u Ciebie na drzwiach serwera, kluczyk w Twojej kieszeni | lekcja 76 |
| Cron | budzik nastawiony na godzinę | lekcja 87 |
| Serwer WWW | recepcja hotelu, która po nazwisku gościa (domenie) wie, do którego pokoju go skierować | lekcja 88 |
| Kontener | gotowy kontener mieszkalny na budowie: wszystko w środku, stawiasz i działa | lekcja 94 |
| Ansible | lista zakupów dla całej ekipy: opisujesz, jak ma być, a nie, co klikać | lekcja 103 |
Te analogie są pod laika. Technik dostaje dokładne nazwy i smaczki w [dla zaawansowanych] i na ekranie.