What is a virtual terminal for?

A Virtual Terminal is a full-screen terminal which doesn't run inside an X window (unlike the terminal window on your graphical desktop). Virtual terminals are found on all GNU/Linux systems, even on systems which don't have a desktop environment or graphical system installed.

Virtual terminals can be accessed on an Ubuntu system by pressing Ctrl+Alt+F1 till F6. To come back to the graphical session, press Ctrl+Alt+F7.

You can get more in-depth info about virtual terminals on its Wikipedia article.


Not all users need or run a graphical environment, and they will work from the virtual terminals.

Many (most) servers do not have a graphical environment as users are rarely logged in to the console. Servers most often require a command line from which the administrator can access the system to monitor or configure it. The virtual terminal provides this environment. Having more than one virtual terminal allows the administrator to switch to another terminal if necessary.

On a desktop with a broken Xserver (graphical environment) the virtual console provides a terminal session from which the Xserver can be reconfigured.


The main-frame computers to which old text terminals were connected to were not considered to be "servers". They were just part of the computer system just like a monitor doesn't connect to a server PC. Virtual terminals are not real text-terminals but are emulated text-terminals. It's important to include the word "text" since they are not GUI terminals (sometimes called thin Clients).

Virtual terminals are nice since one can set up each one to have a different color display by putting the setterm program in say the /etc/rc-local file that runs at boot time. Then one may use one virtual terminal to run a script that does something that fails; Use another terminal to change the configuration that might fix the problem; Use still another terminal to look up documentation regarding the problem; use another terminal to go on the Internet with a text browser to help solve the problem, etc., etc. Since each screen has a different color background, seeing the right color assures one that they are where they want to be when switching from one terminal to another. But alas, there are not enough colors; only 8. There is a terminal type linux-16color but how to use it? setterm doesn't support it.