几年前,我进行了从 14.04 到 16.04 的自动分发更新。这是我一生中第一次能够在自动分发更新后继续使用计算机。像往常一样,软件存储库都已损坏,因此系统更新无法正常工作,但我还是挺过来了。
不过,我将对 18.04 进行全新安装。为了能够在安装后更轻松地配置系统,我将命令历史记录导出到文本文件中。
$ history > /.../20180915_Command_history.txt
很神奇的是,生成的文本文件包含行号。有点神秘的是,第一个行号是 76。看了前几行之后,似乎可能有一些先前的命令。
- 出于某种原因,行号是否只是从 76 开始?
- 如果没有,有什么办法可以让我查看第 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
历史文件包含的最大行数。