有没有办法将所有终端的所有 bash 命令保存到单个文件中?默认情况下,不同的终端有不同的历史记录,这会让人感到困惑。我想将所有历史记录保存到一个文件中,并可以选择查找这些命令?也许shift+uparrow可以在中央文件的历史记录中查找?
答案1
首先,您必须告诉 shell 将时间和用户名添加到每个用户的历史记录中,并使用在 shell 提示符下输入类似以下命令(根据需要设置值)来扩展每个历史文件的大小(默认为 500 行) , 和
echo 'HISTTIMEFORMAT="%F %T $USER"' >> ~/.bashrc && HISTSIZE=10000
然后重新启动,以便激活更改。为什么?那么,没有日期和时间并且不能识别谁输入了命令的历史记录可能不是很有用。
然后,定期将每个用户的 ~/.bash_history 内容复制到联合历史文件中,并对其进行排序,因此合并的历史记录将按照日期、时间和用户的顺序进行排序。
完成此操作后,通过管理级脚本循环删除每个用户目录中的源文件
cd /home/userx && rm ~/.bash_history && history -c
改变X以便为每个用户执行该行。