why are there many terminals and what is the point of those specially gnome terminal and virtual terminal
xterm
and gnome-terminal
are simply two different kinds of "terminal emulators", i.e. they make it look like you are on a real terminal (=text mode linux), but are designed to work in a GUI environment. xterm is the classical X11 terminal, while gnome-terminal is Gnome's default terminal.
The difference, apart from visual appeal, is that gnome-terminal has many more features than xterm but also requires you to be running Gnome. There are many more terminals of this kind available: xfce4-terminal, lxde-terminal, etc., with different looks, different feature sets, different dependencies and different "weights" (i.e. how much RAM they consume).
The "virtual terminals" (Ctrl+Alt+F1 to F6) are "real" terminals, not terminal emulators. If your regular desktop (Gnome) is ever in trouble, or you are having problems booting, you can try switching to another virtual terminal so that you can log in and try to fix the problem (in text mode).
This is a real terminal, as larsmans pointed out:
I don't think there is any difference between the two it's just that once you run a command using Alt + F2 the dash closes before you see the results / output. But it is used according to different purpose as following.
Use Alt + F2 when running commands that expected no output or that open an external application. Example: gksu nautilus
which opens up a root nautilus window.
For commands that expected an output - ls
,rm
, find
, update
, upgrade
, install
, etc then recommended to use the terminal.
Best Answer
The virtual terminals (the ones you get to with Ctrl Alt F1-9) go back to the roots of Linux. Remember that Linux was originally a command-line only system and designed for multiple users. The idea was that each user could log into a single tty. This would not happen on the same physical machine of course, think of servers that many computer terminals would connect to. Each user would connect using a different computer and the server log them in to a tty.
This has nothing to do with the
tty
command which is part ofcoreutils
. Thetty
command is simply a tool that lets you know the name of the terminal you are currently using.The "terminal" (actually called a "terminal emulator") is simply a GUI program that mimics the old behavior. It lets you run a shell (bash in the default Ubuntu) from within your X session.
The main point is that both the virtual terminals and the terminal emulators provide you with a command line interface, a shell. They are basically the same thing. The only important difference from a practical point of view is that the terminal emulators run interactive, non-login shells while if you drop into a tty and login there, you will run an interactive, login shell. For more information on the differences between these two types of shell, see here.
I suggest you also read this excellent Q&A on Unix & Linux:
What is the exact difference between a 'terminal', a 'shell', a 'tty' and a 'console'?.