文章 > RedHat > 麒麟Linux中的TTY与PTS终端详解

麒麟Linux中的TTY与PTS终端详解

炎燚小寶 · 2025-02-08 121 RedHat
分享 收藏

Linux操作系统中,TTYTeletypewriter)和PTSPseudo Terminal Slave)是两种不同的终端类型。它们各自有不同的用途和特性,对于理解Linux的用户交互界面以及如何进行远程登录等操作至关重要。

1. tty(Teletype)

• 定义与历史
tty物理终端虚拟终端的抽象,源自早期的电传打字机(Teletype)。在现代Linux中,每个物理终端或虚拟控制台(如通过Ctrl+Alt+F1~F6切换的界面)对应一个tty设备。

• 设备文件
设备文件位于 /dev/ttyN(如/dev/tty1),或虚拟终端如/dev/ttyS0(串口终端)。

• 使用场景

◦ 物理控制台(直接连接的键盘和显示器)。

◦ 通过Ctrl+Alt+Fn切换的虚拟终端。

◦ 串口终端(如嵌入式设备调试)。

• 特点

◦ 直接与内核交互,无需网络协议。

◦ 权限控制严格(如/etc/securetty可限制root登录的tty设备)。

 

2. pts(Pseudo-Terminal Slave)

• 定义与用途

pts伪终端(Pseudo-Terminal)的从设备端,用于模拟终端行为。通常与ptmx(伪终端主设备)配对出现,由终端模拟器(如SSH、图形界面终端)创建。

• 设备文件
动态创建的设备位于 /dev/pts/N(如/dev/pts/0),每个会话分配一个唯一编号。

• 使用场景

◦ SSH远程登录。

◦ 图形界面中的终端模拟器(如GNOME TerminalKonsole)。

◦ screentmux多路复用会话。

• 特点

◦ 通过主从设备对(ptmxpts)实现数据转发。

◦ 支持网络传输(如SSH加密通信)。

◦ 用户权限更灵活(取决于启动进程的用户)。

 

3. 核心区别

特性

tty

pts

设备类型

物理终端或虚拟控制台

伪终端(网络/模拟终端)

设备路径

/dev/ttyN/dev/ttySN

/dev/pts/N

创建方式

系统启动时预分配

动态创建(按需生成)

依赖关系

直接连接或虚拟控制台

需主设备(ptmx)配合

典型应用

本地控制台、串口设备

SSH、图形终端、终端多路复用

 

 

4. 查看当前终端类型

• 命令示例

# 查看当前终端设备文件路径
$ tty
/dev/pts/0  # 若为伪终端,显示pts;若为物理终端,显示ttyN


 

# 查看进程关联的终端

$ ps -p $$   # 查看当前Shell的终端信息


 

5. 伪终端(PTS)的工作流程

1.  主从设备创建
当用户通过SSH或图形终端登录时,终端模拟器(如sshd)创建一对伪终端:

◦ 主设备(ptmx:由终端模拟器控制,负责接收用户输入。

◦ 从设备(pts:关联到用户的Shell进程,接收主设备转发的内容。

2.  数据流
用户输入 主设备(ptmx 从设备(pts → Shell进程
Shell输出 从设备(pts 主设备(ptmx 终端显示 

6. 常见问题

• 为什么SSH会话显示为pts
SSH通过伪终端模拟终端行为,因此会话关联到/dev/pts/N

• 如何限制用户通过pts登录?
修改/etc/securetty文件(仅列出允许的tty设备,不包含pts)。

• ttypts的权限差异
tty设备通常属于root:tty,而pts设备属于启动它们的用户。

 

总结

tty:直接与硬件或虚拟控制台关联,适合本地操作。

pts:通过伪终端模拟,用于远程或图形环境,灵活性更高。

理解两者区别有助于排查终端权限、会话管理等问题(如SSH配置或/dev设备权限错误)。

 


点击加载更多