我一直打开多个终端进行工作。由于某种原因,我的电脑重新启动了,当我执行“历史记录”命令后,我只能看到与特定终端相关的命令列表。
有没有办法获取所有打开的终端的所有历史记录。
答案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"