A shell is not a terminal.

You've come to this page because you've said something similar to the following:

This is the Frequently Given Answer to such statements.

A shell is not a terminal.

A shell is an executable program of some sort, that may use a terminal for its I/O.

A terminal is an I/O device, usually provided by an operating system kernel. Terminals may be real terminals, attached over serial or parallel port connections; virtual terminals, usually provided by the display, mouse, and keyboard hardware of a PC-compatible machine or a workstation; or pseudo-terminals.

The scripting language used by Unix/POSIX shells is shell script, and need not involve any terminal. The commands run, interactively and in scripts, are shell comands.

Shells and kernels are part of the operating system nut metaphor.


© Copyright 2001,2007 Jonathan de Boyne Pollard. "Moral" rights asserted.
Permission is hereby granted to copy and to distribute this web page in its original, unmodified form as long as its last modification datestamp is preserved.