How macOS Catalina Changed Zsh's Place in the Shell Ecosystem
Catalina made zsh a mainstream interactive default; this account separates that ecosystem effect from macOS fleet migration and script compatibility.
Bash, Zsh, sh, tcsh, and the TUI tools built on top of them — prompts, scripting, multiplexers, and terminal troubleshooting.
Catalina made zsh a mainstream interactive default; this account separates that ecosystem effect from macOS fleet migration and script compatibility.
Born August 28, 2009 to get his own team using Zsh, Oh My Zsh grew into the most widely used Zsh configuration framework in daily use today.
Ubuntu 6.10 switched its default /bin/sh from Bash to the stricter Dash in October 2006 for faster boot times, surfacing years of non-portable scripts.
Posted to Usenet by a Princeton student in 1990, Zsh combined the strongest interactive features of several existing shells, decades before becoming macOS's default.
Bash, Zsh, and sh accept most of the same commands, which is exactly what makes their real differences easy to miss until a script breaks.
A colorful prompt showing git branch and exit code is not a separate program — it is a string the shell re-evaluates before every command.
An unquoted variable works in testing, then silently breaks the first time its value contains a space — the single most common shell scripting bug.
Terminal and shell are separate programs linked by a kernel pty: one renders characters and handles input, the other interprets commands.
Full-screen terminal apps like htop and vim redraw the screen selectively and read keystrokes one at a time. This is the library layer that makes it possible.
Bash rewrites typed commands through an ordered sequence of expansions before running them. The exact order explains most quoting and globbing surprises.