情况是这样的:我在 Ubuntu 中打开一个终端,然后执行ssh host-1
,它按预期工作。在主机 1 上,我执行ssh host-2
,它再次正常工作并将我连接到主机 2。例如,在主机 2 上,我执行echo "blah"
,它会打印blah
到屏幕上。问题:如果我执行exit
,屏幕会被清除,只剩下以下内容:
Connection to host-2 closed.
myusername$
当我返回主机 1后,如何防止清除在主机 2 上运行的命令(即blah
等)生成的屏幕输出?exit
我已经进行了一些调试:我有一个朋友登录到主机 1 和主机 2,与上述情况完全相同,当他exit
从主机 2 登录时,他的屏幕没有被清除。所以这一定与我的环境有关……对吧?有什么想法吗?
我已尝试在 Windows XP 中使用 PuTTY 以及在 Ubuntu 中的终端上进行此操作 - 无论如何,行为都相同。
答案1
查看~/.bash_logout
它可能包含一个clear
命令。将其注释掉。
此外,在很多终端中,(例如gnometerm
)您只需向上滚动即可查看“已清除”的内容。
答案2
您说的是 Ubuntu,但为了其他人的利益,如果它是最近更新的 cygwin,请编辑/etc/bash.bash_logout
并注释掉以下内容:
if [ "$SHLVL" = 1 ]; then
[ -x /usr/bin/clear ] && /usr/bin/clear
fi
如果文件被修改,将来的更新将不会覆盖该文件。