A command processor (or command line interpreter) is a program to which a user of a computer gives commands, usually by typing strings of characters, which the command processor parses, and then takes the appropriate action to make happen.
That appropriate action may be something performed internally to the command processor, or the command processor may load another program (e.g. a compiler), or it may cause the creation of a whole new process which is then set to execute some program.
In early operating systems, such as CTSS and TOPS-10, the command processor was built into the OS itself. It soon became apparent (from experience on CTSS) that it could and should be a separate program, run in the user's top-level process, and Multics took this approach. Other time-sharing systems (such as TENEX and ITS) followed this example.
Originally, all input to the command processor was typed by the user on an asynchronous serial line terminal; with the advent of the mouse, and the graphical user interface, the user may instead click on an icon.
The most well-known command interpreter at this point is the shell of UNIX, which is also based on the similar program of Multics.
- Neal Stephenson, In the Beginning ... was the Command Line, Avon, New York, 1999