Linux操作系统 history
命令用于获取当前用户以前使用的命令。history命令的默认大小是1000,这意味着最后1000个命令将存储在history中。 同时也提供了bash行号的历史记录。在某些情况下,这是不可能的。要获取没有行号的历史记录,可以使用以下命令。
打印带有数字的历史文件
默认情况下 history
命令用于打印Linux bash历史记录,其中带有索引号的命令被打印到屏幕上。deafult只打印最后1000条命令。
$ history

我们可以看到,在命令之前,文件的编号被打印到屏幕上。
正在打印没有行号的.bashu历史文件
执行的bash命令存储在名为 .bash_history
. 此文件位于每个用户的主目录中。例如对于用户 ismail
将位于 /home/ismail/.bash_history
. 最简单最简单的方法是打印 .bash_history
文件。历史文件以普通格式存储命令。
$ cat ~/.bash_history

从输出中,我们可以看到只有命令从 .bash_history
.
使用Awk
awk
是一个非常有用的工具,用于读取字符串并根据给定的表达式对其进行过滤。使用awk,可以使用以下命令来使用子字符串进行过滤。我们将用一个表达式删除命令历史记录行号,该表达式将只从中获取命令 history
命令输出。
$ history | awk '{$1="";print substr($0,2)}'

使用Sed
sed
是另一种选择 awk
. 我们将使用类似的策略删除行号。我们可以使用sed流线型编辑器来过滤行号。在本例中,我们将删除从每行开始到空格的所有行号。
-
/s
用于搜索 -
^
以前是这条线的起点 -
[ ]*
从一开始就习惯了空格 -
[0-9]+
用于数字 -
//
用于删除先前给定的regex,即从行首开始的数字和空格。
$ history | sed 's/^[ ]*[0-9]+[ ]*//'

使用Cut
剪切是删除历史行号的最简单示例。我们将根据空格分隔输出,并从2和其他列开始打印列。
-
-d
用于指定分隔符,分隔符为空格。 -
-f
用于表示从4到结尾的列号
$ history | cut -d ' ' -f 4-

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

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