Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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

share|improve this question
3  
and what about prompt and even command line? –  naxa Mar 17 '13 at 8:54
    
Have a look at this question from Unix & Linux: unix.stackexchange.com/questions/4126/… –  Flimm Mar 4 at 16:57

3 Answers 3

up vote 59 down vote accepted

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.

share|improve this answer
    
Before terminals were monitors with keyboards, they were teletypes -- a sort of electric typewriter. en.wikipedia.org/wiki/Teleprinter –  Kevin Panko May 24 '10 at 14:03
    
Ah, yes, that was my first interaction with a computer. Thanks for reminding me. –  Doug Harris May 24 '10 at 14:07
    
Windows also has "shells" (cmd.exe and PowerShell being the most common ones) and terminals (the "Windows Console"). –  grawity May 24 '10 at 14:44
6  
Console 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." –  Kevin Panko May 24 '10 at 16:24
1  
When I was in college in the late 1980s, I did a lot of work on DEC VT220 terminals -- en.wikipedia.org/wiki/VT220 -- That's a good example of the physical device I described. –  Doug Harris Jun 24 '10 at 16:33

A shell is a program that puts up a prompt and waits for you to type commands. It executes them and then prints another prompt. So, like CMD in Windows, or Bash in Unix. It can run in a terminal or on the console.

A console was originally a physical thing, a control panel. In computing terms it usually means the display that you see before the GUI starts up or after it finishes; you can sometimes switch to displaying it instead of the GUI. It's the place where the operating system prints error messages. On a multi-user computer, it's the display that's actually attached to the computer. Just to confuse you, on Windows it can also mean a window with a command shell in it, i.e. a terminal.

A terminal was also originally hardware, used to communicate with a computer. Nowadays it usually refers to a window with a command line (shell), which might appear in a GUI window or instead of a GUI.

share|improve this answer

There really isn't much difference. Way back when the "shell" was a program, the "terminal" was a frontend wrapper to this program, and the "console" was the physical connection to the computer (keyboard / screen).

There is a difference depending on what OS you're running. The "standard" shell is BASH, which is normally available on all flavors of Linux / Unix. Windows uses an entirely different shell.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.