别再混淆了!5分钟搞懂Linux里的TTY、PTS和PTY到底啥关系(附常用命令清单)
别再混淆了5分钟搞懂Linux里的TTY、PTS和PTY到底啥关系附常用命令清单第一次在Linux终端里敲who命令时看到输出结果里的pts/0和tty1是不是一头雾水更别提/dev/ptmx这种神秘路径了。别担心今天我们就用最接地气的方式把这些看似高深的概念拆解得明明白白。想象一下你正在用SSH远程操作服务器——这背后其实藏着一整套精密的终端通信系统。从老式打字机演变而来的TTY到现代虚拟终端PTS再到主从配合的PTY它们就像一支配合默契的接力队共同完成你的每个命令。下面我们就从历史演进的视角看看这支接力队如何运作。1. 从打字机到虚拟终端TTY的前世今生1960年代的计算机房是什么样子没有显示器没有图形界面只有哐当作响的电传打字机Teletypewriter简称TTY。这种机械装置通过串行电缆连接计算机键盘输入字符打印头输出结果——这就是最早的人机交互界面。# 查看系统当前所有TTY设备 ls /dev/tty*随着技术进步物理打字机被淘汰但TTY这个概念被保留下来。现代Linux系统中物理TTY直接连接主机的控制台如/dev/tty1按CtrlAltF1~F6可切换虚拟TTY终端模拟器如GNOME Terminal创建的虚拟设备伪终端PTYSSH等远程连接时创建的终端仿真器关键区别物理TTY直接对应硬件而PTS/PTY是完全由软件模拟的虚拟设备。就像实体电话与网络电话的区别。2. 主从配合的魔术PTY架构解析当你通过SSH登录时系统会动态创建一个伪终端对PTY pair包含组件角色典型路径功能说明PTMX主设备Master/dev/ptmx创建新的PTY对控制整个会话PTS从设备Slave/dev/pts/0实际与shell交互的虚拟终端这个过程就像客服系统你拨打电话相当于打开SSH连接系统分配一个坐席PTMX主设备坐席把电话转给专员PTS从设备专员直接为你服务bash shell# 查看当前会话的终端设备 $ tty /dev/pts/1 # 查看所有伪终端会话 $ ls /dev/pts/ 0 1 ptmx3. 实战如何区分TTY和PTS日常操作中最容易混淆的就是tty和pts记住这个判断法则# 如果是本地直接登录非SSH显示ttyX $ who user tty1 2023-08-20 09:30 # 如果是SSH远程登录显示pts/X $ who user pts/0 2023-08-20 10:15 (192.168.1.100)特殊情况处理在桌面环境打开的终端窗口虽然本地操作但也可能显示pts通过w命令可以查看更详细的终端活动信息4. 必备命令工具箱掌握这些命令你就能玩转终端管理终端信息查询# 显示当前终端设备路径 tty # 查看所有登录用户及终端 who -a # 显示详细的终端活动 w终端属性设置# 查看当前终端设置 stty -a # 禁用CtrlC中断 stty intr undef # 设置终端行数 stty rows 50终端通信# 向指定终端发送消息 echo 服务器即将重启 /dev/pts/1 # 广播消息给所有用户 wall 系统维护将在5分钟后开始5. 常见问题排错指南Q1为什么我的脚本在SSH会话退出后就停止了原因默认情况下终端关闭会终止关联进程解决方案使用nohup或tmux保持会话nohup ./long_run.sh Q2如何找回丢失的终端步骤通过ps -ft pts/1查找关联进程使用reptyr命令重新接管Q3终端显示乱码怎么办# 检查并设置正确的locale locale export LANGen_US.UTF-8记住这个技术演进路线物理TTY → 虚拟终端 → 网络终端。下次再看到/dev/pts时你就能会心一笑——这不过是现代计算机对那个哐当作响的老式打字机的深情致敬。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2596041.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!