如何重定向来自另一个 tty 的输入?

How to redirect input from another tty?

当我 运行 cat -/dev/pts/2 并尝试使用 echo foo > /dev/pts/2echo foo > /proc/(pid of cat)/fd/0 从另一个 tty 写入它的输入时它只是打印 foo在 pts/2 中,cat 没有重复它。为什么? 如何从另一个 tty 向 cat 发送输入以便它也重复它?

每个终端都有一个文件,在 /dev/pts/.

$ ps

以确定您在哪个终端上。示例:我在 3 号航站楼

PID TTY TIME CMD

1477 pts/3 00:00:00 ps

26511 pts/3 00:00:01 bash

而不只是将您的输出重定向到该终端。

cat foo > /dev/pts/3

在第二个终端上创建一个先进先出的管道,即您要在其上显示文本的终端

mkfifo --mode=600 /tmp/pipe

将命令重定向到第一个终端上的那个管道

cat foo > /tmp/pipe

我认为这里存在一个根本性的误解:您不能将内容注入另一个 TTY 的输入流(除非您拥有 master)。

但是,您可以调用 cat /dev/pts/0 从另一个 TTY 的输入流中读取,但请注意,您将与已经存在的任何进程作斗争。