![如何防止在“退出” SSH 会话时清除终端输出?](https://linux22.com/image/1208861/%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2%E5%9C%A8%E2%80%9C%E9%80%80%E5%87%BA%E2%80%9D%20SSH%20%E4%BC%9A%E8%AF%9D%E6%97%B6%E6%B8%85%E9%99%A4%E7%BB%88%E7%AB%AF%E8%BE%93%E5%87%BA%EF%BC%9F.png)
情况是这样的:我在 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
如果文件被修改,将来的更新将不会覆盖该文件。