Penguin
Annotated edit history of Shell version 9, including all changes. View license author blame.
Rev Author # Line
8 AristotlePagaltzis 1 Known as the CommandLine to people nowadays, it is the main program used for interacting with a computer (besides graphical DesktopEnvironment~s). It also implements a very high level ProgrammingLanguage that is available for both interactive and scripted use.
3 AristotlePagaltzis 2
8 AristotlePagaltzis 3 The original [UNIX] shell is called the “Bourne shell”, after its designer Steven Bourne. The executable is just called sh(1), and it's still the foundation of all modern [Shell]s on [Unix]oid OperatingSystem~s.
3 AristotlePagaltzis 4
5 AristotlePagaltzis 5 The first derivate was Bill Joy's [C] shell, csh(1), meant to make shell scripting easier for [C] programmers. It was developed at [UCB] as the shell of choice for [BSD] systems. This shell suffered many problems in interactive uses and non, which eventually even prompted a CshProgrammingConsideredHarmful paper. It has not been released under a FreeSoftware license.
3 AristotlePagaltzis 6
5 AristotlePagaltzis 7 At [AT&T], David Korn derived the Korn shell, __ksh__, from the Bourne shell. This shell is completely backwards compatible with its predecessor and much more powerful. It is quite common on commercial [Unix] flavours such as [Solaris].
3 AristotlePagaltzis 8
7 AristotlePagaltzis 9 Since no __ksh__ variant was ever FreeSoftware (although there was eventually a [Free] clone called pdksh (__p__ublic __d__omain __ksh__) started in the mid 1990s), the [GNU] project wrote their own Bourne compatible shell, and in typical [GNU]ish punstery called it the bash(1), “Bourne again shell”. See BashNotes for hints and examples for using bash(1).
3 AristotlePagaltzis 10
11 Meanwhile many of the csh(1)'s shortcomings for interactive use were fixed in the tcsh(1). It is the default shell for modern [BSD] variants.
12
8 AristotlePagaltzis 13 Other sh-compatible shells include:
14 * ash(1), a very minimalistic variant mostly meant for embedded systems and the like were memory is scarce and interactive use is uncommon.
15 * sash(1), the __S__tand-__A__lone shell which is staticly linked for “emergency repair work” when sh(1) won't work.
9 JohnMcPherson 16 * zsh(1), which features wildly expanded (but backwards compatible) syntax and many convenience features for interactive use, such as improved TabCompletion.
3 AristotlePagaltzis 17
18 ----
7 AristotlePagaltzis 19 Part of CategoryProgrammingLanguages, CategoryVeryHighLevelProgrammingLanguages