在一个地方获取所有打开的终端的命令历史记录

在一个地方获取所有打开的终端的命令历史记录

我一直打开多个终端进行工作。由于某种原因,我的电脑重新启动了,当我执行“历史记录”命令后,我只能看到与特定终端相关的命令列表。

有没有办法获取所有打开的终端的所有历史记录。

答案1

您无法恢复其他历史记录。所有终端都写入了历史记录文件,听起来您设置的HISTFILESIZE值太小,或者您没有shopt -s histappend将其附加到HISTFILE而不是覆盖它。无论是哪种情况,每个终端都会按HISTFILE顺序写入,而您剩下的命令列表来自最后一个执行此操作的终端。

如果您想在将来避免这种情况,您可以设置(在您的.bashrc

shopt -s histappend #append to history file instead of overwriting
HISTFILESIZE=10000 #increase number of stored commands in HISTFILE

重启后,这将保存按终端会话分组的所有命令。如果您希望按时间顺序排列,也可以使用以下命令:

#logs every command as it is written to the history file, 
#and updates local terminal history to match
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

相关内容