← Blog··Updated 5 Jul 2026·3 min read

What does bash stand for? A pun, a dead shell, and a login name

The default shell of the Linux world is a forty-year-old joke about a man named Bourne. The rest of the shell family tree is no more serious: one shell is named after a teaching assistant's login, one after a fish, and two of them are both called sh.

AI-assisted postDrafted with help from Claude, edited and fact-checked by Mart. See transparency policy →
Stephen Bourne speaking at a podium at SD West 2005

Stephen Bourne, whose 1979 shell got him immortalized in a pun he never asked for. Photo by Dmitry Azovtsev, CC BY-SA 3.0.

The shell1 that opens when you launch a terminal on most Linux machines is named after a pun. Bash stands for Bourne-Again SHell — a joke at the expense of Stephen Bourne, whose sh was the standard Unix shell bash was written to replace. The name works twice: bash is Bourne's shell born again as free software2, with the evangelical-revival pun fully intended. Nearly every name in the shell family tree is this kind of joke, which is worth knowing the next time someone treats the terminal as a solemn place.

🔗 Learn more1 What is a shell?
🔗 Learn more2 Free vs open source: 'free as in freedom', not 'free as in beer'

Who was Bourne, and why is bash him again?

Stephen Bourne wrote the Bourne shell, sh, at Bell Labs; it shipped with Version 7 Unix in 1979 and became the Unix shell — the one scripts assumed, the one #!/bin/sh still points at in spirit. But it was proprietary, like the rest of Unix, and when the GNU project set out to build a complete free operating system, a shell was non-negotiable infrastructure.

So in 1988 the Free Software Foundation put a programmer named Brian Fox on it, and on June 8, 1989 bash 0.99 was released: a free shell that could run Bourne-shell scripts unmodified, with features borrowed from the C shell and the Korn shell folded in. Chet Ramey took over maintenance in the early 1990s and — in the pattern this lane keeps finding, from sudo's Todd Miller onward — still maintains it today, three and a half decades later. When Linux appeared in 1991 needing a shell, the free, Bourne-compatible one was sitting there ready. The pun became the default interface to a hundred million machines.

The whole family tree is jokes

Shell naming is a genre of its own, and almost none of it is engineering:

Shell Name logic
sh (Thompson, 1971) just shell
sh (Bourne, 1979) also just shell — a different program with the same name, which is very Unix
csh C shell — its syntax imitates C; also a homophone of sea shell
ksh David Korn's shell. The rare honest one
bash (1989) Bourne-Again SHell — the pun in question
zsh (1990) named after Zhong Shao, a teaching assistant at Princeton, because author Paul Falstad thought Shao's login, zsh, was a good name for a shell
fish (2005) Friendly Interactive SHell, and yes, also the sea-creature joke again

The zsh story deserves a beat of appreciation: the default shell of every Mac since Catalina is named after a grad student's username. Not his work, not his initials-as-tribute — his login string, admired aesthetically by a fellow student in 1990. Somewhere between that and Maxwell's demon naming your background processes, the lesson is that Unix vocabulary is archaeology of jokes that shipped.

Does the name matter?

It did once, legally and politically: Bourne-Again announced what bash was — a clean-room reimplementation, compatible but free — in the same breath as the joke. The GNU project needed the world to know both things, and the name carried the whole message in four letters. That is good naming, the same trick as grep compressing its entire lineage into its letters.

And, as everywhere in this lane, the name has outlived its own war. The proprietary sh bash was reacting against is a museum piece; bash's rivals today are its own descendants (zsh, fish) rather than anything from Bell Labs. The pun remains, decades after the man it teased retired, typed billions of times a day by people who have never heard of Stephen Bourne — which is, if you think about it, the most born again thing about it: the name outlived the body entirely. Your terminal's name is a fossil too, and so is the prompt inside it.

bash: Bourne-Again SHell — a pun on Stephen Bourne's 1979 sh, written by Brian Fox for the GNU project, released June 8, 1989, maintained by Chet Ramey since the early 1990s. The rest of the shell family: a C joke, a fish joke, and a TA's login.

Read next