Unix is a multi-user and multi-tasking operating system. In the early days, computers were expensive, so cheap devices were connected to the computers (there were no keyboards and monitors at that time, and paper tapes and cards were used for input and output) to use the operating system. This cheap device was a terminal, and a terminal can also be considered a console. So you can think of the computer itself as the console terminal, and the cheap connection device as the physical terminal pty.
Linux is a Unix-like system, so it also inherits the characteristics of the terminal. But then computers became cheaper and monitors and keyboards appeared, so you could use the keyboard as an input terminal and the monitor as an output terminal. These terminals were virtual terminals, and the virtual terminal was actually a virtual console, or a virtual device.
Linux provides many kinds of virtual terminals, which are represented by ttyN. You can use Ctrl+Alt+F[1-6] to switch virtual terminals. These terminal devices are recorded in the /dev/ directory.
[root@xuexi ~]# ls /dev/tty tty tty12 tty17 tty21 tty26 tty30 tty35 tty4 tty44 tty49 tty53 tty58 tty62 ttyS0 tty0 tty13 tty18 tty22 tty27 tty31 tty36 tty40 tty45 tty5 tty54 tty59 tty63 ttyS1 tty1 tty14 tty19 tty23 tty28 tty32 tty37 tty41 tty46 tty50 tty55 tty6 tty7 ttyS2 tty10 tty15 tty2 tty24 tty29 tty33 tty38 tty42 tty47 tty51 tty56 tty60 tty8 ttyS3 tty11 tty16 tty20 tty25 tty3 tty34 tty39 tty43 tty48 tty52 tty57 tty61 tty9
The tty plus the value is the virtual terminal. CTRL+ALT+F1 means switching to the tty1 terminal, ctrl+alt+f2 means switching to the tty2 terminal. Generally, Linux only provides the function of switching between the six terminals ctrl+alt+f[1-6]. The two special terminals are tty and tty0. tty represents the terminal currently in use, and tty0 represents all virtual terminals that are currently activated. There are also ttySN, these represent serial terminals.
There are also terminals connected to the computer from the network through ssh or telnet, or command line terminals opened from the graphical virtual terminal, which are called pseudo terminals, represented by pts/N, and the corresponding device is / Numerical N files in the dev/pts directory.
[root@xuexi ~]# ls /dev/pts/0 ptmx
0 represents the first pseudo terminal, 1 represents the second pseudo terminal.
The management method of pseudo terminal is different from that of all other terminals. It is managed through the program that connects to the computer. For example, for ssh connection, ssh is responsible for applying for pseudo terminal resources and requires input of user name and password. If the ssh connection process is killed, the pseudo terminal will exit accordingly.
In addition, some authentication programs may not necessarily allocate a terminal to the connection slave program. For example, when executing sudo ssh, sudo may not necessarily allocate a pseudo terminal for ssh.
On modern Linux, the console terminal is no longer the same as its original meaning. Its device is mapped on /dev/console. All information output by the kernel is output to the console terminal, while other user programs output Information is output to a virtual terminal or pseudo terminal.
To summarize:
/dev/console: console terminal
/dev/ttyN: virtual terminal, ctrl+alt+f[1-6] switches Virtual terminal
/dev/ttySN: Serial terminal
/dev/pts/N: Pseudo terminal. The command line terminal that is connected to the past by ssh and other tools or opened under the graphical terminal is a pseudo terminal. .
The above is the detailed content of A detailed explanation of Linux terminal types. For more information, please follow other related articles on the PHP Chinese website!