Original link
Terminal (terminal, or physical terminal):
is a device, not a program, typically a device that provides a command-line user interface, typically a screen and keyboard, or some other physical terminal.
Virtual Terminal:
Screen and keyboard is only a terminal, may not be enough, and do not want to increase equipment input, resulting in a virtual terminal.
Gnome-terminal,urxvt,mlterm,xterm et cetera:
is a program, the responsibility of the analog terminal, and the difference between the virtual terminal surface is that it appears in the GUI form of the window, the internal program structure and system control structure is different, but essentially similar.
Console:
The terminal that displays the system message is called the console, the Linux default all virtual terminal is the console, can display the system message.
But sometimes it refers to the CLI of the analog terminal equipment, a program, and Gnome-terminal,urxvt,mlterm,xterm, and so on, just the CLI and GUI interface differences. General console has 6, TTY1-6,CTRL+ALT+FN switch. Haven't heard how to change the console.
Shell is an abstract concept, the shell of all operations in the computer, responsible for the processing of human interaction, execution of scripts, etc., is the operating system is an important part of the normal operation
BASH,ASH,ZSH,TCSH is a concrete implementation of the abstract concept of the shell, which is a program that can generate a process object.
If you want to change the shell of the program, you can modify the/etc/passwd, the inside of the/bin/bash to replace the shell you want, or with chsh command to switch
Shell-to-terminal relationship: The shell transports some information to the terminal, and also receives input from the terminal. In general, each shell process will have a terminal association, or it may not.
What does
shell,bash,zsh,console,terminal mean, and what is the relationship between them?