如何显示没有行号的Bash历史记录

时间:2020-03-21 11:44:18  来源:igfitidea点击:

如我们所知,Bash历史记录文件(~/.bash_history)记录了我们在终端中运行的所有命令。
我们可以使用history命令在终端中查看最近执行的命令列表。
查看历史记录时,我们应该已经注意到每个命令都有一个前缀号(行号)。
此前缀号可从历史记录中查找和删除特定的命令条目。
但是,我们知道我们可以从history命令的输出中忽略那些数字吗?
这个简短的教程描述了在Linux上显示不带行号的Bash历史记录的所有可能方法。

显示没有行号的Bash历史记录

当我们运行history命令时,我们将看到类似下面的输出。

$history

如我们所见,历史记录中的每个条目都带有一个前缀号。

如果我们不想显示行号,可以使用以下几种方法。

方法1-显示~/.bash_history文件的内容

这是显示没有行号的Bash历史记录的最简单方法。

$cat ~/.bash_history

方法2-使用历史记录命令

我们可以使用history命令的write选项来打印没有数字的历史记录,如下所示。

$history -w /dev/stdout

如果要将输出写入文本文件(例如history.txt),只需运行:

$history -w history.txt

方法3-使用历史记录和剪切命令

一种这样的方法是使用历史记录和剪切命令,如下所示。

$history | cut -c 8

看到了吗?
没有行号。

让我们分解上面的命令,看看每个部分的作用。

  • 历史记录:显示Shell历史记录。
  • | :管道符号用于单独的一个或者多个命令。它发送一个命令的输出作为下一个命令的输入。也就是说,每个命令都会读取前一个命令的输出。
  • 剪切:从文件的每一行中删除节
  • -c:仅选择某些字符
  • 8-:(N-)显示从第N个字节,字符或者字段到行 tail的输出。在这种情况下(8-),它将剪切历史命令的每行输出的前7个字符,并从第8个字符开始显示实际命令。

方法4-使用fc和sed命令

我们还可以使用fc命令和sed命令显示没有行号的shell历史记录。

$fc -l -n 1 | sed 's/^\s*//'

要了解上述Linux命令中每个部分的作用,请参阅ExplainShell。

方法5-使用历史记录和awk命令

忽略行号shell历史记录的另一种方法是使用“ awk”命令,如下所示。

$history|awk '{="";print substr(##代码##,2)}'