Bash Arrays: The Feature That Makes Scripts Readable
Declare, iterate, slice, and manipulate bash arrays safely. Indexed and associative arrays, the @ vs * trap, and patterns that make scripts readable.
All the articles with the tag "linux".
Declare, iterate, slice, and manipulate bash arrays safely. Indexed and associative arrays, the @ vs * trap, and patterns that make scripts readable.
Process substitution lets you treat a command's output as a file, and feed input to a command as if it were a file. It's weird but powerful.
ulimit and cgroups v2: set per-process CPU, memory, and file limits, use systemd slice controls, and keep one runaway service from killing your server.
Bash heredocs and here strings explained: <<EOF for multiline input, <<-EOF for tab-indented blocks, <<<string for single lines, and when to use each.
GNU parallel runs tasks in parallel across CPU cores. It's faster than xargs and easier than writing a job queue. Here's when and how to use it.
Master LVM snapshots and thin provisioning on Linux. Learn to create, use, and merge snapshots for backups, and over-provision storage safely.
Harden SSH properly: disable password auth, switch to Ed25519 keys, configure sshd_config, set up SSH certificates with step-ca, add 2FA, and configure ProxyJump for bastion hosts.
Use trap EXIT to clean up temp files, INT/TERM for graceful shutdown, and ERR for errors. Stop your bash scripts from leaving messes when they die.
set -x prints every command before it runs. Add PS4 for context. Use trap for cleanup. Here's the toolkit every bash debugger needs.
Unquoted bash variables split on IFS and quietly break loops, file ops, and filenames with spaces. Here's why it happens and how to always quote right.
Bash has built-in string operations: substring extraction, find-replace, case conversion, and trimming. You don't need sed for basic text work.
set -e looks bulletproof, but it slips right through pipes, command substitution, and conditionals. The bash gotchas that bite at 2 AM, and how to fix them.