🧭 The Lineage — Which shell came first?

🕰️ 1. Thompson Shell (sh) — 1971

  • The original shell for Version 1 UNIX.
  • Very limited scripting.

🕰️ 2. Bourne Shell (sh) — 1979

  • Developed by Stephen Bourne at Bell Labs for UNIX Version 7.
  • Became the standard UNIX shell.
  • Introduced proper scripting capabilities (if, for, case, etc.)
  • This is what most POSIX-compatible shells are based on.

🧱 From Bourne Shell came…

ShellYearWhy it exists
Bash (Bourne Again Shell)1989GNU’s free/open alternative to Bourne shell; adds features like history, job control
KornShell (ksh)1980sCombines sh and csh features, used in commercial UNIX
ZshEarly 1990sPowerful scripting + interactive features; loved by power users
DashModernLightweight, fast — often used for scripts on Ubuntu for speed (replaces /bin/sh)
Fish2005”Friendly Interactive SHell” — focused on user-friendliness, not POSIX scripting

🔁 Why do multiple shells still exist?

Because each has tradeoffs:

ShellBest for
bashDefault for most Linux distros; good balance
zshInteractive users who want themes, plugins (with Oh My Zsh)
sh/dashRunning simple, portable scripts
fishBeginners who want autocompletion & modern UX
kshLegacy commercial UNIX systems (e.g., AIX, Solaris)