Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I know this might sound foolish but I just wanted to know if there is really a difference between the two words used in the Linux world. I do know that the Shell is a Command Line Interface and has many variants like Bash, Korn, etc. And I also know that a Ctrl+Alt+T launches a terminal on Ubuntu. I just want to connect these two dots.

Does it mean the terminal is the window that opens up and the shell is the program that runs behind to interpret the commands typed in the window? Or are they same wherein terminal is a generic term used to abstract the concepts of Shell,etc?

What is it that exactly differentiates the two words?

share|improve this question

3 Answers 3

up vote 20 down vote accepted

The terminal emulator (often just called terminal) is "just the window", yes. It runs a text based program, which by default is your login shell (which is bash in Ubuntu). When you type characters in the window, the terminal draws these characters in the window in addition to sending it to the shell's (or other program's) stdin. The characters the shell outputs to stdout and stderr get sent to the terminal, which in turn draws these characters in the window.

So yes, the shell and the terminal emulator are completely separate programs, and either can be used without the other.

share|improve this answer

I think this question has been explored pretty thoroughly on the Unix and Linux stackexchange site: Differences between shell, console and terminal

share|improve this answer
1  
May be you could add the essential parts of the link into your answer? –  jokerdino Mar 9 '12 at 12:28

Yes, the terminal emulator and the shell are too different programs. As you're aware, one example of the difference is that launching a terminal window can run different shells depending on what you have configured (bash, tcsh, ksh, ash, even python!).

Another difference is that there are more terminal emulators than just the default: gnome-terminal, several varieties of xterm, konsole (for KDE), etc. (see: http://www.howtogeek.com/howto/ubuntu/set-the-default-terminal-emulator-on-ubuntu-linux/ ). Any shell can be run in any of these terminal emulators, without much difficulty.

A third difference is that, besides running shell commands, you can also start certain interactive applications in your terminal emulator, and they will run in the same window (and still relying on the same terminal emulator program to handle the actual graphics), such as the vim text editor, the nethack RPG, and others. If you wanted, you could set up a profile in your terminal emulator to start nethack, say, automatically when you opened a new tab; no shell involved, but the terminal emulator is still the same program.

A fourth difference is that you can perform remote logins, using a program like ssh, from inside a terminal window. In this case, your shell (or whatever program you run remotely) is running on another computer, and the ssh program connects it to the local terminal emulator program running on your machine which handles graphics.

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.