Linux中的tty和pts概念和区别

目录

1、什么是tty

(1)tty的概念

(2)tty0

(3)tty1~6

 2、什么是pts

(1)pts的含义

(2)pts的具体解释

3、pts与 tty 设备的比较

4、设备文件的位置


1、什么是tty

(1)tty的概念

在 Linux 系统中,tty0 - tty6 是与终端设备相关的概念。“tty” 是 “teletypewriter”(电传打字机)的缩写,在早期计算机系统中,终端设备类似于电传打字机,用于用户和计算机进行交互。随着技术的发展,这个名称被保留下来用于指代各种终端设备接口

“tele -” 前缀

“tele -” 这个前缀来自希腊语,意思是 “远距离的;远的”。例如,在 “telephone”(电话)一词中,“tele -” 表示通过声音进行远距离通信;在 “television”(电视)中,表示通过图像进行远距离传播。在 “teletypewriter” 里,它表示这种设备能够实现远距离的文本信息传输。

“type” 部分

“type” 作为一个独立的单词,常见的意思是 “类型;种类”,但在这里它是动词 “打字;用打字机打” 的意思。这表明设备的主要动作是进行打字操作,也就是将字符通过按键输入并打印出来。

“writer” 部分

“writer” 是名词,意思是 “作者;书写工具”。在 “teletypewriter” 中,它强调该设备是一种用于书写(打印)文本的工具,结合前面的 “type”,可以理解为这是一种用于打字(打印)的设备,而且通过 “tele -” 前缀知道这种打字设备是可以用于远距离通信的。

(2)tty0

功能:tty0 通常代表系统的控制台(console)。控制台是系统启动时默认的显示和输入设备,也就是直接连接到计算机的显示器和键盘所在的终端。它提供了系统启动过程中的信息显示,如内核启动信息、系统初始化信息等。当系统正常启动后,用户登录界面也会显示在 tty0 上

应用场景:如果系统出现严重错误,如内核崩溃或者某些关键服务无法启动,相关的错误信息会输出到 tty0。另外,在没有图形化界面(如在服务器环境或者纯文本模式下),用户可以在 tty0 进行系统登录操作,通过命令行来管理系统。

(3)tty1~6

功能:这些通常是虚拟终端(virtual terminals)。在 Linux 系统中,用户可以通过组合键(如在大多数系统中通过 “Ctrl + Alt + F1” 到 “Ctrl + Alt + F6”)来切换到不同的虚拟终端。每个虚拟终端可以独立运行一个登录会话,也就是说可以有不同的用户在不同的虚拟终端登录系统,并且在每个虚拟终端中运行不同的命令和程序。例如,一个用户可以在 tty1 中运行文本编辑器来编辑文件,同时另一个用户可以在 tty2 中通过命令行来查看系统状态。

应用场景:这种多终端的设计提供了很大的灵活性。在服务器环境中,如果管理员需要同时进行多个任务,如一边在一个终端配置网络服务,一边在另一个终端查看日志文件,就可以通过切换不同的虚拟终端来实现。在开发环境中,开发者可以在一个虚拟终端中编译程序,在另一个虚拟终端中测试运行。而且在图形化界面出现问题时,用户仍然可以通过切换到虚拟终端来对系统进行操作。

在workstation中就可以使用crtl+alt+f1-6来切换虚拟终端进行登录系统。 

 2、什么是pts

(1)pts的含义

pts” 是 “pseudo - terminal slave”(伪终端从设备)的缩写。在 Linux 系统中,pts 设备用于实现远程登录或在本地通过终端模拟器(如 xterm、gnome - terminal 等)进行的终端会话。与 tty 设备不同,pts 设备不是物理意义上的终端接口,而是软件模拟出来的终端环境

“pseudo -” 部分

“pseudo -” 这个前缀的意思是 “假的;伪的”。就好比我们说 “pseudo - science”(伪科学),就是指那些看起来像科学,但实际上不是真正科学的东西。在 “pseudo - terminal slave” 里,“pseudo -” 表示这个终端不是真正的物理终端,而是模拟出来的。

“terminal” 部分

你可以把 “terminal” 简单理解成一个窗口或者一个通道,通过它你可以和计算机系统进行交互,就像你通过一个商店的收银台(终端)和商店的系统交互来结账一样。在计算机里,终端就是你输入命令和获取系统反馈的地方。

“slave” 部分

“slave” 在这里是一个比较专业的术语。在计算机的设备关系里,“slave” 和 “master”(主设备)是相对的概念。“slave” 设备通常是要听从 “master” 设备的指挥来工作的。在 “pseudo - terminal slave” 这个概念里,这个模拟的终端(“pseudo - terminal”)就像是一个从属设备,它要配合其他的程序或者设备来让你能够正常地和计算机系统进行交互。

(2)pts的具体解释

工作原理:当你通过 SSH(Secure Shell)远程登录到 Linux 系统,或者在本地使用终端模拟器打开一个新的终端窗口时,系统会为这个会话分配一个 pts 设备,通常第一个分配的是 pts/0。这个 pts/0 就相当于一个虚拟的终端接口,通过它可以像在本地物理终端(如 tty 设备)一样进行命令输入和输出操作。

