Fixing 'Broken Pipe' Errors in Shell Scripts and Pipelines
A command mid-pipeline dies with 'Broken pipe,' often only when piped into head — a specific, well-defined signal, not a random failure.
Bash, Zsh, sh, tcsh, and the TUI tools built on top of them — prompts, scripting, multiplexers, and terminal troubleshooting.
A command mid-pipeline dies with 'Broken pipe,' often only when piped into head — a specific, well-defined signal, not a random failure.
A prompt showing broken characters or startup errors after a theme update — how to isolate whether it's a font, config, or version issue.
A tool you just installed is definitely on disk, but the shell insists it doesn't exist — almost always a PATH problem, with only a few actual explanations.
TUI apps render clipped over SSH, or the terminal doesn't rewrap after resizing — the remote shell has a stale idea of the terminal's actual dimensions.
A shortcut that works outside tmux does something different, or nothing, inside a session — how the prefix key and keybinding layers interact.
Re-running the last command with sudo and fuzzy-searching everything typed today both rely on the same persisted, indexed log the shell writes to disk.
The actual difference between an alias and a function, when each is the right tool, and how to avoid the mistakes that make aliases behave unpredictably.
Setting up a terminal-based git interface for staging, committing, browsing history, and resolving conflicts visually without leaving the terminal.
Disclosed September 24, 2014, Shellshock let attackers run arbitrary commands via a Bash environment-variable flaw, with botnets scanning for targets within hours.
Pressing Tab and getting a sensible list looks simple. Underneath, Bash and Zsh implement a programmable system matching rules specific to each command.