I'm curious about the term "shell." I think I know what it is (though the distinction between "shell" and "terminal" is still fuzzy) but why was the word "shell" chosen to describe this type of program?

This might seem unimportant, but usually when the word choices mystifies me, it is pointing to a gap in my understanding.

A terminal is a device or I/O pipe. A shell is an executable program that interactively in real-time receives user input from a terminal and then does things based on it. "Shells" without provision for direct interactive use are technically scripting interpreters of some kind.
–
ultrasawbladeJun 13 '11 at 20:31

6 Answers
6

The Multics command processor used to be called the shell. This program is passed a command line for execution by the listener; it parses the line into a command name and arguments, locates the command and initiates it, and calls the command program with arguments that are PL/I character strings. It is simple to replace the default system supplied shell with a user-provided program, by calling cu_$set_cp (see abbrev). A Unix shell includes the concepts of both shell and listener in the Multics sense.

The relationship between shell and listener makes sense both etymologically and metaphorically [1].

[1] "Since the shell is a symbol of authority, speech, and hearing, which is to say a symbol of prophecy..."