有没有办法在特定的 tty 上打开程序?

Mid*_*ids 4 linux ssh command-line tty

我有一台没有鼠标或键盘的 PC,但它连接到了显示器。我想知道是否可以在特定的 tty(如 tty1)中远程(如通过 SSH)打开程序,以便我能够在监视器上观看输出。

Ken*_*ter 7

为此,您可以使用 Linux虚拟控制台。每个虚拟控制台都是一个单独的文本模式或图形显示器、键盘和鼠标,所有这些都共享计算机的实际显示硬件。

每个虚拟控制台都可以通过 tty devices 访问/dev/ttyN,其中 N 为 1、2 等,/dev/tty1即虚拟控制台 1。如果您的计算机连接了键盘,则按 Alt-F1 即可访问控制台 1,Alt- F2 表示控制台 2,依此类推(如果当前显示的控制台正在运行 X,则按 Ctrl-Alt-FN)。还有一组与虚拟控制台配合使用的程序,您必须使用它们,因为您没有键盘。

简而言之:

some-program > /dev/tty1 2>&1
Run Code Online (Sandbox Code Playgroud)

将程序的输出重定向到虚拟控制台 1。如果控制台 1 不在显示器上,您可以切换到它:

chvt 1
Run Code Online (Sandbox Code Playgroud)

更好的方法是openvt在虚拟控制台上运行启动命令:

openvt -s some-command
Run Code Online (Sandbox Code Playgroud)

这将选择一个新的虚拟控制台,使其在屏幕上可见,并运行指定的命令。Openvt 还有其他选项,因此请查看文档。

其他有用的命令是fgconsole显示当前显示的控制台的数量,以及deallocvt清理未使用的控制台。

所有这些命令可能需要超级用户权限才能运行。


小智 5

似乎以下 SO 问题可能会回答您的问题:https : //stackoverflow.com/questions/8994593/how-to-reroute-stdout-stderr-back-to-dev-tty

exec >/dev/tty 2>&1 应该做

因为只有在命令> /dev/tty1之后的一些命令 (如 David Schwartz 所述)也可以工作