The shell is a typical Unix program. It reads commands from the standard input and prints something on the standard output. This is simple and good.
The points is: In a graphical environment (like GNOME or KDE) a program cannot just write text directly on the desktop. If the programs could, this would quickly become a mess and chaos. Therefore you need a program that provides a space where other programs can write their text. That program also accepts keystrokes from the user and converts them into byte sequences, since this is what many programs (command-line, text based, not GUI) expect. All this is the job of the GNOME Terminal application.
So you have the shell (probably bash), and wrapped around it is the GNOME terminal. To see what exactly the GNOME terminal does you can run (Alt+F2) gnome-terminal
, xterm
and rxvt
in between and see where they are different and what they have in common.
Please delete this false information. – Koray Tugay – 2015-06-10T19:17:48.517
A terminal is not any sort of a shell. – Ignacio Vazquez-Abrams – 2011-01-09T17:28:15.913
@Dennis Care to elaborate? – digitxp – 2011-01-09T21:36:16.530
See Ignacio's comment. A terminal, whether it's a system console or
– Paused until further notice. – 2011-01-10T00:43:21.940gnome-terminal
,xterm
or PuTTY is more akin to a physical terminal (and is thus an emulator ). A shell is a piece of software that, among other things, accepts input, does processing, and outputs on a terminal.@Dennis So I should word it "The terminal essentially contains an emulated shell within a graphical window."? – digitxp – 2011-01-10T03:48:36.327
A terminal is not necessarily a graphical window and a shell isn't necessarily running in it. And the shell isn't emulated (it could be some other program). What you're asking is essentially the same as your original. See the answer here which is very close to being complete and is fairly precise.
– Paused until further notice. – 2011-01-10T07:05:33.427