Linux / UNIX支持存储在/dev目录中的设备文件。这些不是实际的文件,而是代表附加到系统的硬件设备的特殊文件或字符设备。
一些最常被误解的设备文件是/dev/console、/dev/tty和/dev/tty0。在本指南中,我们将探讨区分这三个设备文件的细微差别。
Linux中的/dev/tty是什么
“ tty ”是TeleTYpewriter的缩写。它起源于早期的终端,用于连接到计算机,如电传打字机或电传打字机。
/dev/tty文件是一个特殊文件,代表当前进程的终端,它显示与当前 SSH 会话关联的终端。
要检查您当前正在使用哪个tty,请运行以下命令:
$ 终端 或者 $我是谁
输出显示当前tty是/dev/pts/0。这代表伪终端从机,是由 SSH 连接或其他程序(例如xterm或screen)模拟的终端设备。
![](https://www.alaica.com/wp-content/uploads/linux-187.png)
Linux 中的 /dev/tty[0-N] 是什么
/dev/tty[0-N]只是一个虚拟控制台,如果您正在运行N
代表TTY编号的 GUI 系统,则可以从主终端切换到该虚拟控制台。默认情况下,/dev/tty0是默认的虚拟控制台。
例如,如果您正在运行Ubuntu 22.04的图形实例,请启动终端并输入CTRL + ALT + F1
,这将打开一个黑色终端屏幕,如下所示。
正如您所看到的,从输出中,我们使用的是tty1,其中1
对应于按下的功能键。
![](https://www.alaica.com/wp-content/uploads/linux-188.png)
tty1到tty63是虚拟终端,也称为VT或虚拟控制台。如前所述,它们在物理控制台设备驱动程序之上模拟多个控制台。
Linux中的/dev/console是什么
/dev/console被称为系统控制台,引导和内核消息在引导期间显示在该控制台上。与其他Linux 设备文件一样,它驻留在/dev目录中。
您可以通过运行以下ls 命令进行确认,如下所示。
$ ls -lah /dev/console
![](https://www.alaica.com/wp-content/uploads/linux-189.png)
/dev/console的存在主要是为了向用户空间公开内核的控制台。它在系统启动(以及关闭)期间显示消息,并且还有助于使用init 1命令切换到单用户模式。
结论
我们希望您现在能够找出我们刚刚介绍的三个设备文件之间存在的差异。欢迎您对本指南提供反馈。