伪终端(pseudo-terminal)是什么?

伪终端(pseudo-terminal,简称PTY)是在Unix和Linux系统中用于模拟真实物理终端的一种机制。它允许程序像与真实终端交互一样与用户或其他进程进行通信,但实际上并不依赖物理设备。伪终端通常用于实现远程连接、窗口管理器中的终端模拟、脚本自动交互等场景。

一、伪终端的工作原理

伪终端系统分为两部分:

1、主设备(master device, PTY master, 通常为/dev/ptmx):

模拟终端的控制端。应用程序可以通过此设备与伪终端进行交互,接收和发送数据。

2、从设备(slave device, PTY slave, 通常位于/dev/pts/*):

模拟终端的用户端。与普通的物理终端一样,程序通过从设备与用户交互。每个从设备对应一个伪终端实例,如pts/0、pts/1等。

当用户通过伪终端与系统交互时,主设备会处理输入和输出流,而从设备提供类似物理终端的环境给程序使用。

二、伪终端的典型应用场景

1、远程连接工具

SSH、Telnet等远程连接工具会为每个会话创建一个伪终端。远程用户输入的命令通过伪终端发送到服务器执行,服务器的输出也通过伪终端返回给用户。这种机制让远程用户可以像在本地终端一样操作系统。

例如,当你通过SSH连接服务器时,系统会为该会话分配一个伪终端,如pts/1,供你和服务器通信。

2、终端模拟器

图形化桌面环境中的终端模拟器(如 GNOME Terminal、xterm)使用伪终端来提供类似物理终端的操作体验。当你打开一个终端窗口时,系统为该窗口分配一个伪终端,使得你可以在虚拟终端中运行Shell和其他命令。

3、脚本和工具的交互式会话

一些自动化工具或脚本(如 expect)通过伪终端模拟用户与程序的交互,能够自动发送命令并捕获程序的输出,特别适用于自动化测试或批处理任务。

三、伪终端与真实终端的区别

  • 真实终端:例如连接键盘和显示器的物理终端或通过串口连接的终端设备。
  • 伪终端:是一种虚拟化的终端接口,提供与真实终端相同的接口,但没有物理硬件依赖,通常用于程序之间的通信。

四、示例

假设你使用 SSH 登录远程服务器,运行 ps -a 时看到如下内容:

PID TTY      TIME CMD
1234 pts/0   00:00:00 bash
5678 pts/1   00:00:05 top

这表示你当前的会话通过 pts/0 伪终端运行了 bash,另一个会话通过 pts/1 伪终端运行了 top,每个伪终端为一个独立的远程会话或终端窗口。

总结

伪终端在Linux/Unix系统中提供了一种灵活的机制,用于模拟终端设备,使用户、程序或远程连接工具可以通过虚拟终端与系统交互,特别是在远程会话和终端模拟器中非常重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1543144.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Vulnhub:Cybero1

靶机下载地址 主机发现 扫描攻击机同网段存活主机。 nmap 192.168.31.0/24 -Pn -T4 靶机ip:192.168.31.118 端口扫描 nmap 192.168.31.118 -A -p- -T4 开放端口:21(ftp)、22(ssh)、80(http)、8085(http)。 HTTP信息收集 80 访问http://192.168.3…

毫米波雷达预警功能 —— 倒车预警(RCTA)

文档声明: 以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。 笔记资料仅供学习交流使用,转载请标明出处,谢谢配…

股指期货的持仓量指标如何分析?有哪些作用?

股指期货市的持仓量是一个极其重要的指标,它就像市场的“晴雨表”,能反映出投资者的信心、市场的热度以及潜在的趋势。下面,我们就用大白话的方式来详细解读一下股指期货持仓量指标的分析方法及其作用。 一、什么是股指期货持仓量&#xff1…

骨传导耳机哪款值得入手?分享五款高品质好口碑骨传导耳机~

在不经意间,耳机已深深嵌入我们的日常生活,无论是早晨的匆忙出门,还是日常通勤、工作忙碌,乃至夜晚的休憩时光,它都是我们的忠实伴侣。然而,关于长时间佩戴耳机可能对听力造成的潜在影响,让不少…

【动态规划】两个数组的 dp 问题二

两个数组的 dp 问题 1.正则表达式匹配2.交错字符串3.两个字符串的最小ASCII删除和4.最长重复子数组 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃&#x1…

迅为iTOP-STM32MP157开发板板载4G接口(选配)_千兆以太网_WIFI蓝牙模块_HDMI_CAN_RS485_LVDS接口等

迅为ITOP-STM32MP157是基于ST的STM32MP157芯片开发的一款开发平台。在STM32MP157开发平台上,我们也做了比较多的创新,其中重要的一点就是,iTOP-STM32MP157核心板电源管理采用ST全新配套研制的PMIC电源管理芯片STPMU1A。为整个系统的稳定运行提…

【小程序】微信小程序课程 -2 快速上手

目录 1、快速上手基本概念 1.1 小程序常用组件 1.2 tabbar配置 1.3 尺寸单位 1.4 样式 1.4.1 全局样式 app.wxss 1.4.2 局部样式 xx.wxss 2、首页案例 2.1 button组件使用 2.2 swiper swiper-item 2.3 tips效果 2.4 引入矢量图 2.5 flex(布局&#…

老程序员的数字游戏开发笔记(三) —— Godot出你的第一个2D游戏(一篇文章完整演绎Godot制作2D游戏的全部细节)

忽略代码,忽略素材,忽略逻辑! 游戏的精髓是人性与思想,我一篇一篇地制作,不想动手的小伙伴看一看就可以,感受一下也不错,我们是有目的性的,这一切都是为今后的AI融合打基础&#xf…

pg入门3—详解tablespaces—下

pg默认的tablespace的location为空,那么如果表设置了默认的tablespace,数据实际上是存哪个目录的呢? 在 PostgreSQL 中,如果你创建了一个表并且没有显式指定表空间(tablespace),或者表空间的 location 为…

CCRC-DSA数据安全评估师: 2030年人工智能将更为普及

近日,IDC发布了一份名为《人工智能对经济和就业的全球影响》的报告,预测到2030年,采用人工智能(AI)技术,以及在现有业务中应用AI和为企业及消费者提供更优质产品/服务的相关支出,将累计为全球经…

2024/9/22

系列文章目录 文章目录 系列文章目录前言一、两条腿走路二、编程语言能力提升1.廖雪峰的python课2.Leetcode(数据结构题) 三、机器学习能力提升1.统计学习方法 李航2.kaggle竞赛 四、神经网络能力提升1.神经网络与深度学习 邱锡鹏2.一套自己的万金油模板…

[sniffer]分析

注意事项 ap设置为不加密,sinffer可查看tcp状态 尽量先用不打印调试信息的版本,提高cpu 吞吐 packets Singal:表示信号强度 channel:表示信道 data rate:表示速率 flags:"#“表示ACK;”&…

倍增算法——AtCoder Beginner Contest 370 F

F - Cake Division 题意:就是说给你一个蛋糕,然后又n块,让你分成k份,每份蛋糕必须要相连,然后问你所有分的情况中,最小的那一份蛋糕,最大的质量是多少,然后判断,在每一种…

【永磁同步电机(PMSM)】 6. 矢量空间算法(SVPWM)

【永磁同步电机(PMSM)】 6. 矢量空间算法(SVPWM) 1. SVPWM 的基本原理1.1 SVPWM 的优点1.2 SVPWM 的电路拓扑1.3 连续旋转的空间矢量 2. SVPWM 的算法实现2.1 电压矢量组合方案2.2 SVPWM 的实现步骤 3. 基于 Simulink 的 SVPWM 仿…

根据一级分类Id获取专辑标签(内连接,一对多)

文章目录 base_attributebase_attribute_value 1、BaseAttribute2、BaseAttributeValue3、BaseCategoryApiController --》findAttribute()4、BaseCategoryServiceImpl --》findAttribute()5、BaseAttributeMapper6、BaseAttributeMapper.xml 当选择完专辑分类之后,…

【BEV 视图变换】Ray-based(2): 代码复现+画图解释 基于深度估计、bev_pool(代码一键运行)

paper:Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D code:https://github.com/nv-tlabs/lift-splat-shoot 一、完整复现代码(可一键运行)和效果图 import torch import torch.nn as nn import mat…

旺店通ERP集成金蝶EAS(金蝶EAS主供应链)

源系统成集云目标系统 金蝶EAS介绍 金蝶EAS是一款全球首款融合TOGAF标准SOA架构的企业管理软件,专门为大中型企业设计,以“创造无边界信息流”为产品设计理念,支持云计算、SOA和动态流程管理的整合技术平台。 旺店通介绍 旺店通ERP系统是一…

CORE Kestrel Web、InProcess、OutOfProcess、启动配置

Kestrel 服务 ASP.NET Core是一个跨平台框架。 这意味着它支持在不同类型的操作系统(例如Windows,Linux或Mac)上开发和运行应用程序。 Kestrel是ASP.NET Core应用程序的跨平台Web服务器。 这意味着该服务器支持ASP.NET Core支持的所有平台和…

防火墙详解(二)通过网页登录配置华为eNSP中USG6000V1防火墙

配置步骤 步骤一 打开eNSP,建立如下拓扑。防火墙使用:USG6000V1。 Cloud的作用是通过它可以连接本地的网卡,然后与我们的电脑进行通信。 由于防火墙USG6000V,不能直接开启,需要的导入包,所以需要在华为官网…

一文了解什么是大模型?到底大模型有什么用呢?

党中央、国务院面向未来准确把握时代大势,已于十三五期间部署推进数字中国建设,《国民经济和社会发展第十四个五年规划和2035年远景目标纲要》更是将“加快数字化发展,建设数字中国”单列成篇,要求“提高数字政府建设水平”&#…