Topic
Linux
Linux as it actually shows up at work — not the "hello world" tutorial version. systemd quirks, bash you'll reach for again, filesystem layouts that scale, package managers that won't betray you, and the small operational habits that keep boxes running. Mostly Debian and Ubuntu, with detours through Arch and Alpine when they're the right call.
242 articles in this topic.
Featured posts
-
Dell R720 vs HP DL380 G9: Used Server Knife Fight
Dell R720 or HP DL380 G9 for your home lab? We compare CPU generation, power draw, fan noise levels, iDRAC vs iLO, and which used pizza box wins the fight.
12 min read -
ddrescue vs TestDisk vs PhotoRec
Drive is dying. Which tool do you reach for? ddrescue clones, TestDisk repairs partitions, PhotoRec carves files. They're a workflow, not rivals.
14 min read -
Borg vs Duplicacy: Dedup Backup Wars
Borg is open-source classic with SSH targets. Duplicacy has lock-free multi-source magic but commercial GUI. Here's which backup tool to pick.
13 min read -
KVM/QEMU/libvirt: CLI Workflows
virt-manager is fine, but real homelab automation lives on the command line. virt-install, virsh, cloud-init — provision VMs in seconds, not click-by-click.
11 min read -
fd vs find: Rust Speed vs POSIX Power
fd has sane defaults, parallel walking, and respects .gitignore. find is gnarly but ships everywhere. Here's when each one wins.
11 min read -
Linux Namespaces from Scratch
Containers are just namespaces and cgroups in a trench coat. Build one yourself with unshare and nsenter — no Docker required. Demystifies what actually happens.
15 min read
All Linux articles
- Dell R720 vs HP DL380 G9: Used Server Knife Fight
- ddrescue vs TestDisk vs PhotoRec
- Borg vs Duplicacy: Dedup Backup Wars
- KVM/QEMU/libvirt: CLI Workflows
- fd vs find: Rust Speed vs POSIX Power
- Linux Namespaces from Scratch
- rclone vs Restic: Sync vs Backup
- mtr vs traceroute: Packet Loss
- ZFS Encryption vs LUKS
- iperf3 + nload: Network Diagnosis
- SMART Disk Monitoring with smartmontools
- fio: Real Disk Benchmarking
- Access Docker socket via TCP
- Advanced UFW Techniques: Enhancing Firewall Security
- awk for Log Parsing: 5 Patterns You'll Actually Use
- Bash One-Liners Worth Remembering
- Browser GPU Acceleration on Linux in 2026
- Alsa CLI Volume control
- Compiling on Linux With Low RAM
- Creating Image Slideshows with Voiceovers using FFMPEG
- Differences Between nohup, disown, and & in Linux
- Docker Compose useful commands
- Docker Networking: Connecting to the Host from a Container
- Enable WebGL on Chrome or Firefox
- Executing Commands with Asterisks in Docker
- How to Transfer docker Images Without a Repository
- Install docker on Ubuntu/Debian
- Install & use Doxygen via Docker
- Linux Bash Tips and Tricks pt1
- Linux distribution info & kernel info
- Linux Home Lab Security: Planning for the Unexpected
- linux shell argument list too long rsync or cp
- Linux System Monitoring: Tools and Techniques
- Ollama Memory Management: Why Models Keep Loading
- OpenConnect vs AnyConnect
- Optimizing Ansible for Faster Playbook Execution
- Podman Quadlets: Running Containers Without the Docker Daemon (or Your Sanity)
- Preserving Bash History in Multiple Terminal Windows
- Proxy Chains and Anonymization: What Actually Works and What's Just Theater
- Remove spaces or Edit chracters in filenames
- Repair & Optimize all Mysql Databases one liner
- Restic vs Borg vs Kopia: Backup Tools for People Who've Lost Data Before
- Self-Hosted Email Is Probably a Bad Idea
- Set the Timezone in Ubuntu with timedatectl
- Socat: The Swiss Army Knife of Networking
- ss Is the New netstat (And It's Better)
- SSH keys and secure file copy
- Suricata vs Snort: Intrusion Detection for the Paranoid Home Lab Owner
- Switch Ubuntu to Hardware Enablement (HWE)
- Techniques for Writing Robust, Reliable Bash Scripts
- the lost+found Directory in Linux
- The Role of Antivirus and Endpoint Detection and Response Systems
- Ubuntu Debian packages have been kept back error
- UFW Basics: Setting Up Your Linux Firewall
- Ulimit, Cgroups, and the Art of Stopping Processes From Eating Your Server
- Understanding Docker vs. Full Virtual Machines (VMs)
- Understanding PostgreSQL Connection URIs
- Understanding printf vs echo in Bash
- A Guide to LXC/LXD
- Update a Single Package Using APT
- WireGuard Is Fast, But You're Leaving Performance on the Table
- FRR vs BIRD
- Lima vs Multipass
- tini vs dumb-init vs --init
- Kdenlive vs DaVinci Resolve on Linux
- Kdenlive Proxy Editing on Weak Hardware
- A Guide to Fixing OpenH264 Access Issues
- Kdenlive + OBS Studio: Screencast Pipeline
- ZFS Replication with syncoid + sanoid: The Lazy Admin's Backup
- Kdenlive Basics: Effects You Actually Use
- eBPF for the Curious: Kernel Tracing Without the PhD
- NixOS First Impressions for Pragmatists
- tmux vs Zellij vs Screen: Pick Your Multiplexer
- The Modern Unix Toolkit: fzf, ripgrep, fd, bat, eza
- systemd-nspawn: The Container Runtime Already on Your Box
- RAID Is Not Backup: Rebuild Math
- RAID 6 vs RAID 10: Two Dead Disks
- Incident Response for Self-Hosters
- RAID 0, 1, and 5: Pick One
- Package Management in 2026: apt, brew, nix, and the Friends We Made Along the Way
- Escaping Zim: Migrate to Obsidian
- CVE-2026-31431: The 9-Year Linux Root Bug
- GeForce Now: Cloud Gaming Done Right
- OpenCanary: Honeypots for Your Home Lab
- nftables: Modern Linux Firewalling
- Restic vs Borg vs Kopia: Backups That Actually Deduplicate
- Suricata vs Snort: Network Intrusion Detection That Actually Works
- Sysctl Tuning: The Linux Kernel Settings Nobody Told You About
- Falco: Catch Container Attacks at Runtime
- Cockpit vs Webmin: Web Admin Panels That Don't Make You Cry
- Fail2ban vs CrowdSec: Blocking the Bots Actually Smartly
- 2FA for SSH and sudo via PAM
- Systemd Timers vs Cron: Scheduling That Doesn't Suck
- SSH CA: Finally Ditch authorized_keys
- Wazuh: Open Source SIEM for Your Home Lab
- ZFS vs Btrfs: Which Modern Filesystem Wins?
- SBCs in 2026: Homelab on a Budget
- Podman Quadlets: Systemd-Native Containers
- LUKS Full Disk Encryption on Linux
- Rootless Docker: Run Without Root
- PostgreSQL + Linux: Kernel Tuning That Actually Matters
- Proxmox NAT Bridge: One IP, Many VMs
- Linux Privilege Escalation: The Defensive Playbook
- Adding Extra Swap to Linux
- Bash for loops sequential counting
- Directory FileCount
- Find out whats taking up all the hdd space
- Linux CLI Tarball Extraction — Flags, Formats, Gotchas
- Linux su with custom shell
- Logrotate & Compression
- MySQL CLI: From Connection to Maintenance
- Three ways to upload ISOs to Proxmox
- Recursively delete all empty subdirectories
- Remove all old installed but unused kernels
- Bulk rename files in bash
- When systemd swallows your service logs
- Sed 101
- Why You Should Switch to ZShell (zsh)
- Steam on Linux: It Actually Works Now
- dotenv Files: The Mistakes That Leak Secrets
- Alert Fatigue: Why Your Alerts Are Meaningless
- Shell Setup in 2026: Starship, Plugins, Fish
- MySQL & MariaDB CLI in 2026: What Changed
- Systemd Socket Activation: Start Services Only When Someone Actually Knocks
- make for Project Automation (It's Not Just for C Code)
- Vault vs Infisical: Secrets Management for Teams Who've Learned the Hard Way
- Git Hooks You Should Be Using Locally Right Now
- Running Multiple Ollama Models Without Running Out of RAM
- Bulk File Renaming on Linux: rename, vidir, fd
- Disk Space Tools in 2026: Beyond du and df
- Self-Hoster's Disaster Recovery: When Everything Goes Wrong at Once
- Compression in 2026: zstd Changed the Game
- Healthcheck vs Restart Policy: The Difference Matters
- Linux Suspend and Hibernate: Teaching Your Machine to Take a Nap Without Dying
- Sysctl Tuning: The Linux Kernel Knobs That Actually Matter
- VLAN Basics for Home Labs: Segment Your Network Before It Segments You
- Port Knocking: Simple Obscurity for SSH Access
- Building CLI Tools in Go: Because Shell Scripts Have a Maximum Complexity
- Linux Audio in 2026: PipeWire Replaced Everything
- The Reverse Proxy Timeout That Kills Long Uploads
- Time Is a Lie and Chrony Is Here to Fix It: NTP for Home Labs
- SSH Keys in 2026: Ed25519 Is the Standard
- Why Your VPN Isn't Routing What You Think
- Your First Open Source Contribution: Less Scary Than You Think, More Useful Than You Know
- The Header Your Reverse Proxy Keeps Dropping
- Kernel Live Patching: Security Updates Without the 3am Reboot
- You Should Be Testing Your Restores
- IPv6 on Your Home Lab: You Should Care (Here's Why)
- Tmpfs vs Ramfs: When Your Disk Is Too Slow and Your RAM Is Just Sitting There
- Log Rotation for Self-Hosted Apps
- tcpdump Basics: Capture Traffic Without Wireshark
- AppArmor vs SELinux: Mandatory Access Control Without the Existential Dread
- Your Server Doesn't Know What Random Means (And That's a Problem)
- TCP Keepalives: Why Connections Die and How to Fix It
- Auditd & Audit Logging: Know Exactly Who Touched What on Your Server
- Time Sync on VMs: Why NTP Keeps Drifting
- The MTU Problem Nobody Diagnoses Correctly
- VPN Kill Switch and DNS Leak Prevention: Paranoia, Justified
- BGP in Your Home Lab: Dynamic Routing for People Who've Run Out of Static Routes
- DNS Troubleshooting from the Command Line
- Linux Capabilities: Drop Root Without Breaking Everything
- curl Flags Every Developer Should Know
- Named Pipes (FIFOs) in Shell Scripts
- UFW Advanced: Rate Limiting, Logging, and Rules That Actually Make Sense
- Bash Arrays: The Feature That Makes Scripts Readable
- Bash Process Substitution: What <() and >() Actually Do
- Here Documents vs Here Strings in Bash
- GNU parallel for Embarrassingly Parallel Tasks
- LVM Advanced: Snapshots, Thin Provisioning, and Not Losing Your Data
- SSH Hardening: Lock Down Remote Access Without Locking Yourself Out
- trap in Bash: Clean Up When Your Script Dies
- Docker Volumes vs Bind Mounts: Where Your Data Actually Lives
- Debugging Bash Scripts: set -x and Beyond
- Word Splitting: The Bash Gotcha That Corrupts Filenames
- String Manipulation in Bash (Without sed or awk)
- bash `set -e` Doesn't Work Like You Think
- Bash Arithmetic Without bc
- Linux Audit Log: What's Really Happening on Your Server
- Ventoy: Boot Any OS, Any Time
- Bash Strict Mode: set -euo pipefail Explained
- The sudoers Mistake Everyone Makes Once
- jq One-Liners Every Sysadmin Needs
- Certificate Expiry: Monitor Before the 3 AM Call
- xargs vs while read: Which One and When
- Where Environment Variables Actually Live in Linux
- The Firewall Rule Order That's Breaking Your Setup
- Sticky Bit, Setuid, Setgid: Linux Special Permissions Explained
- Is fail2ban Actually Working? Here's How to Check
- Diagnosing Slow Linux Boot with systemd-analyze
- Docker CMD vs ENTRYPOINT: The Final Answer
- SSHFS: Ditch SCP & Access Remote Files
- How to Actually Read `systemctl status` Output
- SSH Agent Forwarding: How It Works
- Is Your Linux Server Destroying Its SSD?
- journalctl Queries Every Sysadmin Needs
- Why Your SSH Connection Keeps Dropping
- Cleaning Up Docker Disk Space the Right Way
- Why Your Cron Job Is Failing Silently
- SSH Multiplexing: Stop Reconnecting Every Time
- The Linux OOM Killer: Why It's Killing Your App
- find Flags You Keep Forgetting
- The SSH Config File: The Shortcut You're Not Using
- Why the `latest` Docker Tag Is Lying to You
- Why kill -9 Is the Wrong Default
- The umask You've Been Ignoring
- /proc as a Debugging Tool
- zram vs Swap: What's Actually Faster for Low-RAM Servers
- strace for Beginners: See What Any Process Is Doing
- Using the Clipboard from the Linux Terminal
- lsof: The Tool That Shows You Everything
- Docker Exit Codes: Why Your Container Keeps Restarting
- CPU and I/O Priority with nice and ionice
- Linux File Descriptor Limits: When 1024 Isn't Enough
- Why Your Docker Logs Are Eating Your Disk
- The `at` Command: One-Time Scheduled Tasks in Linux
- Why Your Docker Container Ignores Ctrl+C
- Understanding and Optimizing Docker’s daemon.json File
- Disabling Discord’s Activity Tracking
- Optimize Ubuntu Logs: btmp Log Rotation
- Navigating the Storm: Analysis of Intel’s 13th and 14th Gen CPU Instability Issues
- Finding the PID of a Process Using a Specific Port in Linux
- Understanding Grep: A Comprehensive Guide
- Essential Linux Commands for Daily Use
- Copying Files Between Docker Containers and Host Machines
- Understanding the regreSSHion Vulnerability in OpenSSH
- Multiple Actions with a Single docker exec Call
- Mastering xargs in Linux
- FFmpeg: Advanced Video & Audio Manipulations
- FFmpeg: Comprehensive Audio Processing Techniques
- Mastering Vim: Essential Commands and Tips
- Tmux for Streamlining Dev Workflow
- Understanding and Optimizing Performance in Proxmox VE
- LVM The Linux Sysadmin’s Guide to Flexible Storage
- Docker vs Podman: Key Differences
- SSH Tunneling: A Secure Conduit for Your Data
- User and Group Management in Linux
- Talos OS: API-Driven, Kubernetes-First OS
- SumGuy’s Guide to Linux Log Analysis
- Understanding the Mogrify Tool in Linux: A Guide to Image Manipulation
- Ed25519 ssh keys
- Ubuntu & Bash tutorial & basic utilities
- Archive & Compression utilities