陈老师:1415968548 郑老师:2735197625 乐老师:354331153
客服热线:
19941464235 / 19906632509 / 19906733890 / 19905812933(微信同号)

客服微信

【操作系统】麒麟Linux中的TTY与PTS终端详解

作者:云贝学院
发布时间:2025-02-10 09:11
浏览量:129

本文为云贝教育 刘老师 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。


在Linux操作系统中,TTY(Teletypewriter)和PTS(Pseudo 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 Terminal、Konsole)。

◦ screen或tmux多路复用会话。


• 特点

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

◦ 支持网络传输(如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)。


tty和pts的权限差异

tty设备通常属于root:tty,而pts设备属于启动它们的用户。


总结

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

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

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



想了解更多相关的学习资料(技术文章和视频),可以微信公众号或B站搜索《云贝教育》,免费获取。

需要课程资料的同学可以私聊课程顾问:19906733890(微信同号)