我使用GNU屏幕和5个不同的会话,每个会话都存储自己的命令历史记录.但是我经常在历史上找不到命令,虽然我确信我几周前已经在我目前的会议中使用了它.
似乎历史规模有一个严格的限制?如何将其设置为无穷大?
相关问题:如何控制会话历史记录的存储位置?通常,我们的系统管理员会重新启动计算机,但我会丢失所有会话,而且我必须进行屏幕擦除,因为会话已损坏.然后,所有的历史都消失了. :(我想在那种情况下找到存储的历史记录并将它们绑定在新创建的会话中.
P.S.:我在所有屏幕会话中使用bash.
更新:我不是在询问如何统一会话历史.只是,我希望每个会话都有无限的历史记录,我希望能够将该历史记录“加载”到新会话中,如果旧会话损坏或删除.
更新2:您可能已经想到:当我说我使用GNU屏幕和5个不同的会话时,我的意思是GNU屏幕会话,其中有5个不同的窗口.抱歉.
你最好使用
Bash的历史而不是屏幕.屏幕保留一个回滚缓冲区(可能是内存而不是文件).当你使用Ctrl-a调用命令时,它实际上正在挖掘屏幕上出现的所有内容,这些内容仍然在缓冲区中,看起来像是一个提示字符.没有真正的命令历史.顺便提一下,您可以使用screen -h num或defscrollback num或scrollback num screen命令增加回滚缓冲区的大小.
您可以使用warren的建议来保持Bash历史记录的最新状态.和/或您可以使用我发现的一个日志功能here,它可以保存您的IP地址或屏幕会话ID以及日期,时间,当前工作目录和实际命令.我自己一直用这个.您可能必须将我的函数使用的变量$hcmntextra设置为包含$STY,以便记录屏幕会话名称.