不带行号的Linux打印历史记录命令

Linux操作系统 history 命令用于获取当前用户以前使用的命令。history命令的默认大小是1000,这意味着最后1000个命令将存储在history中。 同时也提供了bash行号的历史记录。在某些情况下,这是不可能的。要获取没有行号的历史记录,可以使用以下命令。

null

打印带有数字的历史文件

默认情况下 history 命令用于打印Linux bash历史记录,其中带有索引号的命令被打印到屏幕上。deafult只打印最后1000条命令。

$ history
Print History File with Numbers
打印带有数字的历史文件

我们可以看到,在命令之前,文件的编号被打印到屏幕上。

正在打印没有行号的.bashu历史文件

执行的bash命令存储在名为 .bash_history .  此文件位于每个用户的主目录中。例如对于用户 ismail 将位于 /home/ismail/.bash_history . 最简单最简单的方法是打印 .bash_history 文件。历史文件以普通格式存储命令。

$ cat ~/.bash_history
Printing .bash_history File
正在打印.bashu历史文件

从输出中,我们可以看到只有命令从 .bash_history .

使用Awk

awk 是一个非常有用的工具,用于读取字符串并根据给定的表达式对其进行过滤。使用awk,可以使用以下命令来使用子字符串进行过滤。我们将用一个表达式删除命令历史记录行号,该表达式将只从中获取命令 history 命令输出。

$ history | awk '{$1="";print substr($0,2)}'
Using Awk
使用Awk

使用Sed

sed 是另一种选择 awk .  我们将使用类似的策略删除行号。我们可以使用sed流线型编辑器来过滤行号。在本例中,我们将删除从每行开始到空格的所有行号。

  • /s 用于搜索
  • ^ 以前是这条线的起点
  • [ ]* 从一开始就习惯了空格
  • [0-9]+ 用于数字
  • // 用于删除先前给定的regex,即从行首开始的数字和空格。
$ history | sed 's/^[ ]*[0-9]+[ ]*//'
Using Sed
使用Sed

使用Cut

剪切是删除历史行号的最简单示例。我们将根据空格分隔输出,并从2和其他列开始打印列。

  • -d 用于指定分隔符,分隔符为空格。
  • -f 用于表示从4到结尾的列号
$ history | cut -d ' ' -f 4-
Using Cut
使用Cut

不带行号的Linux Print History命令信息图

Linux Print History Command Without Line Numbers Infographic
不带行号的Linux Print History命令信息图

相关文章: Awk逻辑运算符-或,AND,NOT

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享