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

Dea*_*nie 4 linux ssh tty

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

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

我查看了“屏幕”,但看起来它同时接管了标准输入和标准输出,而无法仅选择标准输入。

root@nana ~ # uname -a
Linux nana 3.4.104+ #1 SMP PREEMPT Thu Jan 8 15:40:40 CET 2015 armv7l GNU/Linux
Run Code Online (Sandbox Code Playgroud)

小智 6

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

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

script -t0 /dev/tty1 bash
Run Code Online (Sandbox Code Playgroud)

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

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

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