A command in the middle of a pipeline suddenly dies with a 'Broken pipe' error, sometimes only when piped into head or a similar early-exiting command. This is a specific, well-defined signal, not a random failure.
Your carefully configured prompt suddenly shows broken characters, missing icons, or throws errors on every new shell after updating a theme or framework. Here's how to isolate whether it's a font, config, or version issue.
You just installed a tool, its binary is definitely on disk, but your shell insists it doesn't exist. This is almost always a PATH problem, and there are only a few actual explanations for it.
TUI applications render broken or clipped over SSH, or your terminal doesn't rewrap correctly after resizing the window. The remote shell has a stale idea of your terminal's dimensions — here's how that actually gets synced.
A keyboard shortcut that works fine outside tmux does something completely different — or nothing at all — once you're inside a tmux session. Here's how the prefix key and multiple layers of keybindings actually interact.
Re-running the last command with sudo, or fuzzy-searching back through everything you've typed today, both rely on the same underlying mechanism — a persisted, indexed log of your previous commands.
A complete walkthrough of the actual difference between an alias and a function, when each one is the right tool, and how to avoid the specific mistakes that make aliases behave unpredictably.
A complete walkthrough setting up a terminal-based git interface — staging, committing, browsing history, and resolving conflicts visually, without leaving the keyboard or the terminal.
Disclosed on September 24, 2014, the Shellshock vulnerability let attackers execute arbitrary commands through a flaw in how Bash processed environment variables — and botnets were scanning for vulnerable systems within hours.
Pressing Tab and getting a sensible list of filenames, commands, or flags looks simple from the outside. Underneath, it's a programmable system matching the word you're typing against rules specific to the command you're running.