The unix sh family of command interpreters

The basic user interface to a unix system is called a "shell". A shell as descended from the 1971 AT&T UNIX shell sh lets you run programs on the machine. It also lets you write sophisicated programs or "scripts". The shell enhances unix's powerful "everything is a file" abstraction via command I.O. redirection. The access controls associated with the phrase "a unix shell" are implemented by the login program and the getty program that spawn the shell upon successful login. A shell may often implement user resource limits like disk quotas internally.

The default shell of cLIeNUX Core is GNU Bash, the "Bourne Again SHell". Bash (bash) is a luxurious shell, with very nice interactive features like on-line "shelp" and filename completion.

For low-resource situations such as cLIeNUX maintenance floppies, the ash shell may be used. ash is a plain traditional sh, and as such the documentation for it is perhaps a better introduction to shell programing than the much larger Bash. Most of the ash seedoc will apply to Bash, and ash is very powerful, though less convenient than Bash.

There have been other families of unix shell besides what is now called a "Bourne shell", which ash and Bash both are. csh has a C-like syntax, the Plan9 rc shell even more so, and there are other variants such as the Korn shell and "wish". Anything that lets a user run an arbitrary program is a shell in the broadest sense, which would then include graphical webrowsers, Lynx, mc, Gforth and so on.

The shell is for telling the machine what to do at the highest level of abstraction, where everything is a file. If your task involves specific contents of files, or numerical computation, other tools will probably serve better. The shell's unix heritage is why it assumes that a rich set of complementary tools is available. In cLIeNUX you can assume a Forth and awk are available, amongst other things.

You might well hit these three in this order... sh ash Bash

Copyright 1999 Rick Hohensee
This file is released for redistribution only as part of an intact entire cLIeNUX Core.