将日期保存到实际的 bash 历史文件中

将日期保存到实际的 bash 历史文件中

当将“HISTTIMEFORMAT”添加到 bashrc 时,运行“history”命令时会提供执行命令时的时间戳。

但是时间戳本身并没有保存到 bash_history 文件中(至少不是以纯文本形式)。

我正在寻找一种将时间戳写入文件本身的解决方案,以便可以在用户空间之外的编辑器中查看来自各个工作站的存档的 .bash_history 文件,并且仍然包含执行命令时的时间戳。

如果时间戳被保存到历史文件本身,但在打开 bash_history 文件时无法在编辑器中查看,并且仍然可以通过在恶意 bash 历史文件上使用 history 命令本身来查看这些时间戳,那么这也足够了。

谢谢

答案1

这是 bash 历史记录的一个示例(使用 HISTTIMEFORMAT 时)

#1625963751
sleep 45 ; ssh proxy.lan

号码1625963751是 unix 时间戳(https://en.wikipedia.org/wiki/Unix_time) 。

如果您使用的是 Linux,则日期可以选择以人类形式显示该日期。

em444$ date -d @1625963751
Sat Jul 10 20:35:51 EDT 2021

答案2

编辑/etc/bashrc并将此行添加到底部:

PROMPT_COMMAND="echo `date +'%F %H:%M'` `whoami` `history|tail -1` >> ~/history.txt; $PROMPT_COMMAND"

我不确定如果您更改~root\root\history.txt所有用户都可以访问。

答案3

export HISTTIMEFORMAT='(%Y-%m-%d) (%H:%M:%S) ' 尝试一下这一行。

相关内容