Ken Thompson at Bell Labs creates Unix as a multi-user, multitasking operating system
for the PDP-7.
Early versions of Unix had no shell in the modern sense. Instead, commands were typed
directly to the system, which interacted through a simple, custom interface.
1971 - Thompson Shell (sh)
The first Unix shell, known as the Thompson Shell, is developed by Ken Thompson.
This shell allowed users to interact with the Unix system by entering commands via a
terminal interface, though it was still primitive compared to what would come later.
1973 - Introduction of the Bourne Shell (sh)
Stephen Bourne at Bell Labs develops the Bourne Shell (often called sh), which replaces
the Thompson Shell.
The Bourne Shell introduced scripting features like variables, control structures (if,
loops), and redirection.
It became the standard shell in many Unix systems and is still the basis for many modern
shells.
1978 - Version 7 Unix
Unix Version 7 (V7) is released, becoming a widely adopted version of Unix.
The Bourne Shell continues to be the primary shell in Unix systems, with improvements
over time.
1980 - C Shell (csh)
Bill Joy at UC Berkeley creates the C Shell (csh), which was influenced by the C
programming language.
csh introduces job control (suspending and backgrounding processes) and history
features, making it a more interactive user environment than the Bourne Shell.
It also introduces the csh scripting language, which had its own syntax distinct from
the Bourne Shell.
1983 - Korn Shell (ksh)
David Korn, also at Bell Labs, develops the Korn Shell (ksh), a major enhancement over
the Bourne Shell.
The Korn Shell combines features from the Bourne Shell and C Shell, adding features like
command-line editing, job control, and functions.
It became very popular due to its combination of scripting capabilities and interactive
features.
1989 - Bash Shell (Bourne Again Shell)
Brian Fox writes the Bash Shell (bash), which is intended to be a free and open-source
replacement for the Bourne Shell.
Bash combines features of the Bourne Shell, C Shell, and Korn Shell, and adds its own
improvements such as command-line editing (using Emacs or vi key bindings) and tab
completion.
Bash quickly becomes the default shell for many Linux distributions and macOS.
1990s - Evolution of Shells in Linux and Other Unix Variants
Linux and other Unix variants, such as FreeBSD and NetBSD, popularize Bash as the
default shell.
Other shells like Zsh (developed in 1990 by Paul Falstad) and Fish (Friendly Interactive
Shell) introduce more advanced features, such as improved autocompletion, syntax
highlighting, and user-friendly prompts.
2000s - Continued Growth and Customization
Unix and Linux-based systems grow in popularity as servers and desktops, and the Bash
shell solidifies its position as the most widely used shell.
Power users start relying on advanced features such as zsh's plugin system, oh-my-zsh
framework, and Fish for its user-friendly syntax and helpful autocompletion features.
2010s - Shells in Modern Development
Zsh becomes increasingly popular, especially among developers and sysadmins. It is
lauded for its customizability, powerful features, and vibrant plugin ecosystem.
Bash continues to be a dominant shell in many environments, though new features in
shells like Fish and Zsh start to attract more users.
2020s - Shells in Modern Operating Systems
Zsh is adopted as the default shell on macOS (as of macOS Catalina, released in 2019).
Fish gains traction for its user-friendly syntax, great autocompletion, and ease of use
for newcomers.
Development tools such as Oh My Zsh and Prezto help users customize and extend their
shell environments, with plugins that streamline development and administration tasks.