查找命令历史记录中的命令数量

查找命令历史记录中的命令数量

我正在尝试查找我已执行的命令数。起初我以为以下命令可以工作:

wc -l < $HISTFILE

但是现在我知道这个命令返回的数字并不显示命令的数量,因为一个命令可以是多行的。

如何查找我的命令历史记录中的命令数量?

答案1

有一条命令叫fc这个处理命令历史列表。

根据man fc

−l(字母 ell。)列出命令而不是对它们调用编辑器。命令应按照第一个和最后一个操作数指示的顺序编写,受 -r 影响,每个命令前面都有命令编号。

我们可以使用fc -l列出之前输入的命令。默认情况下,此命令会打印最后 16 条命令,格式如下:

 [number of command]  [command]

现在,如果我们可以获取最后一条命令并仅打印其编号,那么这将是历史文件中的命令数。如果我们man fc再看一遍,

−number 一个负十进制数,表示之前执行的命令数。例如,−1 表示紧接在前的命令。

我们可以看到,通过指定-n,我们可以获得最后 n 条命令。因此命令fc -l -1将返回最后一条命令。

❯ fc -l -1
 3088  man fc

现在我们有了它,我们可以简单地打印它的第一列,使用awk

❯ fc -l -1 | awk '{print $1}'
3089

相关内容