使用Linux终端一段时间后,你应该已经注意到,你可以使用上下箭头键来执行你之前运行过的命令。这就是历史的作用。1.查看bash历史(history)我们在上一篇文章中已经介绍了history的使用。有兴趣的可以参考:如何在Linux中使用history命令查看bash历史最简单的方法是使用命令在一行中输入history命令:history这会显示你历史中成百上千条命令,取决于HISTSIZE变量中设置的大小。如果不想列出所有的历史记录,可以限制显示的记录数。例如,如果只想显示最近的7条历史命令,可以在history命令后面加上一个数字7,如下:history72,运行bash历史记录中的命令。查看历史记录后,可以用感叹号!运行命令一个历史命令,如下:!使用两个感叹号!!返回历史中的最后一个命令。例如:sudo!!此外,您还可以使用特定的字符串来运行历史命令。这个“特定字符串”就是历史命令中匹配它的命令:!text比如你运行了echo$HISTCONTROL,然后如果你想再次运行它,你可以这样做:!echo上面的命令就会运行再次回显历史中的最后一个命令:这实际上相当于在历史命令中以“字符串”的形式匹配搜索。如果不确定历史中的具体命令,可以在其后加:p打印命令而不是运行命令,如!echo:p、!23:p等。3、搜索历史记录你可能会想使用grep搜索历史记录,像这样:history|greptext搜索历史记录的一种更好且超级方便的方法是使用ctrl+r键,反向搜索并键入您要查找的字符串。您可以通过反复按ctrl+r循环选择,当您找到要查找的命令时,按ctrl+o或直接输入以选择并运行该命令。例如,以下示例搜索包含“aud”的命令:如果没有找到您想要的,请更改您搜索的字符串,或按ctrl+g退出搜索。4.重用历史中以前命令的参数关于历史的另一个有用的技巧是你可以在新命令中使用以前命令的参数。我们可以这样使用上一个命令的最后一个参数:!$例如,假设我们刚刚使用less命令读取了某个文件,然后想编辑这个文件,那么我们可以使用!$快捷键,如下图所示:上面的选项只提供了上一条命令的最后一个参数。如果你想要所有的参数,使用下面的命令:!*5,clearentriesinhistory有一个环境变量叫HISTCONTROL,可以帮助我们处理bash历史中的冗余条目。可以指定以下三个值之一:ignorespace:使用这个变量值,当运行命令时,在命令前加一个空格,命令将照常运行,但不会记录在历史记录中;ignoredups:如果有两个或多个相同的命令连续运行,历史记录中只会记录一个命令;ignoreboth:设置以上两个函数。设置HISTCONTROL变量,这个变量应该在bashrc文件中设置,这样每次使用bashshell时这个变量的设置都会生效。如果历史记录过多,可以使用-c选项清除历史记录,从头开始记录新的命令。history-c除了我们上面介绍的,历史上还有很多值得研究的东西。可以参考history命令的man手册。如果你有兴趣,你还可以了解historybuiltins。地址为:https://www.gnu.org/software/bash/manual/html_node/Bash-History-Builtins.html