[{"data":1,"prerenderedAt":816},["ShallowReactive",2],{"page-\u002Flinux":3},{"id":4,"title":5,"body":6,"description":809,"extension":810,"meta":811,"navigation":737,"path":812,"seo":813,"stem":814,"__hash__":815},"content\u002Flinux\u002Findex.md","Learn Linux — Engineering Reference",{"type":7,"value":8,"toc":792},"minimark",[9,14,18,23,51,55,67,71,76,205,209,342,346,472,476,554,558,562,565,569,572,576,579,583,626,630,788],[10,11,13],"h1",{"id":12},"learn-linux-engineering-reference","🐧 Learn Linux — Engineering Reference",[15,16,17],"p",{},"A deep-dive, code-first Linux curriculum for mid-level developers moving to senior roles. Each document is structured around annotated production code blocks, anti-pattern examples, edge cases, and tips — not hand-holding prose.",[19,20,22],"h2",{"id":21},"how-to-use-this-course","How to Use This Course",[24,25,26,34,40,46],"ol",{},[27,28,29,33],"li",{},[30,31,32],"strong",{},"Read sequentially"," for a structured path (01 → 19).",[27,35,36,39],{},[30,37,38],{},"Jump to a chapter"," as a reference when you hit a concept in production.",[27,41,42,45],{},[30,43,44],{},"Run the examples"," — a Linux VM or WSL is your lab.",[27,47,48],{},[30,49,50],{},"Break things in a VM, fix them, repeat.",[19,52,54],{"id":53},"prerequisites","Prerequisites",[56,57,58,61,64],"ul",{},[27,59,60],{},"A Linux installation (bare metal, VM, or WSL2 on Windows).",[27,62,63],{},"A terminal emulator (GNOME Terminal, Konsole, Alacritty, kitty).",[27,65,66],{},"Comfort with basic command-line operations.",[19,68,70],{"id":69},"curriculum","Curriculum",[72,73,75],"h3",{"id":74},"part-i-foundations","Part I — Foundations",[77,78,79,95],"table",{},[80,81,82],"thead",{},[83,84,85,89,92],"tr",{},[86,87,88],"th",{},"#",[86,90,91],{},"Topic",[86,93,94],{},"Why It Matters",[96,97,98,114,128,154,172],"tbody",{},[83,99,100,104,111],{},[101,102,103],"td",{},"01",[101,105,106],{},[107,108,110],"a",{"href":109},"\u002Flinux\u002F01-introduction-and-architecture","Introduction & Architecture",[101,112,113],{},"Kernel vs userspace, syscall mechanics, FHS, virtual filesystems.",[83,115,116,119,125],{},[101,117,118],{},"02",[101,120,121],{},[107,122,124],{"href":123},"\u002Flinux\u002F02-shell-and-command-line","The Shell & Command Line",[101,126,127],{},"Redirection order, pipeline concurrency, exit codes, job control.",[83,129,130,133,139],{},[101,131,132],{},"03",[101,134,135],{},[107,136,138],{"href":137},"\u002Flinux\u002F03-filesystem-hierarchy","Filesystem Hierarchy",[101,140,141,145,146,149,150,153],{},[142,143,144],"code",{},"\u002Fproc","\u002F",[142,147,148],{},"\u002Fsys",", inodes, mounts, ",[142,151,152],{},"fstab",", hard links vs symlinks.",[83,155,156,159,165],{},[101,157,158],{},"04",[101,160,161],{},[107,162,164],{"href":163},"\u002Flinux\u002F04-files-directories-permissions","Files, Directories & Permissions",[101,166,167,168,171],{},"Special bits, ACLs, capabilities, ",[142,169,170],{},"umask",", setgid directories.",[83,173,174,177,183],{},[101,175,176],{},"05",[101,178,179],{},[107,180,182],{"href":181},"\u002Flinux\u002F05-text-processing","Text Processing & Pipelines",[101,184,185,188,189,188,192,188,195,145,198,188,201,204],{},[142,186,187],{},"grep",", ",[142,190,191],{},"sed",[142,193,194],{},"awk",[142,196,197],{},"sort",[142,199,200],{},"uniq",[142,202,203],{},"xargs -0",", pipeline gotchas.",[72,206,208],{"id":207},"part-ii-system-core","Part II — System Core",[77,210,211,221],{},[80,212,213],{},[83,214,215,217,219],{},[86,216,88],{},[86,218,91],{},[86,220,94],{},[96,222,223,244,266,292,314],{},[83,224,225,228,234],{},[101,226,227],{},"06",[101,229,230],{},[107,231,233],{"href":232},"\u002Flinux\u002F06-processes-and-jobs","Processes & Jobs",[101,235,236,237,145,240,243],{},"fork\u002Fexec\u002Fwait, signals, D-state, zombies, ",[142,238,239],{},"nice",[142,241,242],{},"ionice",".",[83,245,246,249,255],{},[101,247,248],{},"07",[101,250,251],{},[107,252,254],{"href":253},"\u002Flinux\u002F07-users-groups-auth","Users, Groups & Authentication",[101,256,257,258,261,262,265],{},"UID\u002FGID model, PAM, ",[142,259,260],{},"sudo",", SSH keys, NSS, ",[142,263,264],{},"-aG"," footgun.",[83,267,268,271,277],{},[101,269,270],{},"08",[101,272,273],{},[107,274,276],{"href":275},"\u002Flinux\u002F08-package-management","Package Management",[101,278,279,145,282,145,285,145,288,291],{},[142,280,281],{},"apt",[142,283,284],{},"dnf",[142,286,287],{},"pacman",[142,289,290],{},"apk",", dependency resolution, partial upgrades.",[83,293,294,297,303],{},[101,295,296],{},"09",[101,298,299],{},[107,300,302],{"href":301},"\u002Flinux\u002F09-storage-and-filesystems","Storage & Filesystems",[101,304,305,306,309,310,313],{},"Partitions, LVM, RAID, ",[142,307,308],{},"fsck",", SMART, ",[142,311,312],{},"dd",", XFS vs ext4.",[83,315,316,319,325],{},[101,317,318],{},"10",[101,320,321],{},[107,322,324],{"href":323},"\u002Flinux\u002F10-networking-fundamentals","Networking Fundamentals",[101,326,327,330,331,188,334,337,338,341],{},[142,328,329],{},"ip",", routing, DNS, ",[142,332,333],{},"ss",[142,335,336],{},"curl",", SSH tunnels, ",[142,339,340],{},"rsync",", firewalls.",[72,343,345],{"id":344},"part-iii-administration","Part III — Administration",[77,347,348,358],{},[80,349,350],{},[83,351,352,354,356],{},[86,353,88],{},[86,355,91],{},[86,357,94],{},[96,359,360,381,407,435,449],{},[83,361,362,365,371],{},[101,363,364],{},"11",[101,366,367],{},[107,368,370],{"href":369},"\u002Flinux\u002F11-systemd-and-services","systemd & Services",[101,372,373,374,377,378,243],{},"Units, drop-ins, ",[142,375,376],{},"daemon-reload",", timers, resource limits, ",[142,379,380],{},"journalctl",[83,382,383,386,392],{},[101,384,385],{},"12",[101,387,388],{},[107,389,391],{"href":390},"\u002Flinux\u002F12-logging-and-monitoring","Logging & Monitoring",[101,393,394,395,188,398,188,401,188,404,243],{},"journald persistence, ",[142,396,397],{},"logrotate",[142,399,400],{},"sar",[142,402,403],{},"atop",[142,405,406],{},"dmesg",[83,408,409,412,418],{},[101,410,411],{},"13",[101,413,414],{},[107,415,417],{"href":416},"\u002Flinux\u002F13-kernel-and-modules","Kernel & Modules",[101,419,420,188,423,426,427,430,431,145,433,243],{},[142,421,422],{},"sysctl",[142,424,425],{},"modprobe",", DKMS, ",[142,428,429],{},"initramfs",", udev, ",[142,432,144],{},[142,434,148],{},[83,436,437,440,446],{},[101,438,439],{},"14",[101,441,442],{},[107,443,445],{"href":444},"\u002Flinux\u002F14-security-and-hardening","Security & Hardening",[101,447,448],{},"UFW\u002Ffirewalld, SELinux\u002FAppArmor, fail2ban, auditd, capabilities.",[83,450,451,454,460],{},[101,452,453],{},"15",[101,455,456],{},[107,457,459],{"href":458},"\u002Flinux\u002F15-performance-and-tuning","Performance & Tuning",[101,461,462,188,465,188,468,471],{},[142,463,464],{},"vmstat",[142,466,467],{},"iostat",[142,469,470],{},"perf",", OOM killer, swappiness, cgroups, BBR.",[72,473,475],{"id":474},"part-iv-production","Part IV — Production",[77,477,478,488],{},[80,479,480],{},[83,481,482,484,486],{},[86,483,88],{},[86,485,91],{},[86,487,94],{},[96,489,490,504,518,540],{},[83,491,492,495,501],{},[101,493,494],{},"16",[101,496,497],{},[107,498,500],{"href":499},"\u002Flinux\u002F16-boot-process-and-runlevels","Boot Process & Runlevels",[101,502,503],{},"GRUB, initramfs, systemd boot, targets, rescue mode, password reset.",[83,505,506,509,515],{},[101,507,508],{},"17",[101,510,511],{},[107,512,514],{"href":513},"\u002Flinux\u002F17-containers-and-namespaces","Containers & Namespaces",[101,516,517],{},"Namespaces, cgroups, Docker\u002FPodman, multi-stage builds, rootless.",[83,519,520,523,529],{},[101,521,522],{},"18",[101,524,525],{},[107,526,528],{"href":527},"\u002Flinux\u002F18-troubleshooting-and-recovery","Troubleshooting & Recovery",[101,530,531,188,534,537,538,243],{},[142,532,533],{},"strace",[142,535,536],{},"lsof",", REISUB, chroot, boot recovery, ",[142,539,308],{},[83,541,542,545,551],{},[101,543,544],{},"19",[101,546,547],{},[107,548,550],{"href":549},"\u002Flinux\u002F19-exercises-and-projects","Exercises & Projects",[101,552,553],{},"8 projects from a hardened web server to a capstone cluster.",[19,555,557],{"id":556},"learning-path-suggestions","Learning Path Suggestions",[72,559,561],{"id":560},"if-youre-a-developer-deploying-to-linux","If you're a developer deploying to Linux",[15,563,564],{},"Read 08 (package management), 10 (networking — ports, firewall), 11 (systemd — running your app as a service), 14 (security — UFW, SSH keys), 17 (containers). Do exercise 4 (hardened web server).",[72,566,568],{"id":567},"if-youre-an-aspiring-sysadmin","If you're an aspiring sysadmin",[15,570,571],{},"Read 09 (storage, LVM), 11 (systemd), 12 (logging), 13 (kernel), 15 (performance), 16 (boot), 18 (troubleshooting). Do exercises 5–7 (monitoring, backup, cluster). Bookmark 18 — you'll need it at 3 AM.",[72,573,575],{"id":574},"if-youre-preparing-for-lpicrhcsa","If you're preparing for LPIC\u002FRHCSA",[15,577,578],{},"Read 03–12 (filesystem, permissions, processes, users, packages, storage, networking, systemd, logging). Then 13–16 (kernel, security, performance, boot). Do all exercises in 19.",[19,580,582],{"id":581},"companion-resources","Companion Resources",[56,584,585,594,602,610,618],{},[27,586,587,593],{},[107,588,592],{"href":589,"rel":590},"https:\u002F\u002Fwiki.archlinux.org",[591],"nofollow","Arch Wiki"," — the best Linux reference, distro-agnostic.",[27,595,596,601],{},[107,597,600],{"href":598,"rel":599},"https:\u002F\u002Fman7.org\u002Flinux\u002Fman-pages\u002F",[591],"Linux man pages online"," — authoritative man pages.",[27,603,604,609],{},[107,605,608],{"href":606,"rel":607},"https:\u002F\u002Fwww.freedesktop.org\u002Fwiki\u002FSoftware\u002Fsystemd\u002F",[591],"systemd documentation"," — the init system reference.",[27,611,612,617],{},[107,613,616],{"href":614,"rel":615},"https:\u002F\u002Fwww.kernel.org",[591],"Linux Kernel Archives"," — kernel source, docs.",[27,619,620,625],{},[107,621,624],{"href":622,"rel":623},"https:\u002F\u002Fexplainshell.com",[591],"explainshell.com"," — paste a command, see what each part does.",[19,627,629],{"id":628},"tooling","Tooling",[631,632,634],"code-wrapper",{"language":633},"bash",[635,636,640],"pre",{"className":637,"code":638,"language":633,"meta":639,"style":639},"language-bash shiki shiki-themes github-light github-dark","# Essential packages (Debian\u002FUbuntu):\nsudo apt update && sudo apt install -y \\\n    htop iotop iftop tmux tree jq strace ltrace \\\n    net-tools dnsutils curl wget git vim\n\n# Essential packages (RHEL\u002FFedora):\nsudo dnf install -y htop iotop tmux tree jq strace \\\n    net-tools bind-utils curl wget git vim\n","",[142,641,642,651,682,711,732,739,745,772],{"__ignoreMap":639},[643,644,647],"span",{"class":645,"line":646},"line",1,[643,648,650],{"class":649},"sdCPZ","# Essential packages (Debian\u002FUbuntu):\n",[643,652,654,657,661,664,668,670,672,675,679],{"class":645,"line":653},2,[643,655,260],{"class":656},"sIsaT",[643,658,660],{"class":659},"sJ6F3"," apt",[643,662,663],{"class":659}," update",[643,665,667],{"class":666},"ssxIu"," && ",[643,669,260],{"class":656},[643,671,660],{"class":659},[643,673,674],{"class":659}," install",[643,676,678],{"class":677},"snvgF"," -y",[643,680,681],{"class":677}," \\\n",[643,683,685,688,691,694,697,700,703,706,709],{"class":645,"line":684},3,[643,686,687],{"class":659},"    htop",[643,689,690],{"class":659}," iotop",[643,692,693],{"class":659}," iftop",[643,695,696],{"class":659}," tmux",[643,698,699],{"class":659}," tree",[643,701,702],{"class":659}," jq",[643,704,705],{"class":659}," strace",[643,707,708],{"class":659}," ltrace",[643,710,681],{"class":677},[643,712,714,717,720,723,726,729],{"class":645,"line":713},4,[643,715,716],{"class":659},"    net-tools",[643,718,719],{"class":659}," dnsutils",[643,721,722],{"class":659}," curl",[643,724,725],{"class":659}," wget",[643,727,728],{"class":659}," git",[643,730,731],{"class":659}," vim\n",[643,733,735],{"class":645,"line":734},5,[643,736,738],{"emptyLinePlaceholder":737},true,"\n",[643,740,742],{"class":645,"line":741},6,[643,743,744],{"class":649},"# Essential packages (RHEL\u002FFedora):\n",[643,746,748,750,753,755,757,760,762,764,766,768,770],{"class":645,"line":747},7,[643,749,260],{"class":656},[643,751,752],{"class":659}," dnf",[643,754,674],{"class":659},[643,756,678],{"class":677},[643,758,759],{"class":659}," htop",[643,761,690],{"class":659},[643,763,696],{"class":659},[643,765,699],{"class":659},[643,767,702],{"class":659},[643,769,705],{"class":659},[643,771,681],{"class":677},[643,773,775,777,780,782,784,786],{"class":645,"line":774},8,[643,776,716],{"class":659},[643,778,779],{"class":659}," bind-utils",[643,781,722],{"class":659},[643,783,725],{"class":659},[643,785,728],{"class":659},[643,787,731],{"class":659},[789,790,791],"style",{},"html pre.shiki code .sdCPZ, html code.shiki .sdCPZ{--shiki-default:#6A737D;--shiki-github-dark:#6A737D}html pre.shiki code .sIsaT, html code.shiki .sIsaT{--shiki-default:#6F42C1;--shiki-github-dark:#B392F0}html pre.shiki code .sJ6F3, html code.shiki .sJ6F3{--shiki-default:#032F62;--shiki-github-dark:#9ECBFF}html pre.shiki code .ssxIu, html code.shiki .ssxIu{--shiki-default:#24292E;--shiki-github-dark:#E1E4E8}html pre.shiki code .snvgF, html code.shiki .snvgF{--shiki-default:#005CC5;--shiki-github-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .github-dark .shiki span {color: var(--shiki-github-dark);background: var(--shiki-github-dark-bg);font-style: var(--shiki-github-dark-font-style);font-weight: var(--shiki-github-dark-font-weight);text-decoration: var(--shiki-github-dark-text-decoration);}html.github-dark .shiki span {color: var(--shiki-github-dark);background: var(--shiki-github-dark-bg);font-style: var(--shiki-github-dark-font-style);font-weight: var(--shiki-github-dark-font-weight);text-decoration: var(--shiki-github-dark-text-decoration);}",{"title":639,"searchDepth":653,"depth":653,"links":793},[794,795,796,802,807,808],{"id":21,"depth":653,"text":22},{"id":53,"depth":653,"text":54},{"id":69,"depth":653,"text":70,"children":797},[798,799,800,801],{"id":74,"depth":684,"text":75},{"id":207,"depth":684,"text":208},{"id":344,"depth":684,"text":345},{"id":474,"depth":684,"text":475},{"id":556,"depth":653,"text":557,"children":803},[804,805,806],{"id":560,"depth":684,"text":561},{"id":567,"depth":684,"text":568},{"id":574,"depth":684,"text":575},{"id":581,"depth":653,"text":582},{"id":628,"depth":653,"text":629},"A deep-dive, code-first Linux reference for mid-level developers moving to senior roles. 19 chapters covering architecture, the shell, filesystem, processes, users, permissions, networking, storage, systemd, package management, kernel, security, performance, troubleshooting, and a capstone — built around production patterns, edge cases, and annotated code.","md",{},"\u002Flinux",{"title":5,"description":809},"linux\u002Findex","AA4JOCu0gqq611QMny433fLrmRzfTPQriiVYm2m095U",1789924650241]