如何从历史记录中获取最后 N 个命令?

如何从历史记录中获取最后 N 个命令?

我想看看我的history.我以为history | tail -n 5会成功,但我注意到多行命令的行数与它的行数一样多。

$ echo "hello
how are you"
$ history | tail -2
how are you"
1051  history | tail -2

所以我的问题是:我是否必须解析命令的输出才能完成此任务?

答案1

我找到了!

历史 [n]

n 参数仅列出最后 n 行。

$ echo "hello
how are you"
$ history 2
1060  echo "hello
how are you"
1061  history 2

答案2

您还可以使用负数,例如:

history -1

或者使用一个范围(最后 10 个):

history -1 -11 

答案3

当您应用历史记录时,它也会显示最后的历史命令。为了防止空间浪费,这样的别名可能会很方便:

alias hs=' history 16 | head -n 15'

(命令本身history 16 | head -n 15

另一个有用的历史别名:

  alias hsg=' history | grep ' 

(当ctr+R太小时无法选择时)

_history前面的空格将运行历史中未写入的命令

fc -l # 还将列出最后 16 个命令(以及更多)

答案4

在 OpenBSD 6.3 (PD KSH v5.2.14 99/07/13.2) 中测试。

history [b]

显示从带有数字 [b] 的条目开始的所有历史记录

history [b] [e]

显示从[b]到[e]的历史区间

相关内容