应用场景:例如,当你使用 SSH 客户端从远程计算机连接到 Linux 服务器时,服务器端会为你的连接创建一个 pts/0 设备(如果是第一个连接)。你在 SSH 客户端中输入的命令会通过网络传输到服务器端的 pts/0 设备,服务器会根据命令进行处理,并将结果返回给 pts/0,然后再通过网络传输回你的 SSH 客户端显示出来。同样,在本地使用终端模拟器打开新窗口时,每个窗口会被分配一个 pts 设备,方便用户在不同的终端窗口中进行不同的操作,如在一个 pts 设备对应的窗口中编译程序,在另一个 pts 设备对应的窗口中查看文档等。

3、pts与 tty 设备的比较

tty 设备通常与本地物理连接相关(如控制台或者虚拟终端),而 pts 设备主要用于远程登录和终端模拟器。另外,tty 设备数量相对固定(如 tty0 - tty6),而 pts 设备的数量可以根据需要动态生成,例如,如果有多个用户同时通过 SSH 远程登录,系统会为每个用户依次分配 pts/0、pts/1 等设备。

4、设备文件的位置

tty 设备文件:tty 设备文件如tty0tty1等都在/dev目录中。例如,/dev/tty0代表控制台终端,/dev/tty1/dev/tty6代表虚拟终端。系统通过这些设备文件来管理对应的终端设备,当用户在终端进行输入输出操作时,实际上是系统在和这些设备文件打交道。

[root@ptivitic ~]# ll /dev | grep tty
crw-rw-rw- 1 root tty       5,   2 Jan  5 15:44 ptmx
crw-rw-rw- 1 root tty       5,   0 Dec 17 23:55 tty
crw--w---- 1 root tty       4,   0 Dec 17 23:55 tty0
crw--w---- 1 root tty       4,   1 Dec 17 23:55 tty1
crw--w---- 1 root tty       4,  10 Dec 17 23:55 tty10
crw--w---- 1 root tty       4,  11 Dec 17 23:55 tty11
crw--w---- 1 root tty       4,  12 Dec 17 23:55 tty12

pts 设备文件:pts 设备文件同样位于/dev目录下。当你通过 SSH 远程登录或者使用终端模拟器打开新的终端窗口时,系统会在/dev目录下创建相应的 pts 设备文件,如/dev/pts/0/dev/pts/1等。这些文件用于管理伪终端从设备,使得远程登录或本地终端模拟能够正常进行。

[root@ptivitic ~]# ll /dev/pts
total 0
crw--w---- 1 root tty  136, 0 Jan  5  2025 0
crw--w---- 1 root tty  136, 1 Jan  5 15:08 1
c--------- 1 root root   5, 2 Dec 17 23:55 ptmx
[root@ptivitic ~]# who
root     pts/0        2025-01-05 14:33 (112.44.20.187)
root     pts/1        2025-01-05 15:08 (112.44.20.187)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

gitlab高级功能之 CICD Steps

CICD Steps 1. 介绍2. 定义 Steps2.1 Inputs2.2 Outputs 3. Using steps3.1 Set environment variables3.2 Running steps locally 4. Scripts5. Actions5.1 已知的问题 6. 表达式7. 实操7.1 单个step7.2 多个step7.3 复用steps7.4 添加output到step7.5 使用远程step 1. 介绍 …

【Unity3D】UGUI Canvas画布渲染流程

