Linux 中是否可以使用环境变量将命令历史记录发送到不同的文件?
我问的原因是我有兴趣将 shell 会话记录到不同的文件中以供以后参考。
我知道我可以使用auditd或类似的东西,但是为了记录我的会话而进行的设置非常多,所以我想我应该问是否有一个环境变量或我可以使用的东西。
答案1
我最近在 Ask Ubuntu 上回答了一个非常类似的问题: https://askubuntu.com/questions/1175757/how-can-i-save-a-part-of-command-lines-into-a-new-file-using-history-command/1175763#1175763
您需要-a
与文件名一起使用。正如中所解释的help history
:
历史记录:历史记录 [-c] [-d 偏移量] [n] 或历史记录 -anrw [文件名] 或历史记录 -ps arg [arg...]
(...)
-a 将此会话的历史记录行追加到历史文件中
后来:
如果给出 FILENAME,则将其用作历史文件。否则,如果 $HISTFILE 有值,则使用该值,否则使用 ~/.bash_history。
例如,启动一个新会话并输入以下内容(这$
是一个提示,它在您的系统上很可能会有所不同):
$ echo a-new-session started at $(date)
$ history -a /tmp/new-history
在这种情况下/tmp/new-history
将是:
echo a-new-session started at $(date)
history -a /tmp/new-history