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.
277 articles in this topic.
Featured posts
-
Multiple Claude Code Accounts, One Config
Run several Claude Code accounts on one Linux machine. CLAUDE_CONFIG_DIR plus symlinks share your skills, hooks and history while each login stays isolated.
15 min read -
Node Exporter Internals That Actually Matter
Which 30 Node Exporter metrics matter for Prometheus monitoring. Skip the 200 noisy ones. Textfile collector trick included.
10 min read -
NFS vs SMB vs SSHFS vs WebDAV for Home Lab
Four file-sharing protocols compared for home labs: NFS speed, SMB compatibility, SSHFS convenience, WebDAV over HTTP, and which one to pick per use case.
· Updated:12 min read -
Filesystem Decision Matrix: ext4 vs XFS vs ZFS vs Btrfs
Linux filesystem comparison: ext4 for safety, XFS for scale, ZFS for snapshots, Btrfs for flexibility. Pick the right tool for your workload.
8 min read -
ZFS Tuning for SSDs and NVMe
ZFS tuning for flash: ARC sizing, recordsize, autotrim, sync modes, and SLOG advice, plus why defaults written for spinning disks waste an NVMe pool.
· Updated:14 min read -
Podman Compose for Docker-Free Workflows
Drop Docker's daemon entirely. Podman rootless containers with podman-compose, drop-in compatibility, daemonless orchestration, and where it bites you.
9 min read
All Linux articles
- Multiple Claude Code Accounts, One Config
- Node Exporter Internals That Actually Matter
- NFS vs SMB vs SSHFS vs WebDAV for Home Lab
- Filesystem Decision Matrix: ext4 vs XFS vs ZFS vs Btrfs
- ZFS Tuning for SSDs and NVMe
- Podman Compose for Docker-Free Workflows
- LXC vs Docker: Lightweight Containers
- SSH Bastion & Jump Host Patterns That Don't Hurt
- Linux Real-Time Kernel: When PREEMPT_RT Actually Earns Its Keep
- Incus: LXD's Community Fork, Two Years In
- Steam Deck as a Homelab Toolkit (Yes, Really)
- systemd-homed: Portable Encrypted Home Directories
- Carapace: Universal Shell Completions
- SOCKS5 Over SSH: Selective Routing Without a VPN
- Sunshine + Moonlight: Roll Your Own Cloud Gaming
- Linux PSI: The Pressure Metrics Load Average Wishes It Were
- fish vs zsh vs nushell in 2026
- NUT: Network UPS Tools for Home Labs That Don't Want to Crash
- cgroups v2 in Practice: Limits, Pressure, Containers
- Tang & Clevis: LUKS Auto-Unlock Without a Typed Passphrase
- crun vs runc vs youki: OCI Runtimes Compared
- nftables in 2026: Stop Pretending iptables Will Live Forever
- YubiKey + age: Hardware-Backed Encryption Without GPG
- systemd-resolved: The DNS Resolver You're Already Using Wrong
- Atuin: Shell History That Actually Works Across Machines
- io_uring: Linux's Async I/O Future Is Already Here
- Btrfs RAID 5/6: Still Don't
- SnapRAID: Parity Without Real-Time RAID
- mdadm Day-2: Grow, Replace, Scrub
- Hardware RAID vs Software RAID in 2026
- RAID-Z and dRAID: ZFS Parity Explained
- RAID 50/60: Nested Parity Done Right
- Borgmatic: Borg Backup, Done Right
- Bazzite vs Nobara vs CachyOS Gaming
- Flatpak vs Snap vs AppImage in 2026
- Wayland vs X11 in 2026: It's Time
- COSMIC vs KDE vs GNOME in 2026
- BIOS/UEFI Tweaks for Headless Servers
- Rootless Docker: Tips, Gotchas & Fixes
- Network Booting Diskless Nodes with iPXE
- 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
- OpenConnect vs AnyConnect
- fio: Real Disk Benchmarking
- FRR vs BIRD
- Lima vs Multipass
- tini vs dumb-init vs --init
- Kdenlive vs DaVinci Resolve on Linux
- Kdenlive Proxy Editing on Weak Hardware
- 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
- Bash One-Liners Worth Remembering
- Compiling on Linux With Low RAM
- 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
- LUKS Full Disk Encryption on Linux
- Rootless Docker: Run Without Root
- PostgreSQL + Linux: Kernel Tuning That Actually Matters
- Linux Privilege Escalation: The Defensive Playbook
- Steam on Linux: It Actually Works Now
- Browser GPU Acceleration on Linux in 2026
- dotenv Files: The Mistakes That Leak Secrets
- Alert Fatigue: Why Your Alerts Are Meaningless
- Proxmox NAT Bridge: One IP, Many VMs
- 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)
- 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
- Ollama Keep Alive: Unload Models from VRAM
- 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
- Why Your VPN Isn't Routing What You Think
- 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)
- Restic vs Borg vs Kopia: Backup Tools for People Who've Lost Data Before
- Self-Hosted Email Is Probably a Bad Idea
- 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
- A Guide to Fixing OpenH264 Access Issues
- 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
- Suricata vs Snort: Intrusion Detection for the Paranoid Home Lab Owner
- DNS Troubleshooting from the Command Line
- Podman Quadlets: Running Containers Without the Docker Daemon (or Your Sanity)
- 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
- Ulimit, Cgroups, and the Art of Stopping Processes From Eating Your Server
- 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
- Proxy Chains and Anonymization: What Actually Works and What's Just Theater
- 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
- awk for Log Parsing: 5 Patterns You'll Actually Use
- 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
- ss Is the New netstat (And It's Better)
- 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
- Techniques for Writing Robust, Reliable Bash Scripts
- 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
- Preserving Bash History in Multiple Terminal Windows
- Finding the PID of a Process Using a Specific Port in Linux
- Differences Between nohup, disown, and & in Linux
- the lost+found Directory in Linux
- Understanding printf vs echo in Bash
- Understanding Grep: A Comprehensive Guide
- The Role of Antivirus and Endpoint Detection and Response Systems
- Switch Ubuntu to Hardware Enablement (HWE)
- Essential Linux Commands for Daily Use
- "Packages Have Been Kept Back": What It Means
- APT: Upgrade a Single Package, Not Everything
- How to Transfer docker Images Without a Repository
- Copying Files Between Docker Containers and Host Machines
- Docker Networking: Connecting to the Host from a Container
- Understanding Docker vs. Full Virtual Machines (VMs)
- Understanding the regreSSHion Vulnerability in OpenSSH
- Multiple Actions with a Single docker exec Call
- Mastering xargs in Linux
- FFmpeg: Advanced Video & Audio Manipulations
- Executing Commands with Asterisks in Docker
- FFmpeg: Comprehensive Audio Processing Techniques
- Mastering Vim: Essential Commands and Tips
- Tmux for Streamlining Dev Workflow
- Optimizing Ansible for Faster Playbook Execution
- Understanding and Optimizing Performance in Proxmox VE
- Advanced UFW Techniques: Enhancing Firewall Security
- UFW Basics: Setting Up Your Linux Firewall
- LVM The Linux Sysadmin’s Guide to Flexible Storage
- Docker vs Podman: Key Differences
- SSH Tunneling: A Secure Conduit for Your Data
- Socat: The Swiss Army Knife of Networking
- User and Group Management in Linux
- Understanding PostgreSQL Connection URIs
- A Guide to LXC/LXD
- Talos OS: API-Driven, Kubernetes-First OS
- Linux System Monitoring: Tools and Techniques
- SumGuy’s Guide to Linux Log Analysis
- Linux Home Lab Security: Planning for the Unexpected
- Linux Bash Tips and Tricks pt1
- Set the Timezone in Ubuntu with timedatectl
- Creating Image Slideshows with Voiceovers using FFMPEG
- Understanding the Mogrify Tool in Linux: A Guide to Image Manipulation
- Install & use Doxygen via Docker
- Docker Compose useful commands
- Ed25519 SSH Keys: Ditch RSA for Good
- Access Docker socket via TCP
- Install docker on Ubuntu/Debian
- Linux su with custom shell
- When systemd swallows your service logs
- How to Upload an ISO to Proxmox (3 Ways)
- Enable WebGL on Chrome or Firefox
- Ubuntu & Bash tutorial & basic utilities
- Why You Should Switch to ZShell (zsh)
- Alsa CLI Volume control
- Linux distribution info & kernel info
- Bulk rename files in bash
- linux shell argument list too long rsync or cp
- Find out whats taking up all the hdd space
- Bash for loops sequential counting
- Adding Extra Swap to Linux
- Repair & Optimize all Mysql Databases one liner
- Remove all old installed but unused kernels
- Linux CLI Tarball Extraction, Flags, Formats, Gotchas
- MySQL CLI: From Connection to Maintenance
- Remove spaces or Edit chracters in filenames
- Logrotate & Compression
- SSH keys and secure file copy
- Recursively delete all empty subdirectories
- Directory FileCount
- Archive & Compression utilities
- Sed 101