tags: History shell shells command-line interpreter Ken Thompson V6 PWD John Mashey Bourne C Korn Bourne-Again Brian Fox David Korn Bill Joy Stephen Bourne
author: Nicola Brunner
title: History of shells
---
<p>A shell is a command-line interpreter and like for the editors: Everyone has his favourite.
Several version, each with its own features got introduced in the last 50 years. In this section
we are going to briefly explain the history of the UNIX shell and to highlight the key
differences between the main ones, but don't forget: the core ideas about shells are
the same in everyone.</p>
<p>In 1971, <i>Ken Thompson</i> (of Bell Labs) developed the <b>V6 shell</b> (/bin/sh), the first shell for
UNIX. This independent user program was inspired by Multics (an operating system developed
by the American software engineer <i>Glenda Schroeder</i>, in 1965) and introduced a compact syntax
for piping (concept of a sequence of chained processes where the output of a process feeds as
input to the next one) and for redirection (stays for the deviation of outputs to user-specified
locations), that has survived into all modern shells. This shell was only capable of acting as an
interactive shell (command interpreter), to invoke commands and view results, it was not able
to script.</p>
<p>After this first shell, the next one was the <b>PWD shell</b> created in 1975 by <i>John Mashey</i>.
This upward-compatible version of the Thompson shell focused on making shell programming practical.
Comparing it to his predecessor, new features were added such as variables, user-executable shell
scripts, interrupt-handling and an extension of control structures (that were integrated to the shell
itself, in fact in the older versions they were "outside" the shell).</p>
<p>A couple of years later the development of new and more capable shells got at its maximum
and several shells, all with different characteristics, were introduced. In the next section
the most influential ones are briefly presented.</p>
<p>The <b>Bourne shell</b> (sh), introduced in 1977 by <i>Stephen Bourne</i> (also at Bell Labs),
is a complete redesign of the "original" shell. It was backward compatible since it shared
with its predecessor all the basics functions, but it introduced a more functional language capable
of better interacting with the operating system. Its language was influenced by ALGOL 68
(Algorithmic Language 1968), an imperative computer programming language.
This shell is known by users because of its characteristic default command line prompt character
and the use of the dollar sign. It still remains a useful and popular shell today.
There are many alternatives to this shell, here are listened only some of them: <b>Almquist