通常我们在linux下看到的控制台(console)是由几个设备完成的。分别是/dev/ttyN(其中tty0就是/dev/console,tty1,tty2就是不同的虚拟终端
(virtual console))。通常使用热键ctrl+alt+Fn来在这些虚拟终端之间进行切换。所有的这些tty设备都是由linux/drivers/char/console.c和vt.c对应。
/dev/pts是远程登陆(telnet,ssh等)后创建的控制台设备文件所在的目录。由于可能有好几千个用户登陆,所以/dev/pts其实是动态生成的,
不象其他设备文件是构建系统时就已经产生的硬盘节点(如果未使用devfs)
/dev/ttyn 虚拟终端(virtual consols),全屏显示。通常情况 1<=n<=63。
/dev/console 指向当前的虚拟终端,与/dev/tty0等效。
/dev/ptsn 伪终端(pseudo-tty)。n取值动态增长。ssh远程登录或X11环境下即是此情况。
/dev/tty 指向当前终端。
为什么会有如此多的/dev/ttyn,比如/dev/tty1,/dev/tty2……等等?
初期在linux字符界面下,为了实现同时处理多任务,自然的需要多个窗口的切换。当然,有了X11,一切都不是问题了。
tty命令用来打印与标准输入连接的终端名称
如果显示的是/dev/console,那么此终端为控制台终端
如果显示的是/dev/pts/n,那么此终端为虚拟终端(远程连接到linux server的终端)。
通过查看tty命令执行的返回码为0,确认标准输入是一个终端。
$tty
/dev/pts/0
ctrl+alt+F1
$tty
/dev/tty1
虚拟终端(/dev/pts/n)
在Xwindows模式下的伪终端
参考:http://blog.youkuaiyun.com/janvi/article/details/8218604