目录 Screen Space - Overlay Screen Space - Camera World Space UI合批分析(建议不看 直接看FrameDebugger测试) 优化UI合批 1、Image图片纹理不同导致合批失败 2、文本和图片相交以及排序对合批的影响 3、Mask对合批的影响(情况…

平安产险安徽分公司携手安徽中医药临床研究中心附属医院 共筑儿童安全防护网

为响应金融知识普及教育号召,平安产险安徽分公司联动安徽中医药临床研究中心附属医院,于近日在朝霞小学举办了一场儿童安全防范与健康守护活动。此次活动旨在提升学生的安全防范意识,守护儿童健康成长,同时有力推动金融知识与传统…

zephyr移植到STM32

Zephy如何移植到单片机 1. Window下搭建开发环境1.1 安装Choncolatey1.2 安装相关依赖1.3创建虚拟python环境1.4 安装west1.4.1 使用 pip 安装 west1.4.2 检查 west 安装路径1.4.3 将 Scripts路径添加到环境变量1.4.4 验证安装 1.5 获取zephyr源码和[安装python](https://so.cs…

fail api scope is not declared in the privacy agreement微信小程序uniapp 解决录音无法播放、授权

已解决 fail api scope is not declared in the privacy agreement微信小程序uniapp 解决录音无法播放、授权 没有声明内容协议导致的 微信公众平台:https://mp.weixin.qq.com/【1.左下角的-移动过去后会出现 “帐号设置”】 【2.基本设置->服务内容声明->修…

虚拟机 网络防御(预防信息泄露)

了解VMware网络基本配置 Bridged(桥接模式):虚拟机和主机好比在同一个网络环境下的两台电脑。 NAT(网络地址转换模式):NAT模式虚拟机通过主机进行联网。(推荐) Host-0nly(主机模式):主机模式将虚拟机与外网隔开,只能让虚拟机和虚拟机之间联…

打包部署若依(RuoYi)SpringBoot后端和Vue前端图文教程

打包后端‘ 1,打开若依,点击右侧的Maven展开Maven管理,选择ruoyi>Lifecycle 先双击clean清除原本启动项目时生成的文件。然后点击package等待项目打包,切记要取消运行再打包 打包完成后会在ruoyi-admin>src>target里面…

矩阵碰一碰发视频源码搭建全解析,支持OEM

在数字化营销与互动体验需求日益增长的当下,矩阵碰一碰发视频功能以其独特的交互性和高效的信息传播能力,正逐渐成为吸引用户、提升品牌影响力的有力工具。本文将深入探讨如何搭建矩阵碰一碰发视频的源码,帮助开发者实现这一创新功能。 一、技…

专题十四——BFS

目录 一BFS解决FloodFill算法 1图像渲染 2岛屿数量 3岛屿的最大面积 4被环绕的区域 二BFS解决蛋源最短路径问题 1迷宫中离入口最近的出口 2最小基因变化 3单词接龙 4为高尔夫比赛砍树 三BFS解决多源最短路径问题 1 01矩阵 2飞地的数量 3地图中的最高点 4地图分…

openwrt 清缓存命令行

一、查看缓存 : free -m 二、清缓存:echo 3 > /proc/sys/vm/drop_caches  三、详解。 释放物理页缓存 echo 1 > /proc/sys/vm/drop_caches 释放可回收的slab对象,包含inode and dentry echo 2 > /proc/sys/vm/drop_caches 同时…

huggingface 下载方法 测试ok

目录 python下载方法: 设置环境变量 ~/.bashrc 缓存目录,默认模型下载目录 安装方法: python 下载无token: python 下载带token 常见报错 登录后创建Read token 2.3 创建token 使用token登录 python下载方法&#xff1…

滑动窗口_⻓度最⼩的⼦数组⽆重复字符的最⻓⼦串将x减到0的最⼩操作数

⻓度最⼩的⼦数组&#xff08;medium https://leetcode.cn/problems/minimum-size-subarray-sum/ 思路一&#xff1a;两个指针&#xff0c;p1 p2同时指向第一个元素。sump2,如果sum<target&#xff0c;p2直到大于&#xff0c;然后记录lenright-left。p1 p2再同时指向第二个…

【无标题】linux

Linux工具快速教程 Linux 基础 Linux工具快速教程1、使用命令帮助1.1 查看命令的简要说明1.2 查看路径 2. 文件及目录2.1 创建和删除2.2 切换目录2.3 列出目录项2.4 查找文件或目录 find2.5 查看文件内容2.6 查找文件内容 好用小工具linux工具电源统计1. 查询公网IPhttp://www.…

HarmonyOS-面试资料

1. HarmonyOS-面试资料 1.1. HarmonyOS 优点、特点 1.1.1. 优点 &#xff08;1&#xff09;在国家方面&#xff0c;是国产的系统&#xff0c;受国家支持不会有限制的情况。   &#xff08;2&#xff09;设备互连18N(1:手机 8&#xff1a;平板、PC、vr设备、可穿戴设备、智慧…

关于物联网的基础知识(一)

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于物联网的基础知识&#xff08;一&a…

基于Thinkphp6+uniapp的陪玩陪聊软件开发方案分析

使用uni-app框架进行前端开发。uni-app是一个使用Vue.js开发所有前端应用的框架&#xff0c;支持一次编写&#xff0c;多端发布&#xff0c;包括APP、小程序、H5等。 使用Thinkphp6框架进行后端开发。Thinkphp6是一个轻量级、高性能、面向对象的PHP开发框架&#xff0c;具有易…

springcloud 介绍

Spring Cloud是一个基于Spring Boot的微服务架构解决方案集合&#xff0c;它提供了一套完整的工具集&#xff0c;用于快速构建分布式系统。在Spring Cloud的架构中&#xff0c;服务被拆分为一系列小型、自治的微服务&#xff0c;每个服务运行在其独立的进程中&#xff0c;并通过…

jenkins入门6 --拉取代码

Jenkins代码拉取 需要的插件&#xff0c;缺少的安装下 新建一个item,选择freestyle project 源码管理配置如下&#xff1a;需要添加git库地址&#xff0c;和登录git的用户密码 配置好后执行编译&#xff0c;成功后拉取的代码在工作空间里

idea全局替换显示不全(ctrl+shift+R)

修改一下idea的配置就行 idea的默认显示条数为100&#xff0c;可以修改成10000

Ubuntu 下测试 NVME SSD 的读写速度

在 Ubuntu 系统下&#xff0c;测试 NVME SSD 的读写速度&#xff0c;有好多种方法&#xff0c;常用的有如下几种&#xff1a; 1. Gnome-disks Gnome-disks&#xff08;也称为“Disks”&#xff09;是 GNOME 桌面环境中的磁盘管理工具&#xff0c;有图形界面&#xff0c;是测试…