bash 历史记录不显示,甚至不保存命令运行的日期时间。这严重限制了 bash 历史记录的有用性,我看不出它有任何好的理由。可以通过运行以下命令来存储日期时间:
echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bash_profile && source ~/.bash_profile
(或者sudo echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc && source ~/.bashrc
)
但这仅在用户运行上述命令后应用。可以简单地更改该history
命令,以便默认情况下不会打印日期时间,但至少可以打印 - 例如,通过运行类似history -t
.
拥有日期时间的优点是显而易见的 - 例如,人们可能会遇到问题并希望查看在第一次发生时运行了哪些命令,或者打印在特定时间段内运行的所有命令,或者想要检查 bash 历史记录是否完整且没有丢失时间跨度,或者想要分析命令运行的时间,或者想要检查特定命令的运行时间,...
这个问题总体上是关于 GNU/Linux 的,因为我认为这可以在根级别而不是在 Debian 等特定发行版级别进行更改。我不知道是否有任何发行版默认存储命令的日期时间,但这不是这里的解决方案。
这不是一个关于意见的问题,而是关于在 Linux/Debian 中默认不保存日期时间的历史原因。
另一个令我无法解释的决定是(维护)一个非常低的HISTSIZE
变量HISTFILESIZE
,它无缘无故地限制了命令历史记录中的条目数量,严重限制了它的使用,不能用对磁盘空间和变量的担忧来解释。要求用户以某种方式了解此限制,并在超出限制之前进行相应更改,以获得完整的 bash 历史记录。但这可能是另一回事。我也不明白为什么当前内存中的历史记录条目是不是在执行它们后立即附加到历史记录中,但反而保持悬念/容易丢失(也是一个单独的问题)。最糟糕的是,GUI 中似乎没有明显的选项(如 KDE 的系统设置或 konsole 的设置窗口)来更改 HISTSIZE HISTFILESIZE 和HISTTIMEFORMAT
设置。
答案1
不能用对磁盘空间的担忧来解释
首次发布于 1989 年 6 月 8 日; 31年前
那个时代最常见的 HDD:20、32、40MB:https://www.quora.com/What-was-the-biggest-HDD-capacity-in-the-1980s
当时磁盘空间非常有限并且非常昂贵。