linux tty_linux tty

linux tty_linux ttyLinux中的tty与pts终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。 Teletype是最早出现的一种终端设备——可以称作电传打字机,由Teletype公司生产。tty在Linux系统的设备特殊文件目录/dev/下。终端特殊设备文件一般有以下几种:1、串行端口终端(/dev/ttySn)串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Linux中的tty与pts

tty是真的,pts是假的,相互对应


终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。

tty是Teletype的缩写。 Teletype是最早出现的一种终端设备——可以称作电传打字机,由Teletype公司生产。tty在Linux系统的设备特殊文件目录/dev/下。

终端特殊设备文件一般有以下几种:


1、串行端口终端(/dev/ttySn)

  • 串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。
  • 计算机把每个串行端口都看作是一个字符设备
  • 串行端口所对应的设备名称是/dev/tts/0, /dev/tts/1等
    (或者/dev/ttyS0,/dev/ttyS1)等
    设备号分别是(4,0), (4,1)等
    分别对应于DOS系统下的COM1、COM2等。

若要向一个端口发送数据,可以在命令行上把标准输出重定向到这些特殊文件名上即可。

eg.在命令行提示符下键入# echo test > /dev/ttyS1会把单词”test”发送到连接在ttyS1(COM2)端口的设备上。(可接串口来实验)

echo命令:主要作用功能是在屏幕上显示文字,也可以直接在文件中写入要写的内容 )


2、伪终端(/dev/pty/)

伪终端(Pseudo Terminal)是成对的逻辑终端设备
(即master和slave设备, 对master的操作会反映到slave上)

eg./dev/ptyp3和/dev/ttyp3
(或者在设备文件系统中分别是/dev/pty/m3和 /dev/pty/s3)
它们与实际物理设备并不直接相关


如果一个程序把ptyp3(master设备)看作是一个串行端口设备,则它对该端口的读/写操作会反映在该逻辑终端设备对应的另一个ttyp3(slave设备)上面。而ttyp3同时又是另一个程序用于读写操作的逻辑设备。

这样,两个程序就可以通过这种逻辑设备进行互相交流,而其中一个使用ttyp3的程序则认为自己正在与一个串行端口进行通信。这很像是逻辑设备对之间的管道操作


对于ttyp3(s3),任何设计成使用一个串行端口设备的程序都可以使用该逻辑设备。但对于使用ptyp3的程序,则需要专门设计来使用ptyp3(m3)逻辑设备。


eg.如果某人在网上使用telnet程序连接到你的计算机上,则telnet程序就可能会开始连接到设备ptyp2(m2)上(一个伪终端端口上,主设备)。此时一个getty程序就应该运行在对应的ttyp2(s2)端口上(真正的端口,从设备)

当telnet从远端获取了一个字符时,该字符就会通过m2、s2传递给 getty程序,而getty程序就会通过s2、m2和telnet程序往网络上返回”login:”字符串信息。

这样,登录程序与telnet程序就通过“伪终端”进行通信。通过使用适当的软件,就可以把两个甚至多个伪终端设备连接到同一个物理串行端口上。


逻辑设备对的扩展

在使用设备文件系统(device filesystem)之前,为了得到大量的伪终端设备特殊文件,使用了比较复杂的文件名命名方式。因为只存在16个ttyp(ttyp0—ttypf)的设备文件,为了得到更多的逻辑设备对,就使用了q、r、s等字符来代替p。例如,ttys8和ptys8就是一个伪终端设备对。这种命名方式目前仍然在RedHat等Linux系统中使用着。

但Linux系统上的Unix98并不使用上述方法,而使用了”pty master”方式,例如/dev/ptm3。它的对应端则会被自动地创建成/dev/pts/3。这样就可以在需要时提供一个pty伪终端。目录 /dev/pts是一个类型为devpts的文件系统,并且可以在被加载文件系统列表中看到。虽然“文件”/dev/pts/3看上去是设备文件系统中的一项,但其实它完全是一种不同的文件系统。
即: TELNET —> TTYP3(S3: slave) —> PTYP3(M3: master) —> GETTY


3、控制终端(/dev/tty)

如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它 具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。


4、控制台终端(/dev/ttyn, /dev/console)

