General Computing
terminal shell console
Updated Fri, 20 May 2022 01:13:51 GMT

What is the difference between shell, console, and terminal?


I'm confused with the terminology. What is the difference between shell, console, and terminal?




Solution

In the linux world they can all look the same from the point of view of the user at the keyboard. The differences are in how they interact with each other.

The shell is the program which actually processes commands and returns output. Most shells also manage foreground and background processes, command history and command line editing. These features (and many more) are standard in bash, the most common shell in modern linux systems.

A terminal refers to a wrapper program which runs a shell. Decades ago, this was a physical device consisting of little more than a monitor and keyboard. As unix/linux systems added better multiprocessing and windowing systems, this terminal concept was abstracted into software. Now you have programs such as Gnome Terminal which launches a window in a Gnome windowing environment which will run a shell into which you can enter commands.

The console is a special sort of terminal. Historically, the console was a single keyboard and monitor plugged into a dedicated serial console port on a computer used for direct communication at a low level with the operating system. Modern linux systems provide virtual consoles. These are accessed through key combinations (e.g. Alt+F1 or Ctrl+Alt+F1; the function key numbers different consoles) which are handled at low levels of the linux operating system -- this means that there is no special service which needs to be installed and configured to run. Interacting with the console is also done using a shell program.





Comments (5)

  • +4 – Before terminals were monitors with keyboards, they were teletypes -- a sort of electric typewriter. en.wikipedia.org/wiki/Teleprinter — May 24, 2010 at 14:03  
  • +0Console sometimes means "the keyboard and monitor physically attached to this computer." E.g., "I logged on from the console because the server was not responding to the network." — May 24, 2010 at 16:24  
  • +3 – @Doug Harris: Can you add some pictures of the hardware you are talking about? — May 29, 2010 at 20:36  
  • +0 – So, if terminals and consoles are, in the modern day, each implemented in software - what is the difference between the two (now)? — Oct 26, 2015 at 10:23  
  • +2 – @GavinHope I think the console is "low-level", implemented as part of the OS core. Graphic shells like Gnome run on top of that, then terminals like gnome-terminal run further on top of that. So the difference would be the level at which they run. — Jan 10, 2016 at 08:35  


External Links

External links referenced by this document: