在我启用它之前,历史时间戳存储在哪里

在我启用它之前,历史时间戳存储在哪里

我尝试为历史设置时间戳。我的第一次尝试是 doexport EXTENDED_HISTORY=ON命令,但似乎不起作用。然后我执行echo 'export HISTTIMEFORMAT="%d.%m.%y %T "' >> /etc/bash.bashrc命令,它就起作用了。

启用时间戳后,我重新. /etc/bash.bashrc加载它,然后用history时间戳显示我的历史记录。

但我注意到的奇怪的事情是,历史记录如何在启用它之前存储时间戳?

我的历史记录的第一部分,所有命令都有相同的时间戳 20:43:04: 在此输入图像描述

第二部分,从第619条命令开始,这些命令都保存了自己的时间戳,但此时此刻,我还没有启用历史时间戳

在此输入图像描述

相反,我在第 694 个命令处启用历史时间戳:

在此输入图像描述

我的 $HISTSIZE 是很久以前设置的,是 1000 行。我使用 Konsole 2.10.5 终端和 Ubuntu 13.04。

我不知道缓存是 Konsole 或 bash 的功能。

我的问题是,如何以及在哪里历史在我执行 'export HISTTIMEFORMAT="%d.%m.%y %T "' >> /etc/bash.bashrc` 之前存储时间戳?

它似乎有限制,因为并非所有以前的历史时间戳都被存储(即第 1 到 618 个命令共享相同的时间戳)。可能是因为第 619 个命令是此 konsole 选项卡会话的第一个命令,我不记得了。

答案1

Bash 总是记住时间戳,HISTTIMEFORMAT变量仅仅决定写入的内容~/.bash_history。因此,对于 bash 从其历史文件中读取的命令,它只知道它们已写入其中的时间戳,但它始终知道其“自己的”时间戳。

相关内容