Linux系统中,/dev/ttyn表示控制台终端,即上面所说的文本命令行终端,可通过Alt+Fn相互切换的。当在控制台登陆时,使用的是tty1,这时用who指令可查看到tty1已有用户登陆:

此时再打开一个文本控制台终端并登陆,就会有tty2被使用,依次类推,tty一般可支持6个,及tty1~tty6。tty0代表当前所使用的虚拟终端,系统所产生的信息会发送到这个终端上,相当于是当前所使用终端的一个别名,例如如果当前正在使用tty3,则tty0代表tty3。只有root用户能向/dev/tty0进行写操作。例如可通过ech0 “test” > /dev/tty0向当前使用的终端发送test消息,但是如果不是root用户会提示permission denied。
上面的图中还有3个pts终端,在我的机器上,pts/0和pts/2是两个xwindow控制台,pts/1是通过SSH登录的Xshell终端。此时通过ls /dev/pts查看会出现以下信息:

pts是pty的实现方法,与ptmx配合使用实现pty,而pty就是虚拟终端,即伪终端。Pty是成对的逻辑终端设备,即master和slave设备,对master的操作会反映在slave上。他们与实际物理设备并不直接相关。如果一个程序把ptyp3(master设备)看作是一个串行端口设备,则它对该端口的读/ 写操作会反映在该逻辑终端设备对应的另一个ttyp3(slave设备)上面。而ttyp3则是另一个程序用于读写操作的逻辑设备。
Linux下还有一个终端叫串口终端,即/dev/ttySn。这些终端是使用计算机串行端口连接的终端设备,对应于DOS系统下的COM1~COMn。例如,执行echo test > /dev/ttyS1会把单词test发送到连接在ttyS1端口的设备上。
最后,可通过执行skill -9 xxx清除xxx控制台的所有进程。例如:skill -9 /dev/pts/0则会清除第一个xwindow控制台的所有进程。










