当将“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) '
尝试一下这一行。