我正在尝试查找我已执行的命令数。起初我以为以下命令可以工作:
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