roc*_*tar 2 ssh command-line gnome-terminal
我在用
ssh user@host top
Run Code Online (Sandbox Code Playgroud)
显示top
“主机”的输出,我得到
TERM environment variable not set.
Run Code Online (Sandbox Code Playgroud)
解决办法是什么?
我怎样才能top
像那样在“主机”上运行并查看输出?
top
显示它在终端设备上的输出,而不是在任何标准流(例如 STDOUT/STDERR)上。由于在执行以下操作时远程主机没有涉及终端:
ssh user@host top
Run Code Online (Sandbox Code Playgroud)
它给出了有关TERM
未设置环境变量的错误。
您需要使用以下-t
选项在远程主机上分配一个伪 TTY ssh
:
ssh -t user@host 'top'
Run Code Online (Sandbox Code Playgroud)
现在您也可以以top
通常的方式发送密钥,例如q退出、h寻求帮助等。
同样的解决方案适用于所有需要 TTY 来显示输出的程序。
为了完整起见,即使不涉及本地 TTY,您也可以通过使用多个-t
s来分配伪 TTY,例如:
ssh -tt user@host 'top'
Run Code Online (Sandbox Code Playgroud)