更改记录命令历史记录的文件?

更改记录命令历史记录的文件?

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

相关内容