据我所知,/ dev / pts文件是为ssh或telnet会话创建的.
解决方法:
/ dev / pts中没有存储任何内容.这个文件系统纯粹存在于内存中.
/ dev / pts中的条目是pseudo-terminals(简称pty). Unix内核具有terminals的通用概念.终端为应用程序提供了一种显示输出和通过terminal device接收输入的方法.进程可以具有controlling terminal – 对于文本模式应用程序,这是它与用户交互的方式.
终端可以是硬件终端(“tty”,“teletype”的缩写)或伪终端(“pty”).硬件终端通过某些接口连接,如串口(ttyS0,…)或USB(ttyUSB0,…),或通过PC屏幕和键盘(tty1,…)连接.伪终端由终端仿真器提供,终端仿真器是应用程序.某些类型的伪终端是:
> GUI应用程序,如xterm,gnome-terminal,konsole,…将键盘和鼠标事件转换为文本输入,并以某种字体图形显示输出.
>多路复用器应用,例如屏幕和tmux继电器输入和输出到另一个终端,以将文本模式应用与实际终端分离.
>远程shell应用程序,例如sshd,telnetd,rlogind,…在客户端上的远程终端和服务器上的pty之间中继输入和输出.
如果程序打开终端进行写入,则该程序的输出将显示在终端上.通常有几个程序同时输出到终端,虽然这有时会让人感到困惑,因为无法分辨哪个部分的输出来自哪个程序.尝试写入其控制终端的后台进程可以是automatically suspended by a SIGTTOU signal.
如果程序打开终端进行读取,则将来自用户的输入传递给该程序.如果多个节目从同一终端读取,则每个字符独立地路由到其中一个节目;这是不推荐的.通常,在给定时间只有一个程序主动从终端读取数据;尝试从控制终端读取而不在foreground中的程序是automatically suspended by a SIGTTIN signal.
要进行实验,请在终端中运行tty以查看终端设备是什么.让我们说它是/ dev / pts / 42.在另一个终端的shell中,运行echo hello> / dev / pts / 42:字符串hello将显示在另一个终端上.现在运行cat / dev / pts / 42并输入另一个终端.要杀死那个cat命令(这将使另一个终端难以使用),请按Ctrl C.
写入另一个终端偶尔会有助于显示通知;例如write
命令就是这样做的.通常不会从另一个终端读取.