我尝试为历史设置时间戳。我的第一次尝试是 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 从其历史文件中读取的命令,它只知道它们已写入其中的时间戳,但它始终知道其“自己的”时间戳。