Linux的终端终结

1. tty(终端设备的统称):

tty一词源于Teletype,或者teletypewriter,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。
终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。

2. 物理终端:

即本地计算机控制台终端;
位于/dev/console
物理终端和虚拟终端tty[1-6]下与之对接,而被对接的虚拟终端被称为"焦点终端",即当前所处的虚拟终端;
串口终端:通过串口设备连接而形成的终端,位于/dev/ttyS*;

3. 虚拟终端:

位于/dev/tty[1-6],用于和物理终端对接的设备文件,tty1,tty2…tty6可通过Ctrl+Alt+F[1-6]切换;
当前所处虚拟终端将和物理终端对接,系统将信息发送到物理终端上,对接的虚拟终端(设备文件)即可接受并显示信息;所以当前虚拟终端下也是console终端;
tty0则指代当前所处虚拟终端,tty[1-6]中的一个;
tty则指代当前所处的任何终端(虚拟终端/物理终端/伪终端)的全局变量;
在当前虚拟终端下,向设备文件/dev/console写入数据,则将显示在该终端;
]$ tty #查看当前终端
/dev/tty2
]# echo “12345” >> /dev/console
12345
]# echo “12345” >> /dev/tty0
12345
]# echo “12345” >> /dev/tty2
12345
]# echo “12345” >> /dev/tty
12345
同理通过虚拟终端写入数据由物理终端接受并发送给系统.
毕竟本地物理终端只有一个console,但是为了实现多个终端用于人机交互,故产生不同设备文件与物理终端关联,而实现多会话窗口,即虚拟终端tty[1-6]

4. 伪终端:

即不是基于物理设备形成的终端,如通过TCP/IP连接的终端;
ssh(secure shell):用与远程会话登录及网络服务的提供安全协议;ssh建立在应用层基础上的安全协议;
当客户端通过ssh请求连接服务器时,服务器在运行sshd进程后,该进程将会一直等待连接请求,收到客户端请求后将生成一个子连接用于跟客户端连接处理,该子进程将连接一个伪终端/dev/pts/(客户端)终端,然后跟服务器上的sshd进程上的伪终端/dev/ptmx配对(秘钥验证),成功后两者之间将形成管道,即可信息数据传输,而客户端可通过shell(bash)的基础上将数据信息经TCP/IP以ssh加密方式传输至pts/*到ptmx,后系统处理返回结果至客户端;







See also:
[1].https://www.cnblogs.com/bittorrent/p/3789193.html
[2].https://blog.csdn.net/yazhouren/article/details/78793367

猜你喜欢

转载自blog.csdn.net/weixin_40948696/article/details/83934568