Fish Ships as a Shell That Deliberately Breaks From POSIX
Released February 13, 2005 by Swedish developer Axel Liljencrantz, Fish chose sensible-by-default behavior and built-in syntax highlighting over POSIX compatibility.
Operating systems, infrastructure, emulation, and technical history.
Released February 13, 2005 by Swedish developer Axel Liljencrantz, Fish chose sensible-by-default behavior and built-in syntax highlighting over POSIX compatibility.
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.