当我使用命令时,我总是看到 pts 和 tty,who
但我不明白它们有什么不同?有人能解释一下吗?
答案1
A终端是本机终端设备,后端是硬件或内核模拟的。
A普蒂xterm
(伪终端设备)是由其他程序(例如: 、screen
、 或ssh
等程序)模拟的终端设备。 A分是 a 的从属部分普蒂。
(更多信息可以在 中找到man pty
。)
简短的摘要:
A普蒂posix_openpt()
由一个进程通过(通常打开特殊设备)创建/dev/ptmx
,由一对双向字符设备构成:
主部分,即该进程通过本次调用获得的文件描述符,用于模拟终端。经过一些初始化后,可以使用 解锁第二部分
unlockpt()
,并且主机用于向第二部分(从机)接收或发送字符。从机部分锚定在文件系统中
/dev/pts/x
(主机可以通过 获取真实名称ptsname()
),其行为类似于本机终端设备 (/dev/ttyx
)。在大多数情况下,会启动一个 shell,将其用作控制终端。
答案2
Atty
是常规终端设备(例如服务器上的控制台)。
Apts
是伪终端从机(一个xterm
或一个ssh
连接)。
man pts
对伪终端有详细的描述。