我正在尝试通过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
),但这对我没有帮助。
答案 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发行版的默认行为。