命令历史记录似乎缺少前 75 行

命令历史记录似乎缺少前 75 行

几年前,我进行了从 14.04 到 16.04 的自动分发更新。这是我一生中第一次能够在自动分发更新后继续使用计算机。像往常一样,软件存储库都已损坏,因此系统更新无法正常工作,但我还是挺过来了。

不过,我将对 18.04 进行全新安装。为了能够在安装后更轻松地配置系统,我将命令历史记录导出到文本文件中。

$ history > /.../20180915_Command_history.txt

很神奇的是,生成的文本文件包含行号。有点神秘的是,第一个行号是 76。看了前几行之后,似乎可能有一些先前的命令。

  1. 出于某种原因,行号是否只是从 76 开始?
  2. 如果没有,有什么办法可以让我查看第 1 行到第 75 行?

答案1

首先,如果您需要备份命令行历史记录,那么只需复制此文件:

~/.bash_history

请记住,您必须关闭所有终端或运行history -a以将这些历史会话中的所有命令附加到历史文件中。


如果没有,有什么办法可以让我查看第 1 行到第 75 行?

历史记录中保存的每个命令都可以在~/.bash_history文件中找到,要查看所有命令,请打开终端并运行:

cat ~/.bash_history

要获得类似于带有编号的命令的输出,history请运行:

cat -n ~/.bash_history

出于某种原因,行号是否只是从 76 开始?

运行此命令:

grep "^HIST" .bashrc

您必须获得类似以下内容的输出:

HISTSIZE=1000
HISTFILESIZE=2000

正如我之前所说,~/.bash_history保留命令行的历史记录。

  • 显示命令应该跟踪HISTFILESIZE多少个,对于我来说,是 2000 个。~/.bash_history

  • 并且是命令(实际上是 shell 内置的)跟踪的HISTSIZE命令的数量。history

当您打开终端并运行时history,它将从中选择最后HISTSIZE几个命令~/.bash_history并显示给您。

如果您运行新命令,它将从会话中删除旧命令,并将新命令附加到其列表的末尾,以使命令数量匹配HISTSIZE

HISTSIZE我猜想当你问这个问题的时候,你的命令比 74 多.bash_history,这就是它从 75 开始的原因。


man bash

  • HISTSIZE

    命令历史中要记住的命令数。

  • HISTFILESIZE

    历史文件包含的最大行数。

相关内容