如何在 ssh 会话中劫持 tty1 的输入流?

How to hijack the input stream of tty1 in a ssh session?

我有一个 pi 通过 hdmi 连接到我的电视。它设置为在启动时自动登录到控制台(不是 x-windows)。为了控制电视上的屏幕输出,我必须使用连接到我的 pi 的键盘。

我希望能够通过 ssh 登录到 pi,然后劫持 tty1 stdin 流,但仍然允许 stdout 作为 hdmi 接口。我该怎么做?

我查看了 'screen',但看起来它接管了标准输入和标准输出,但不能只选择标准输入。

root@nana ~ # uname -a
Linux nana 3.4.104+ #1 SMP PREEMPT Thu Jan 8 15:40:40 CET 2015 armv7l GNU/Linux

这里最简单的做法是打开另一个 shell 并将其输出重定向到您的 tty1 stdout 流。

script 是一个优秀的程序,用于将程序的输出捕获到文件中。例如,您可以这样做:

script -t0 /dev/tty1 bash

-t 参数使 script 在每个字符按下时将其缓冲区刷新到 /dev/tty1,而不是每个换行符。

请注意,这不会控制 tty1 shell。相反,它只是将新 shell 的输出推入其中。

如果你想在 tty1 和 ssh 之间共享一个单一的、持久的 shell,你可以使用 screen/tmux。在您的 tty1 上,打开一个会话(手动或登录)。然后你可以简单地 ssh 并附加到它。 tty1 和 ssh 将同时控制完全相同的会话。