Linux guides
193 guides.
How to Write Portable POSIX Shell Scripts
Write shell scripts that run correctly under dash, BusyBox sh, and Bash by avoiding Bashisms, using POSIX constructs, and linting with shellcheck.
How to Write Bash Functions Properly
Learn to write reliable bash functions: safe argument handling, correct return values, proper use of local, error handling with set -e, and clean naming conventions.
How to Use a YubiKey on Linux
Use a YubiKey on Linux for PIV SSH, FIDO2 sudo and login via PAM, GPG smart card subkeys, and SSH through gpg-agent — step by step.
How to Use tldr for Quick Command Help
Install tealdeer or the Node.js tldr client, populate the offline cache, and look up practical command examples faster than man pages allow.
How to Use ripgrep (rg) Instead of grep
ripgrep (rg) is a fast, Rust-powered grep replacement with gitignore support built in. Learn installation, regex syntax, and the most useful flags.
How to Use jq for JSON on the Command Line
Learn to filter, transform, and reshape JSON on the command line with jq — covering selectors, map/select, object construction, and real API pipelines.
How to Use fzf, the Fuzzy Finder
Install and configure fzf to fuzzy-search files, shell history, processes, and git branches — with shell integration for Bash, Zsh, and Fish.
How to Use fd Instead of find
Learn to use fd, the modern find alternative: friendlier syntax, smart defaults, .gitignore support, and parallel command execution with --exec.
How to Use bat as a Better cat
Learn how to use bat as a modern replacement for cat, with syntax highlighting, line numbers, paging control, and Git diff integration on Linux.
How to Tune PostgreSQL for Performance
Tune PostgreSQL for production by configuring shared_buffers, work_mem, autovacuum, index hygiene, and pg_stat_statements query profiling — with per-distro commands.
How to Build a WireGuard Mesh Between Servers
Build a WireGuard mesh VPN across multiple servers: key generation, per-node configs, AllowedIPs routing logic, NAT traversal, firewall rules, and full verification.
How to Set Up Unbound as a Recursive DNS Resolver
Install Unbound, configure root hints and DNSSEC validation, and point your LAN at a private recursive DNS resolver — no upstream forwarder required.
How to Set Up Tailscale on Linux
Install Tailscale on Linux, authenticate devices, configure ACLs, and enable MagicDNS to build a secure WireGuard mesh VPN in minutes.
How to Run Rootless Containers with Podman
Run OCI containers without root or a daemon. Learn Podman installation, user namespace setup, rootless networking, and systemd Quadlet unit files for production use.
How to Set Up Pi-hole on a Linux Server
Set up Pi-hole on Linux for network-wide ad and tracker blocking — covers installation, blocklists, gravity updates, conditional forwarding, and DHCP.
How to Configure nginx as a Reverse Proxy
Configure nginx as a reverse proxy: proxy_pass basics, correct header forwarding, WebSocket upgrade handling, and TLS termination with Let's Encrypt.
How to Set Up Kubernetes with k3s
Set up a lightweight Kubernetes cluster with k3s on Linux: single-node or multi-node, kubectl config, and your first real deployment in under 30 minutes.
How to Set Up HiDPI and 4K Displays on Linux
Configure HiDPI and 4K scaling on Linux across GNOME, KDE, Sway, and X11—including fractional scaling and mixed-DPI multi-monitor setups.
How to Set Up and Use Docker Compose
Learn how to write Compose files, define networks and volumes, manage environment variables, and control multi-container Docker stacks with the modern Compose CLI plugin.
How to Add Two-Factor Authentication to SSH
Enforce two-factor authentication on SSH using PAM and Google Authenticator TOTP, with YubiKey alternatives and per-user exemption patterns for automation accounts.
How to Scan a Linux System for Malware with ClamAV
Install ClamAV on Linux, update virus signatures with freshclam, run on-demand and scheduled scans, and verify detection works with the EICAR test file.
How to Reset the Linux Network Stack
Reset a broken Linux network stack without rebooting: restart NetworkManager or systemd-networkd, flush the DNS cache, renew DHCP leases, and clear stale routes.
How to Recover Deleted Files on Linux with PhotoRec
Accidentally deleted files on Linux? PhotoRec scans raw disk sectors to recover documents, images, and more — no filesystem needed. Here's exactly how.
How to Protect nginx with fail2ban
Build custom fail2ban filters for nginx to block bad bots, brute-force attempts, and scanners — with tuned ban times and firewall backend configuration.
How to Observe a Linux System with eBPF
Use bpftrace one-liners and BCC tools to trace syscalls, I/O latency, CPU flame graphs, and TCP sessions on a live Linux system with minimal overhead.
Master Vim: A Practical Path Beyond the Basics
Go beyond the basics: master Vim buffers, registers, macros, and the help system, then add only the plugins that genuinely earn their place.
How to Manage Dotfiles with GNU Stow
Use GNU Stow to turn a Git repository into a symlink farm for your dotfiles — deploy any config to a new Linux machine in under a minute.
Linux vs macOS: How They Compare
A practical comparison of Linux and macOS for developers and switchers: terminal tools, package managers, hardware support, and daily workflow differences.
How to Learn Regular Expressions on Linux
Learn regex on Linux from the ground up: character classes, anchors, quantifiers, and hands-on practice with grep, sed, awk, and ripgrep.
How to Install Zsh and Oh My Zsh
Install Zsh and Oh My Zsh on Linux, set Zsh as your default shell, configure Powerlevel10k, and add syntax highlighting and autosuggestion plugins.
How to Install Zorin OS for Windows Switchers
Install Zorin OS on any PC for a Windows-like Linux experience — bootable USB, disk partitioning, layout chooser, pre-installed apps, and first troubleshooting steps.
How to Install Traefik as a Reverse Proxy
Install Traefik v3 as a Docker-based reverse proxy with automatic Let's Encrypt TLS, static and dynamic config, and label-driven service routing.
How to Install and Use the Fish Shell
Install Fish shell on Linux, set it as your default, and learn abbreviations, autosuggestions, and how to migrate your bash habits in one practical guide.
How to Install Rocky Linux on a Server
Install Rocky Linux 9 on a server with correct partitioning, static networking, a minimal software profile, and post-install hardening steps.
How to Install and Configure Redis
Install Redis on Debian, Ubuntu, Fedora, and Arch; configure persistence, memory limits, authentication, and manage the service with systemd for production use.
How to Install RabbitMQ on Linux
Install RabbitMQ on Debian, Ubuntu, Fedora, Rocky, and Arch using official repos, enable the management UI, create users, and test a live queue.
How to Install Prometheus and Grafana on Linux
Install Prometheus and Grafana on Linux, configure node_exporter scraping, connect the datasource, and build your first system metrics dashboard.
How to Install Pop!_OS
Install Pop!_OS step by step: pick the right NVIDIA or Intel ISO, write a bootable USB, configure disk encryption, and complete day-one setup.
How to Install NixOS
Install NixOS from scratch: partition disks, write configuration.nix, pick a channel, run nixos-install, and master the nixos-rebuild workflow for atomic system changes.
How to Install Manjaro Linux
Install Manjaro Linux the right way: verify the ISO, run the Calamares installer, pick a kernel, configure drivers, and harden your new system in minutes.
How to Set Up HAProxy as a Load Balancer
Set up HAProxy as an HTTP load balancer with active health checks, stick tables for session persistence, and a live stats dashboard — step by step.
How to Install Debian 12 (Bookworm)
Step-by-step walkthrough of the Debian 12 Bookworm installer: disk partitioning, tasksel, GRUB setup, and essential post-install configuration.
How to Install Caddy: The TLS-Automatic Web Server
Install Caddy web server, configure the Caddyfile, get automatic HTTPS from Let's Encrypt, and set up reverse proxying in under 15 minutes.
How to Fix Screen Tearing on Linux
Fix screen tearing on Linux for Intel, AMD, and NVIDIA GPUs using TearFree, Force Composition Pipeline, and compositor settings on X11 and Wayland.
How to Fix dpkg "Broken Packages" Errors
Fix dpkg broken package errors step by step: configure pending packages, repair dependencies with apt --fix-broken, force-remove stuck packages, and rebuild the dpkg database.
How to Fix "Could not get lock /var/lib/dpkg/lock"
Fix the /var/lib/dpkg/lock error safely: identify the process holding the lock, handle stale files, and repair the package database without causing corruption.
How to Detect Rootkits with rkhunter
Install rkhunter, build a clean file-property baseline, tune the config to cut false positives, and automate daily scans with a systemd timer.
Wayland vs X11: How to Choose and Configure Each
Know when to run Wayland or X11, how to check your current session, switch at login with GDM/SDDM/LightDM, and handle NVIDIA and XWayland edge cases.
How to Configure ModSecurity as a Web Application Firewall
Install ModSecurity with OWASP CRS on Apache or Nginx, run it in detection mode to catch false positives, tune exclusions, then enforce blocking.
How to Benchmark Disk Performance with fio
Learn to benchmark Linux disk performance with fio: writing job files, testing latency and throughput, and interpreting IOPS and percentile output correctly.
How to Audit Linux Hardening with Lynis
Run Lynis to audit your Linux server, interpret the hardening index and warning output, and work through findings from critical to low-effort wins.
ZFS on Linux: The Basics
Set up OpenZFS on Linux: create pools with mirroring or RAID-Z, manage datasets with compression and quotas, and use snapshots for instant backups.
X11 Programming with the Athena Widgets
Build a working X11 GUI application using Xlib, the Xt Intrinsics, and the Athena widget set — covering the full stack from wire protocol to compiled binary.
X11 Pixmaps and Bitmaps
Learn X11 XPM and XBM image formats: file structure, creation with ImageMagick, loading via Xlib/libxpm in C, viewing tools, and when to migrate to PNG or SVG.
WSL: Run Linux on Windows
Install WSL2 on Windows 10 or 11, pick a Linux distro, access files across both systems, and enable systemd for full service management.
Writing Technical Documentation (the Linux way)
Write and publish Linux technical documentation using Markdown, AsciiDoc, man pages, DocBook, pandoc, and MkDocs—with CI integration and practical examples.
Windows to Linux: App Alternatives for Everything
A practical mapping of Windows software to Linux equivalents covering office, photo editing, audio production, development tools, and gaming.
What Is Arch Linux? (And Should You Use It)
Arch Linux is a rolling-release, DIY distribution built on minimal defaults and user control. Learn what it demands and whether it fits your workflow.
Webmin: The Complete Setup Guide
Install Webmin on Debian/Ubuntu and RHEL-family Linux, configure core modules, and harden it with TLS, 2FA, and IP restrictions for production use.
Vim for Beginners
Learn Vim's modal editing model from scratch: modes, movement, editing, saving, search, and the essential commands every Linux user needs to know.
How to Use tmux
Master tmux sessions, windows, panes, detach/reattach, and a practical ~/.tmux.conf so you can manage persistent terminal workflows like a pro.
How to Use the ip Command
Master the ip command to manage interfaces, addresses, routes, and ARP neighbours — the modern replacement for ifconfig, route, and arp on Linux.
How to Upgrade to a New Distro Release
Step-by-step in-place distro upgrades: Ubuntu/Debian do-release-upgrade, Fedora dnf system-upgrade, and Arch Linux rolling upkeep, with verification and recovery tips.
Understanding Linux File Permissions
Master Linux file permissions from scratch: understand rwx bits, owner/group/other classes, chmod numeric and symbolic modes, chown, and the sticky bit.
Understanding Linux Load Average
Load average measures scheduler demand—not CPU usage. Learn what the three numbers really mean, how to interpret them per CPU count, and how to separate CPU from I/O load.
Ubuntu vs Debian: Which Should You Use?
Debian and Ubuntu share a foundation but differ on release cadence, package freshness, and default tooling. Here's how to pick the right one for your workload.
How to Tune Kernel Parameters with sysctl
Learn how to tune Linux kernel parameters at runtime and permanently using sysctl and /etc/sysctl.d, with practical network and VM tunables explained.
Try Linux Without Installing: Live USB Guide
Run Linux from a flash drive without touching your hard drive. This guide covers creating a live USB with Ventoy or Etcher, enabling persistence, and testing hardware compatibility.
How to Troubleshoot Network Connectivity
Diagnose Linux network problems layer by layer using ip, ping, traceroute, ss, and dig — from interface state to DNS resolution.
Touchscreen Configuration on Linux
Configure Linux touchscreens end-to-end: verify libinput detection, calibrate under Wayland and X11, map to the right display, and enable multi-touch gestures.
The X Window System Explained
Understand how X11 actually works — X server, clients, display managers, window managers, compositors — and how Wayland's architecture differs and why it matters.
The Linux Framebuffer Console
Understand Linux framebuffer internals, the fbdev-to-DRM/KMS evolution, and how to set a crisp high-resolution console with the right kernel parameters.
The History of Berkeley Unix (BSD)
From Bell Labs to Berkeley to the courtroom: how BSD Unix was built, fought over, and shaped the open-source software world that Linux users live in today.
TCP/IP Protocols Explained
Understand IP, TCP, UDP, ICMP, ports, and the four-layer model — the core networking concepts every Linux sysadmin must know before touching a firewall or debugg
How to Take Screenshots on Linux
Learn how to take screenshots on Linux using GNOME and KDE built-in tools, Flameshot with annotations, and Wayland-compatible command-line utilities.
Sync Phones and Handheld Devices with Linux
Sync Android phones with Linux using MTP for file transfer and KDE Connect or GSConnect for wireless integration. Includes PalmOS history and CalDAV setup.
How to Switch from Windows to Linux
A practical migration plan covering backups, dual-booting, app replacements, and Linux habits — for Windows users making the switch for the first time.
SSH: The Complete Guide
Master SSH from first login to port forwarding: key-based auth, client config files, the SSH agent, and local/remote tunnels on any Linux distribution.
Squid Debug Logging: Turn It On and Read It
Learn how to enable Squid debug_options, navigate cache.log and access.log, and trace the exact cause of a denied or failed proxy request.
Set Up Squid as a Caching Web Proxy
Install and configure Squid as a forward caching proxy on Linux — covering ACLs, cache tuning, firewall rules, and explicit vs transparent intercept mode.
Squid ACL Configuration Explained
Learn how Squid proxy ACL definitions and http_access rules work, why ordering is critical, and avoid the most common allow/deny configuration mistakes.
Software RAID on Linux with mdadm
Build and manage Linux software RAID arrays with mdadm: choose the right RAID level, create and persist the array, monitor health, replace a failed disk, and handle boot safely.
Shadow Passwords Explained
Learn why /etc/shadow exists, how to read its nine fields, which hashing algorithms are current, and how to manage password aging with chage, pwconv, and pwck.
How to Set Up Multiple Monitors on Linux
Configure multiple monitors on Linux: physical arrangement, per-display resolution, refresh rates, and scaling on both X11 (xrandr) and Wayland (GNOME, KDE, Sway, kanshi).
How to Set Up KVM Virtualization
Set up KVM/QEMU virtualization on Linux with libvirt and virt-manager. Covers hardware checks, installation on Ubuntu, Fedora, and Arch, networking, and creating VMs.
How to Set Up GPG Encryption
Generate GPG key pairs, encrypt and decrypt files, sign data, manage your keyring, and verify signatures on Debian, Fedora, and Arch Linux.
How to Set Up Bluetooth on Linux
Install BlueZ, pair Bluetooth devices from the command line or GUI, configure audio profiles with PipeWire, and fix the most common Bluetooth issues on Linux.
How to Set Up an NFS Server
Set up a production-ready NFSv4 server on Linux: configure exports, mount shares on clients, lock down permissions, and tune read/write performance.
How to Set Up a VPN with WireGuard
Set up a WireGuard VPN on Linux from scratch: generate keys, configure server and client peers, enable routing, and verify a live encrypted tunnel.
How to Set Up a Samba File Share
Step-by-step guide to installing Samba, creating a share user, configuring smb.conf, opening the firewall, and mounting the share from Windows and Linux clients.
How to Set Up a LEMP Stack
Install and configure Nginx, MariaDB, and PHP-FPM on a fresh Linux server. Covers Debian, Ubuntu, Fedora, RHEL, Rocky, and Arch with systemd service management.
How to Set Up a Firewall with UFW
Learn to configure UFW on Linux: set secure default policies, open only the ports you need, read existing rules, and verify your firewall is working correctly.
How to Set Up a Firewall with firewalld
Learn how to configure firewalld using zones, services, rich rules, and source bindings — with a clear explanation of runtime vs permanent changes.
How to Set Up a DNS Server with BIND
Install and configure BIND 9 as a caching resolver and authoritative nameserver, with forward/reverse zones, common resource records, and firewall rules.
How to Set Up a DHCP Server on Linux
Install and configure ISC DHCP or Kea on Linux: define scopes, set static reservations, inspect leases, open firewall ports, and hook into dynamic DNS.
SELinux Explained (and How to Live With It)
Learn SELinux modes, file contexts, booleans, and how to fix denials with restorecon, setsebool, and audit2allow — without ever disabling it.
A Practical Guide to sed and awk
Learn sed and awk through practical examples: substitutions, in-place edits, field splitting, pattern-action programs, and real pipeline use cases.
How to Secure Webmin
Harden Webmin against attack: restrict access by IP, enforce HTTPS with valid certs, set up TOTP two-factor auth, integrate Fail2ban, and lock down modules.
How to Run a Node.js App in Production with PM2
Deploy a Node.js application with PM2: process management, ecosystem config files, systemd startup integration, and structured log rotation.
RHEL vs Rocky vs AlmaLinux
CentOS is gone. Here's how RHEL, Rocky Linux, and AlmaLinux compare on governance, compatibility, certifications, and which to choose for production.
Remote X Sessions with XDMCP (and modern alternatives)
Learn how XDMCP works, why it is insecure, and how to replace it with X2Go, VNC-over-SSH, xrdp, or native Wayland remoting on modern Linux systems.
How to Recover a Forgotten Root Password
Forgot the Linux root password? Boot into single-user mode or use rd.break to reset it safely, with steps for Debian, Fedora/RHEL, and Arch.
How to Read Logs with journalctl
Learn to filter systemd journal logs by unit, time, and priority with journalctl, follow logs live, and manage disk usage on any modern Linux system.
How to Profile Linux Performance
Learn to profile Linux performance using the USE method, perf stat, perf record, flame graphs, and scheduler tracing to systematically find CPU, memory, and I/O bottlenecks.
Port Forwarding on Linux
Forward ports on Linux using nftables DNAT rules, SSH local/remote tunnels, and router NAT configuration — with persistence and troubleshooting tips.
How to Play Games on Linux with Steam and Proton
Install Steam, enable Proton, use ProtonDB to check compatibility, and set up Lutris to run Windows games on any major Linux distro.
Pipes and Redirection in Bash
Master Bash pipes and redirection: learn stdin, stdout, stderr, |, >, >>, 2>&1, /dev/null, tee, xargs, and how to build reliable command pipelines.
Multicast Networking on Linux
Configure IPv4/IPv6 multicast on Linux: addressing, IGMP group membership, interface flags, and live testing with iperf3 and socat.
MTU and Packet Fragmentation Explained
Learn what MTU is, how path MTU discovery works, why it breaks, and how to diagnose and fix MTU mismatches on Linux with practical commands and examples.
How to Mount and Unmount Drives
Learn how to mount and unmount drives on Linux using mount, umount, and /etc/fstab with UUIDs for reliable, persistent automounting across reboots.
How to Monitor Processes on Linux
Learn to monitor Linux processes with ps, top, htop, and btop. Covers reading process states, killing processes safely, and tuning CPU priority with nice/renice.
Master the grep Command
Learn grep from plain string searches to recursive directory scans, regular expressions, context flags, and practical log-analysis one-liners on Linux.
How to Manage Services with systemctl
Learn to start, stop, enable, disable, and mask Linux services using systemctl, plus how to read failures and diagnose problems with journalctl.
How to Manage Disk Partitions on Linux
Learn to create, resize, and format Linux disk partitions using fdisk and parted, covering GPT, ext4/xfs/btrfs filesystems, fstab, and safe resizing procedures.
LVM: The Logical Volume Manager Explained
Learn how LVM works — Physical Volumes, Volume Groups, Logical Volumes — then create, resize, and snapshot volumes with real commands on any major Linux distro.
Linux Troubleshooting: A Practical First-Response Guide
A repeatable first-response method for Linux problems: read the error carefully, query journalctl, isolate the triggering change, search precisely, and ask for help effectively.
Building Linux Thin Clients
Deploy Linux thin clients using modern LTSP, PXE boot, and NFS root setups. Covers server config, squashfs images, UEFI/BIOS PXE, and Wayland caveats.
Linux Server Security Checklist
A step-by-step Linux server hardening checklist: secure SSH, firewall rules, automatic updates, service auditing, fail2ban, and intrusion detection for any internet-facing server.
Linux on Old and Low-RAM Hardware
Breathe life into old hardware with lightweight Linux desktops, proper swap file setup, zram compression, and I/O tuning for machines with 1–4 GB of RAM.
Linux Networking Fundamentals
Master Linux networking from the ground up: interfaces, IP addressing, gateways, DNS, and the essential tools ip, ping, and ss with distro-specific examples.
Linux Hardware Compatibility: What Works and How to Check
Check GPU, Wi-Fi, and printer compatibility before installing Linux. Learn lspci, lsusb, firmware packages, and the best lookup resources for your hardware.
Linux for Astronomy
Set up KStars, Stellarium, and INDI on Linux for telescope control, automated imaging sequences, and image stacking with Siril.
The Linux File System for Beginners
Learn how Linux organizes files into a single directory tree: what / vs /home means, how mount points work, and where binaries, configs, and logs live.
Linux DNS Configuration
Configure Linux DNS end-to-end: understand /etc/resolv.conf, manage systemd-resolved, use /etc/hosts for static overrides, and verify with dig.
The Linux Command Line for Absolute Beginners
Learn the Linux command line from scratch: what the shell is, how to navigate with cd/ls/pwd, manage files, and master your first essential commands.
Limit Bandwidth on Linux with tc
Shape Linux network traffic with tc, HTB qdiscs, and fq_codel. Enforce per-interface and per-host bandwidth limits that survive reboots via systemd.
Lightweight Window Managers and Desktops
Install and configure i3, Sway, and Openbox on Linux. Learn tiling vs floating WMs, minimal session setup, status bars, and autostart with systemd.
How to Keep Linux Updated
Learn how to safely update Debian, Ubuntu, Fedora, RHEL, and Arch Linux systems using apt, dnf, and pacman — including how to hold or exclude packages.
IP Masquerading and NAT on Linux
Set up IP masquerading and NAT on Linux using nftables to turn any machine into a router. Covers ip_forward, SNAT, DNAT, and iptables equivalents.
An Introduction to TCP/IP
Learn how TCP/IP works — IP addressing, routing, TCP vs UDP, ports, DNS, and the layered model — with practical Linux commands to see it all in action.
An Introduction to eBPF
Learn what eBPF is, how the kernel verifier keeps it safe, and how to use bpftrace to trace syscalls, disk I/O, and CPU scheduling with working examples.
An Introduction to cgroups
Learn how cgroups v2 work, how systemd maps services onto the cgroup tree, and how to set CPU, memory, and I/O limits for processes and services.
How to Install Ubuntu 24.04 LTS Desktop
Install Ubuntu 24.04 LTS Desktop step by step: create a bootable USB, partition your disk, set up your user account, and apply first-boot updates.
How to Install Software on Linux
Learn how to install software on Linux using apt, dnf, pacman, Flatpak, Snap, and AppImage — with clear guidance on when to use each method.
How to Install and Configure PostgreSQL
Install PostgreSQL on Debian, Fedora, or Arch, then configure roles, databases, pg_hba.conf authentication, and secure remote access in clear, production-ready steps.
How to Install NVIDIA Drivers on Linux
Install NVIDIA proprietary drivers on Ubuntu, Debian, Fedora, and Arch Linux. Covers driver selection, Wayland setup, and troubleshooting common failures.
How to Install MySQL or MariaDB
Install MySQL or MariaDB on Debian, Fedora, or Arch; secure it with mysql_secure_installation; create users with least-privilege grants; and automate backups.
How to Install Linux Mint
Step-by-step walkthrough to install Linux Mint alongside or instead of Windows — from downloading the ISO to applying your first updates.
Install Linux in a Virtual Machine
Install Linux in VirtualBox or KVM (GNOME Boxes/virt-manager), configure guest additions for clipboard and display, and take snapshots for safe experimentation.
How to Install Fonts on Linux
Install fonts on Linux for a single user or system-wide, understand fontconfig's directory layout, and refresh the font cache so apps pick them up immediately.
How to Install Fedora Workstation
Step-by-step guide to installing Fedora Workstation 40: create a bootable USB with Fedora Media Writer, partition your disk in Anaconda, and complete first-run setup.
How to Install Docker on Linux
Install Docker Engine on Ubuntu, Debian, Fedora, RHEL, or Arch from the official repository, configure the docker group, run a first container, and get Compose working.
How to Install Arch Linux
Install Arch Linux using the guided archinstall script or the full manual method — covering partitioning, base system, bootloader, and first-boot setup.
How to Install the Apache Web Server
Install Apache on Linux, enable modules, configure named virtual hosts, use .htaccess, and verify your setup — covering Debian, Ubuntu, Fedora, RHEL, and Arch.
How to Install and Configure nginx
Install nginx, configure server blocks and document roots, set up a reverse proxy to a local application, and verify everything with nginx -t and curl.
How to Install and Configure fail2ban
Install fail2ban, configure the SSH jail, tune ban times, write custom filters, and verify bans are working — on Debian, Fedora, and Arch.
HP Printers and Hardware on Linux
Install HPLIP and CUPS on Linux to print and scan with HP printers. Covers USB and network setup, SANE scanning, and common troubleshooting steps.
How to Download and Install Linux
Choose a Linux distro, download and verify the ISO, write it to USB with dd or Etcher, then boot and run the graphical installer — covered step by step.
How TCP/IP Networking Actually Works
Trace a TCP connection from socket to wire: routing table lookups, ARP, the three-way handshake, MTU/PMTUD, and how NAT rewrites packets on a Linux gateway.
How to Host a Website on a Linux Server
From a fresh VPS to a live HTTPS site: configure DNS, install Nginx, set up a virtual host, and issue a free Let's Encrypt TLS certificate with Certbot.
How to Harden SSH on Linux
Lock down OpenSSH with key-only auth, disabled root login, user allowlists, and firewall rules. Step-by-step for Ubuntu, Fedora, RHEL, and Arch.
GTK GUI Programming on Linux
Build, run, and package GTK4 applications on Linux using C and Python. Covers the GObject model, signals, Meson builds, .desktop files, and Flatpak.
Git from the Command Line
Learn Git from the terminal: install, configure, init or clone a repo, stage and commit changes, create branches, merge, and push to a remote.
How to Free Up Disk Space on Linux
Recover gigabytes on any Linux system by clearing package caches, trimming the systemd journal, removing old kernels, and hunting large files with ncdu.
Free SSL Certificates with Let’s Encrypt
Issue and auto-renew free TLS certificates with Let's Encrypt and Certbot for Nginx or Apache on Ubuntu, Fedora, and Arch Linux.
How to Diagnose High CPU and Memory Usage
Learn to diagnose Linux CPU and memory problems using top, htop, load average, and the OOM killer log—from spotting runaway processes to preventing OOM kills.
How to Fix Audio Problems on Linux
Fix Linux audio issues step by step: identify PipeWire vs PulseAudio, unmute ALSA channels, select the right output device, reload drivers, and verify hardware.
How to Fix a Broken GRUB Bootloader
Fix a broken GRUB bootloader by booting from live media, chrooting into your installed system, reinstalling GRUB, and regenerating grub.cfg — covers BIOS/MBR and UEFI/GPT.
10 Things to Do After Installing Linux
Ten essential post-install steps for any Linux desktop: updates, drivers, firewall, codecs, backups, SSH hardening, and service cleanup — all with modern commands.
How to Find Files on Linux
Learn to find files on Linux using find, locate, and fd — covering searches by name, size, modification time, and running actions on results.
Esperanto and Multilingual Support on Linux
Add Esperanto locale, keyboard layout, and input methods on Linux. A practical walkthrough covering GNOME, KDE, Wayland, TTY, and Fcitx5 that applies to any language.
How to Encrypt a Disk with LUKS
Encrypt a full disk or individual partition on Linux using LUKS2 and cryptsetup, including key management, boot integration, and header backups.
How to Dual-Boot Linux and Windows
Shrink the Windows partition, install Linux without breaking the bootloader, configure GRUB, and handle Secure Boot — all in the correct order.
How to Customize the GNOME Desktop
Customize GNOME with Tweaks, Extension Manager, GTK and Shell themes, keyboard shortcuts, and fixed workspaces — practical steps for GNOME 44/45.
How to Customize KDE Plasma
Customize KDE Plasma with themes, widgets, activities, and System Settings tweaks. Covers all major distros, Wayland, and config file locations.
Cron Jobs Explained
Master cron job scheduling on Linux: full crontab syntax, environment variables, output logging, and when to use systemd timers instead.
How to Create a systemd Service
Learn to write systemd service unit files from scratch: unit types, dependency directives, restart policies, enabling at boot, and reading logs with journalctl.
How to Configure sudo Safely
Learn to configure sudo securely using visudo, sudoers syntax, per-command restrictions, NOPASSWD, and drop-in files to enforce least-privilege access on Linux.
Configure a Squid Proxy with Webmin
Install Squid and the Webmin Squid module, configure disk and memory caching, set LAN access controls, and verify the proxy is serving cached responses.
How to Configure the SMTP HELO/EHLO Name
Set the correct SMTP HELO/EHLO hostname in Postfix and Sendmail, configure FCrDNS records, and verify your mail server won't be rejected or spam-flagged.
Configure a UPS on Linux with NUT
Install and configure Network UPS Tools (NUT) on Linux to detect your UPS, load the right driver, and trigger a safe automatic shutdown when battery runs low.
How to Configure a Static IP on Linux
Configure a static IP on Linux using Netplan, NetworkManager (nmcli), or systemd-networkd across Ubuntu, Fedora, Debian, and Arch with verified steps.
How to Compile the Linux Kernel
Step-by-step guide to downloading, configuring, compiling, and booting a custom Linux kernel from kernel.org on Debian, Fedora, and Arch Linux.
Common Linux Network Ports Reference
Learn Linux port ranges, read /etc/services, find what's listening with ss and nmap, and apply solid firewall rules to expose or block the right ports.
How to Choose a Linux Distribution
Match a Linux distro to your real needs — desktop, server, rolling vs LTS, hardware quirks, and package ecosystems — without wading through marketing noise.
How to Check Disk Health with SMART
Learn to use smartctl to read SMART attributes, run drive self-tests, and identify early warning signs of HDD and SSD failure before data loss occurs.
How to Change the Webmin Port
Move Webmin off its default port 10000 by editing miniserv.conf, updating your firewall (ufw, firewalld, or nftables), and restarting the service.
C Serial Port Programming on Linux
Learn to open /dev/ttyS* and /dev/ttyUSB* in C, configure raw mode with termios, handle blocking reads, and debug serial link problems on Linux.
A C Programming Tutorial for Linux
Learn C on Linux from hello-world through gcc flags, header files, multi-file projects, make, and the standard library — with real commands and examples.
C Pointers Explained
Understand C pointers from first principles: addresses, dereferencing, pointer arithmetic, arrays, common bugs like null dereferences and dangling pointers, and how to use ASan and Valgrind.
How to Build Software from Source on Linux
Build Linux software from source using configure, make, and make install — with dependency tips, CMake and Meson coverage, and clean-install strategies.
Build an Intranet Server on Linux
Set up a complete small-office intranet on one Linux box: Nginx web server, dnsmasq local DNS, Samba file sharing, and a Wiki.js team wiki.
Btrfs Basics and Snapshots
Learn Btrfs subvolumes, instant copy-on-write snapshots, and safe system rollback — with both manual btrfs commands and Snapper automation.
The Best Linux Distros for Servers
Compare Ubuntu LTS, Debian, AlmaLinux, Rocky Linux, RHEL, Arch, and SLES for server use: support lifecycles, stability trade-offs, and how to choose the right fit.
The Best Linux Distros for Beginners
The best Linux distros for beginners in 2024: Ubuntu, Linux Mint, Fedora, and Pop!_OS compared with honest pros, cons, and setup tips.
Bash Scripting for Beginners
Learn Bash scripting from scratch: shebang lines, variables, conditionals, loops, and arguments, plus a real backup script to tie it all together.
Bash Loops: for, while and until
Learn all three Bash loop types — for, while, and until — with practical, copy-paste examples covering file iteration, counting, polling, and safe line reading.
How to Back Up Your Linux System
Learn how to back up your Linux system using Timeshift, rsync, Borg, and Restic — then tie it all together with a practical 3-2-1 backup routine.
How to Enable Automatic Security Updates
Enable automatic security updates on Debian, Ubuntu, Fedora, and RHEL using unattended-upgrades and dnf-automatic — configured to patch safely without manual effort.
How to Audit a Linux System with auditd
Set up auditd on Linux to track file access, syscalls, and privilege use. Covers persistent rules, file watches, ausearch, and aureport across major distros.
Assembly Language on Linux: A Starter Guide
Write x86-64 assembly on Linux from scratch: install NASM and GAS, learn syscalls, assemble and link a working program, then inspect and debug it.
AppArmor Explained
Learn how AppArmor profiles work, how to switch between enforce and complain mode, create new profiles, and diagnose access denials on Ubuntu, Debian, and Arch.
AI and Artificial-Life Tools on Linux
Set up open-source AI/ML and artificial-life toolkits on Linux: PyTorch, JAX, DEAP, Avida, NetLogo, and RL environments with GPU driver guidance.