Linux TTY(Teletypewriter)概念;虚拟终端伪终端pty(pseudo

您所在的位置:网站首页 什么叫终端输入设备 Linux TTY(Teletypewriter)概念;虚拟终端伪终端pty(pseudo

Linux TTY(Teletypewriter)概念;虚拟终端伪终端pty(pseudo

2024-06-11 19:19| 来源: 网络整理| 查看: 265

文章目录 tty是什么?为什么要了解tty?有哪些linux命令涉及到tty?关于伪终端pty(pseudo terminal)pty包含ptmx和pts(主设备和从设备) 在这里插入图片描述

tty是什么?

TTY(Teletypewriter)是一种早期的终端设备,用于与计算机进行通信。TTY最早出现在20世纪60年代,当时计算机主要通过电传打字机与用户进行交互。TTY设备由一个键盘和一个打印机组成,用户通过键盘输入命令,计算机将结果打印在打印机上。

随着计算机技术的发展,TTY设备逐渐演变成了终端设备。终端设备是一种通过串行接口与计算机连接的设备,可以显示计算机的输出结果,并将用户的输入传递给计算机。终端设备通常具有屏幕和键盘,用户可以通过键盘输入命令,计算机将结果显示在屏幕上。

在UNIX系统中,TTY是一个重要的概念。在早期的UNIX系统中,TTY是指与计算机进行通信的设备。每个TTY设备都有一个对应的设备文件,例如/dev/tty1表示第一个TTY设备。用户可以通过TTY设备与计算机进行交互,输入命令并查看输出结果。

随着计算机技术的进步,TTY设备逐渐被图形界面取代。图形界面提供了更直观、易用的用户界面,用户可以通过鼠标和图形界面进行交互。然而,TTY仍然被广泛使用,特别是在服务器环境中。在服务器上,TTY设备可以通过SSH等远程登录方式进行访问,管理员可以通过TTY设备管理服务器。

ls -l /dev/ | grep "tty"

在这里插入图片描述

为什么要了解tty?

了解TTY概念有以下几个用途:

与终端交互:TTY设备是用户与计算机进行交互的接口,了解TTY概念可以帮助开发者编写与终端交互的程序。例如,可以使用TTY设备读取用户的输入,并将结果显示在终端上。

控制终端属性:TTY设备具有一些属性,如终端大小、字符编码等。了解TTY概念可以帮助开发者控制终端属性,例如改变终端大小、设置字符编码等。

串口通信:在一些特定的应用场景中,需要通过串口与外部设备进行通信。串口设备也是一种TTY设备,了解TTY概念可以帮助开发者编写串口通信程序,与外部设备进行数据交换。

远程登录:在服务器环境中,管理员通常通过SSH等远程登录方式访问服务器。远程登录也是通过TTY设备进行的,了解TTY概念可以帮助开发者编写远程登录相关的程序。

有哪些linux命令涉及到tty?

在Linux中,有一些命令涉及到TTY设备,用于与终端进行交互或控制终端属性。以下是一些常见的与TTY相关的Linux命令:

tty:显示当前终端的TTY设备文件路径。

在这里插入图片描述

stty:用于设置和显示终端设备的属性。可以使用stty命令来修改终端的行为,如修改终端大小、字符编码等。

在这里插入图片描述

who:显示当前登录到系统的用户信息,包括登录用户的TTY设备。

在这里插入图片描述

在Linux中,who命令用于显示当前登录到系统的用户信息,包括登录用户的终端设备。在较新的Linux系统中,终端设备通常以pts/开头,而不是以tty开头。

pts代表伪终端从设备(pseudo terminal slave)。伪终端是一种虚拟的终端设备,用于在客户端和服务器之间建立一个虚拟的终端会话。当用户通过SSH等远程登录方式登录到Linux系统时,会在服务器上创建一个伪终端设备,用于与用户进行交互。

相比于传统的物理终端设备(如TTY设备),伪终端设备具有更多的灵活性和功能。它可以在网络上远程访问,支持多个用户同时登录,以及提供更多的终端功能。

因此,当使用who命令查看当前登录用户时,显示的终端设备可能是以pts/开头的,而不是以tty开头的。这是因为可能是通过SSH等远程登录方式登录到系统的,所以显示的是伪终端设备。

需要注意的是,虽然终端设备的名称可能不同,但它们在功能上是相似的,都可以用于与用户进行交互和执行命令。

w:显示当前登录到系统的用户信息,包括登录用户的TTY设备和活动时间。

在这里插入图片描述

write:向指定用户的TTY设备发送消息。

在这里插入图片描述

mesg:控制是否接受其他用户发送的消息。可以使用mesg命令来设置TTY设备的消息接收权限。

在这里插入图片描述

wall:向所有登录用户的TTY设备发送消息。

在这里插入图片描述

示例:

在这里插入图片描述

在这里插入图片描述

login:用于登录到系统,与TTY设备进行交互。

在这里插入图片描述

logout:用于注销当前用户,关闭TTY设备。

在这里插入图片描述

getty:用于启动终端登录程序,监听TTY设备上的用户登录请求。

在这里插入图片描述

pgrep:用于根据进程的名称或其他属性查找正在运行的进程,并返回与之匹配的进程ID(PID)。它可以根据进程的TTY设备来查找进程。

在这里插入图片描述

这些命令涉及到TTY设备的操作和管理,可以帮助用户与终端进行交互、控制终端属性、发送消息等。

关于伪终端pty(pseudo terminal)

pty是pseudo terminal的缩写,中文意思为“伪终端”。伪终端是一种虚拟的终端设备,用于在客户端和服务器之间建立一个虚拟的终端会话。

在Linux系统中,伪终端由两个部分组成:主设备(master)和从设备(slave)。主设备负责接收和发送数据,而从设备则负责将数据传递给应用程序或从应用程序接收数据。

伪终端的主要作用是允许用户通过网络或其他方式远程登录到系统,并在远程终端上执行命令和交互。它提供了一种虚拟的终端环境,使得用户可以像在本地终端上一样与系统进行交互。

伪终端还具有其他一些功能,例如支持多个用户同时登录,支持会话复制和断开重连等。它在远程管理、远程登录和远程终端访问等场景中广泛应用。

pty包含ptmx和pts(主设备和从设备)

在Linux系统中,ptmx和pts是用于实现伪终端(pseudo terminal)的设备。

伪终端是一种特殊的设备,它提供了一个类似于物理终端的接口,可以用于在用户空间和内核空间之间进行交互。它通常用于实现终端仿真器(如xterm、gnome-terminal等)或远程登录工具(如ssh)。

ptmx是伪终端的主设备(master),它用于创建新的伪终端设备。当应用程序需要创建一个新的伪终端时,它可以通过打开/dev/ptmx设备文件来获取一个文件描述符。然后,应用程序可以使用ioctl系统调用来获取与该文件描述符关联的从设备文件路径(/dev/pts/N,其中N是一个数字)。

pts是伪终端的从设备(slave),每个从设备对应一个打开的ptmx设备。应用程序可以通过打开/dev/pts/N设备文件来与伪终端进行交互。例如,应用程序可以通过读写/dev/pts/N设备文件来向终端发送输入和接收输出。

通过使用ptmx和pts设备,应用程序可以实现与终端类似的交互体验,包括输入、输出、控制终端大小等功能。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3