无论你是 bash 初学者或专家,如果不使用超级有用的,您将无法继续在命令行中工作 bash 历史特征。
您可能已经知道,如果您在 Linux 终端中使用向上或向下箭头键,您可以查看之前运行的命令。
这得益于 bash 历史命令。
1. 查看您的 bash 历史
查看您之前键入的命令的最简单方法是使用命令历史记录。
history
它将显示存储在您的历史记录中的一百甚至一千条命令。 大小取决于 HISTSIZE 变量。
如果您不希望屏幕混乱,您可以限制它显示的行数。 为了 example,要仅显示历史记录中的最后 7 个命令,请像这样使用它:
history 7
2.运行命令 bash 历史
当您查看历史记录时,您可以通过使用其编号来运行命令 !
, 像这样:
!#

您可以使用重新运行最后一个命令 !!
. 当您忘记使用命令时,可以很好地使用它,然后像这样快速使用它来运行 sudo:
sudo !!

您也可以运行以特定文本开头的最后一个命令,如下所示:
!text
假设您之前运行了 echo $HISTCONTROL 并且您想再次运行它。 你可以像这样使用它:
!echo
上面的命令将运行你历史记录中最后一次运行的 echo 命令。

有一个更好的选择来搜索历史记录,我将在下一节中向您展示。
额外提示:如果您不确定该命令,请不要运行它,而是通过添加打印它 :p
到最后。 所以你像这样使用它 !echo:p
, !23:p
等等
3.通过搜索 bash 历史
你可能认为这样更容易 使用 grep 命令 通过这样的历史搜索:
history | grep text
搜索历史的更好和超级方便的方法是使用 ctrl+r
键开始反向搜索并键入您要查找的字符串。
您可以按 ctrl+r
重复,当你找到你正在寻找的命令时,按 ctrl+o
或者干脆 enter
键选择并运行该命令。
为了 example, 这 example 下面搜索包含“aud”的命令。

如果您没有找到该命令,请更改您的搜索字符串或按 ctrl+g
从反向搜索中走出来。
4. 重用历史中先前命令的参数
这是您可以做的另一件很酷的事情 bash 历史。 您可以在新命令中使用来自先前命令的参数。
您可以像这样使用上一个命令的最后一个参数:
new_command !$
为了 example,假设您正在使用 less 命令读取文件,并且您决定需要编辑此文件。 您无需完全输入,而是使用 !$
捷径。

上面的选项只给你上一个命令的最后一个参数。 如果您想要所有参数,请使用以下命令:
new_command !*
5.清理你的冗余条目历史
有一个名为 HISTCONTROL 的环境变量可以帮助您处理中的冗余条目 bash 历史。 您可以为其分配三个值之一:
- ignorespace:设置此变量后,您可以通过在命令前面放置一个空格来运行命令。 该命令照常运行,但不会包含在历史记录中。
- ignoreups:如果连续运行了两个以上相同的命令,则仅将其中一个记录在历史记录中。
- ignoreboth:设置上述两个功能。
您应该在 bashrc 文件中设置变量,以便每次使用时都设置它 bash 贝壳。
你的命令太多 bash 历史? 您可以使用选项清除 -c
. 这将清除当前的历史 bash 并从现在开始重新添加命令。
history -c

还有很多事情要做 bash 历史比我在这里讨论的这五个技巧。 您可以随时参考 history 命令的手册页以获取更多信息。 您可能还想了解 历史内建,如果你感兴趣的话。
我希望你觉得这篇文章有帮助。 如果你有最爱 bash 历史功能,请在评论中分享。