在Linux系统中,计算机显示器通常被称为控制台终端(Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2等。

当你在控制台上登录时,使用的是tty1。使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。tty1–tty6等称为虚拟终端tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上。因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。你可以登录到不同的虚拟终端上去,因而可以让系统同时有几个不同的会话期存在。

只有系统或超级用户root可以向/dev/tty0进行写操作 即下例:

  • 1、# tty(查看当前TTY)
    /dev/tty1
  • 2、#echo “test tty0” > /dev/tty0
    test tty0

5、其它类型

Linux系统中还针对很多不同的字符设备存在有很多其它种类的终端设备特殊文件。

例如针对ISDN设备的/dev/ttyIn终端设备等。这里不再赘述。


FAQ: 终端和控制台

Q:/dev/console 是什么?

A:/dev/console即控制台,是与操作系统交互的设备,系统将一些信息直接输出到控制台上。目前只有在单用户模式下,才允许用户登录控制台。


Q:/dev/tty是什么?

A:tty设备包括虚拟控制台,串口以及伪终端设备。/dev/tty代表当前tty设备,在当前的终端中输入 echo “hello” > /dev/tty ,都会直接显示在当前的终端中。


Q:/dev/ttyS*是什么?

A:/dev/ttyS*是串行终端设备。


Q:/dev/pty*是什么?

A:/dev/pty*即伪终端,所谓伪终端是逻辑上的终端设备,多用于模拟终端程序。例如,我们在X Window下打开的终端,以及我们在Windows使用telnet 或ssh等方式登录Linux主机,此时均在使用pty设备(准确的说应该pty从设备)。


Q:/dev/tty0与/dev/tty1 …/dev/tty63是什么?它们之间有什么区别?

A:/dev/tty0代表当前虚拟控制台,而/dev/tty1等代表第一个虚拟控制台,例如当使用ALT+F2进行切换时,系统的虚拟控制台为/dev/tty2 ,当前的控制台则指向/dev/tty2


Q:如何确定当前所在的终端(或控制台)?

A:使用tty命令可以确定当前的终端或者控制台。


整理来源?
原文链接:https://blog.csdn.net/tuyerv/article/details/103090554

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168477.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 基于51单片机智能小车的设计与实现转弯避障_基于单片机的智能小车设计

    基于51单片机智能小车的设计与实现转弯避障_基于单片机的智能小车设计0引言学习智能小车系统,有助于提高搭建系统的能力和对自动控制技术的理解。智能小车是一个较为完整的智能化系统,而智能化的研究已成为我国追赶世界科技水平的重要任务。智能小车有它特有的特点:成本低,涉及的知识面广,易于拓展[1]。整个智能小车系统作为一个完整的系统,从它的原理图的实现到实物的完成的过程,不仅需要深厚的电子方面的知识,还有对电路实现的良好掌握,对于培养学生的实践能力都有重要的意义。智能小车…

    2022年10月17日
    3
  • 密码学专题 SSL协议

    密码学专题 SSL协议SSL协议为不同的高层协议(http、FTP)提供安全服务 SSL握手协议、SSL修改密文协议和SSL告警协议的目的是为了管理和SSL相关的密文交换 连接:两台主机之间提供特定类型的数据传输,是点对点的关系;连接是短暂的,每一个连接都会和一个会话相互关联 会话:是指客户和服务器之间的关联,会话是通过握手协议创建的;会话是加密安全参数的一个集合,包含加密算法、临时的加密密钥等信息;会话可以为多个连接所共享,就可以避免为每个连接建立都要进行安全参数的协商带来的昂贵的时间代价。如果服务器和客户端之..

    2022年5月13日
    46
  • 在线客服系统源码 自适应手机移动端 支持多商家 带搭建教程

    在线客服系统源码 自适应手机移动端 支持多商家 带搭建教程下载链接:在线客服系统源码自适应手机移动端支持多商家支持微信公众号/微信小程序带搭建教程-PHP文档类资源-CSDN下载PHP轻量级人工在线客服系统源码自适应手机移动端支持多商家带搭建教程支持多商家支持多商家,每个注册用户为一个商家,每个商家可以添加多个客服。不限坐席每个商家可以无限添加坐席,不限制坐席数支持H5移动端系统自动适配移动端,也可以接入app(h5方式)支持微信公众号/微信小程序客服可以与微信公众号/小程序里的访客实时沟通常见问题自动回复…

    2022年7月19日
    19
  • 移动巡检系统_智能巡检app

    移动巡检系统_智能巡检app移动巡检系统我国的石油、燃气、自来水、电力的线路、管道和设备的巡检、陷巡视管理工作主要依靠巡检人员定期定时的人工巡检。传统的巡检工作主要采用手工纸记录的方式,不仅工作量巨大,效率低下,而且纸质的缺陷报

    2022年8月6日
    13
  • 微信朋友圈奢侈品代购背后:圈子营销光明正大卖“假货”

    微信朋友圈奢侈品代购背后:圈子营销光明正大卖“假货”30岁的张华,一天是这样开始的:睁眼、拿起床头的手机,刷看自己的微信或微博。她自己的微信“朋友圈”更新的速度比往常多了许多,里面大多是一些名牌皮包、衣服的图片信息。记者随机采访了几名手机用户,发现大多数人的微信“朋友圈”里都有人在做这样的微信生意,集中在国际名牌LV、香奈儿、卡地亚等奢侈品,他们自称为“奢侈品代购”。这是一种新的电商“朋友销售模式”?还是暗藏的“假货A货圈”?“奢侈品”代购背后是怎

    2022年5月14日
    50
  • 网站的域名带www的和不带www的有什么区别呀

    网站的域名带www的和不带www的有什么区别呀

    2021年10月25日
    92

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号