SSH登录后如何清除终端?

时间:2015-03-05 09:43:38

标签: bash ssh terminal clear

我正在尝试通过ssh连接到服务器。连接后,应清除终端。

由于生成密钥,我可以通过ssh usr@svr连接到服务器,而不会提示输入密码。这很有效。

为了摆脱

  

Debian GNU / Linux系统附带的程序是免费的   软件;描述了每个程序的确切分布条款   在/ usr / share / doc / * / copyright。

中的各个文件中      

Debian GNU / Linux在某种程度上绝对没有任何担保   适用法律允许。

我通常只需输入clear。但是,我不希望每次都输入这个,而是自动化程序。

ssh usr@svr "clear" - > “未设置TERM环境变量。”我搜索了几个关于未设置环境变量的解决方案,但没有成功。

相反,我尝试了ssh -t usr@vr "clear";这会成功清除终端,但也会立即关闭连接(“连接到IP已关闭”。)。计算机连接到服务器,清除屏幕,关闭连接。

接下来的尝试是在服务器上创建一个bash脚本,以便在连接它之后运行。

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

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

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

#/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.

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

4 个答案:

答案 0 :(得分:1)

您的问题所指的文字是每日信息(MOTD)的一部分。

如果您可以在服务器上成为root用户,则可以在/etc/motd中修改该消息。请注意,根据服务器的分布,通常会以某种方式生成此文件(覆盖任何更改),例如,在Debian上,它是在/etc/motd.tail启动时生成的,因此您可能需要更改该文件。

请参阅联系手册motd(5)

答案 1 :(得分:1)

要防止打印该消息,您可以在主目录(服务器上)中创建名为.hushlogin的文件。 SSH到服务器并运行命令touch ~/.hushlogin。如果该文件存在,则登录shell将不再打印您所看到的motd(当天的消息)。

答案 2 :(得分:1)

我找到了另一个简单的解决方案

ssh -t usr@svr 'clear;bash'

答案 3 :(得分:0)

所有启动消息都在motd文件(/etc/motd)中定义。

但是,如果您希望清除控制台以增加隐私,请添加以下代码:

 [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q

您的.bash_profile.bash_logout(退出时)。或者使用clear命令。

注销时清除屏幕是Debian Linux发行版的默认行为。