防止退出 ssh 会话时屏幕被清除

防止退出 ssh 会话时屏幕被清除

我设置了 rdist 将一些点文件推送到我需要 ssh 进入的所有远程计算机。我还在所有这些机器上将 zsh 作为默认 shell。

当我 ssh 进入计算机然后退出时,屏幕会被清除。我觉得这种行为很烦人。我试图阻止这种行为是注释掉/usr/bin/clear我的文件中的行.logout。然后我将这个更新的文件分发到所有远程计算机。

问题是,这不起作用。我对此不确定,但我认为.logout是用于 csh 的,但我没有.zlogout(或.bash_logout两者都没有)。我的其他点文件(例如, .zshrc, )中没有任何内容.zshenv看起来会导致屏幕清除。当我 ssh 进入远程计算机时exec zsh(为了获得“新鲜”的 shell 会话),退出 ssh 会话时终端将不会清除。但除此之外,问题仍然存在 - 在我连接的任何机器上,退出时屏幕都会清除。

无论如何,当我将远程计算机上的默认 shell 设置为 bash 时,我似乎没有遇到同样的问题。所以我认为问题出在 zsh 上。

我检查了点文件以确保它们得到了正确的分配(他们做到了)。除此之外,我已经没有主意了......为什么退出 ssh 时我的终端不断被清除?

编辑:我找到了问题的根源:/etc/zlogout许多远程计算机上都有一个文件。我在其中许多机器上没有 sudo 权限,并且我不想全局影响用户;有没有办法覆盖 中的功能/etc/zlogout?仅仅制作一个$HOME/.zlogout文件似乎不起作用。

答案1

RHEL 7 上的 Zsh 的行为方式相同,即在 ssh 注销期间,终端被清除。

(根据终端的不同,最后一个终端输出会丢失,或者只是滚动到视图之外。)

这是因为/etc/zlogout- 它是 zsh 包的一部分 - 包含:

clear

(不包含其他命令)

您可以通过在注销期间.zlogout完全禁用读取来覆盖您自己的文件中的此清除:/etc/zlogout

$ cat ~/.zlogout
setopt norcs

禁用 rcs 选项禁用某些运行控制文件的来源 - 可能因此而得名:no Run Control Sourcing

相关内容