如何在SSH登录后清除终端?

4

我正在尝试通过ssh连接到服务器。一旦连接成功,终端应该被清除。

由于生成了密钥,我可以通过ssh usr@svr连接到服务器,而不需要输入密码。这个方法是可行的。

为了摆脱

The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.

我通常只需键入clear即可。但是,我希望能够自动化这个过程,而不必每次都键入此命令。

ssh usr@svr "clear" --> "TERM环境变量未设置。"。我在谷歌上搜索了几种有关未设置环境变量的解决方案,但没有成功。

因此,我尝试了ssh -t usr@vr "clear";这成功地清除了终端,但也立即关闭了连接("Connection to IP closed.")。计算机连接到服务器,清除屏幕,然后关闭连接。

下一个尝试是在连接到服务器后创建一个bash脚本来运行。

#/bin/bash
clear
## cl.sh, chmod +x

ssh usr@svr ./cl.sh --> "TERM环境变量未设置。"

另一种尝试是创建一个bash脚本通过ENDSSH连接到服务器并清除终端。

#/bin/bash
ssh usr@svr <<'ENDSSH'
clear
ENDSSH
## sc.sh, chmod +x

运行这个操作的结果是:
> ./sc.sh
Pseudo-terminal will not be allocated because stdin is not a terminal.
Linux raspberrypi 3.18.7-v7+ #755 SMP PREEMPT Thu Feb 12 17:20:48 GMT 2015 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
TERM environment variable not set.

我是一个初学者,如果我犯了一个非常明显的错误,请耐心等待。在发布前,我尽可能详尽地研究了这个问题,但找不到答案。例如,除了 "clear" 命令以外的命令工作正常(ssh usr@svr ls),但这对我没有帮助。

4个回答

3
我找到了另一个简单的解决方案。
ssh -t usr@svr 'clear;bash'

1
你的问题所涉及的文本是消息每日(MOTD)的一部分。
如果您可以在服务器上成为root用户,则可以在/etc/motd中修改该消息。请注意,根据服务器的发行版,此文件通常会以某种方式生成(覆盖任何更改),例如,在Debian上它是从/etc/motd.tail在启动时生成的,因此您可能需要改变那个文件。
请参阅手册页motd(5)。

感谢您的输入。上述使用.hushlogin的解决方案似乎更加简单。 - prankousky
不客气。我同意你的观点,而且它也更符合“用户”的角度。 - Michael Jaros

1
为了防止该消息被打印出来,您可以在您的主目录(服务器上)中创建名为.hushlogin的文件。SSH到服务器并运行命令touch ~/.hushlogin。如果该文件存在,则登录shell将不再打印motd(每日消息),这就是您所看到的内容。

0
所有启动信息都被定义在motd文件(/etc/motd)中。
然而,如果您希望清除控制台以增加隐私性,请添加以下代码:
 [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q

要么添加到你的.bash_profile或者.bash_logout文件(在注销时)。要么使用clear命令。
在Debian Linux发行版上,清除屏幕是默认行为。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接