如何在Linux终端中使用您的Bash历史记录
1、1.召堡厥熠键盘快捷键要滚动您的bash历史记录,您可以使用一些bash的许多有用的键盘快捷键。按照您之前使用的这些快捷方式和命令会出现在提示符下。向上箭头或Ctrl + P:转到历史记录中的上一个命令。按键多次,通过您使用的命令向后走。向下箭头或Ctrl + N:转到历史记录中的下一个命令。按键多次,通过您使用的命令前进。Alt + R:如果您在当前行中对其进行了编辑,则将任何更改还原为从历史记录中提取的命令。Bash还有一个特殊的“召回”模式,您可以使用它来搜索先前运行的命令,而不是逐个滚动。Ctrl + R:调用与您提供的字符匹配的最后一个命令。按此快捷方式,然后开始输入以搜索您的bash历史记录以获取命令。Ctrl + O:运行您使用Ctrl + R找到的命令。Ctrl + G:保留历史搜索模式,不运行命令。

3、你可以做任何你喜欢的输出。例如,您可以将其管道到grep命令中以搜索您的命令历史。history| grep your_search

5、2.从你的历史运行命令Bash可以快速“展开”先前的命令,或者展开它们并修改它们。这个功能被称为“历史扩展”,并使用一个叫做“砰”的感叹号。只需在提示符下键入它们,按Enter键即可运行它们,就像运行任何其他命令一样。要从历史记录中运行特定的命令,请使用以下命令:#!例如,假设你想从你的bash历史运行第12个命令。当您运行该history命令时,它的左侧有一个“12”的命令。您将键入以下命令。!12

7、这种扩展可以在任何地方工作。您可以!!在本节中添加任何您之前或之后的任何其他表达式。例如,您可以键入以下命令来重新运行您运行的最后一个命令sudo,从而赋予其root权限。如果sudo在运行命令之前忘记添加,这一点尤其有用 。sudo !!或者,例如,您可以重新运行上一个命令并将其输出管道输出到grep以搜索一些文本。!| grep文字

9、您可以附加:p到任何上述扩展,并且bash会将命令打印到终端而不运行。如果要确认您在运行该选项之前选择了正确的命令,这将非常有用。!12:P!:P!正文:P

11、这仅仅填写最后一个参数。所以,如果你运行ping google.com -c 4然后运行ping !$,这将扩展到“ping 4”。要解决这种情况,您可以使用以下技巧来展开第一个参数,而不是最后一个:命令!^所以,如果你跑了ping google.com -c 4,然后跑ping !^,bash会把它扩展到“ping google.com"。

13、您可以使用与从历史记录中运行命令的相同技巧,从中获取参数。只需使用以下形式。命令!abc:#例如,我们sudo hostname ubuntu以前运行命令。如果我们运行以下命令,bash将通过历史记录向后搜索,以从我们键入的字母开始找到最后一个命令,并填写我们指定的参数。所以,如果我们运行echo !su:2,bash将会搜索到以“su”开始的最后一个命令,并填写第二个参数,即“ubuntu”。其他技巧可以像您所期望的那样工作。例如,使用星号(称为通配符)替换数字会导致bash从命令中填入所有参数:命令!abc:*

15、3.存储缩村枵沣您的历史记录,以及如何清除默认情况下,bash shell将您在用户帐户的历史记录文件中运行的命令的历史记录存储在〜/ .bash_history。例如,如果你的用户名是bob,你会在/home/bob/.bash_history找到这个文件。由于您的历史记录存储在文件中,因此会在会话之间持续存在。您可以运行一些命令,退出,第二天回来,这些命令仍然可以在您的历史文件中准备查看和使用。每个用户帐户都有自己的具有单独命令历史的历史文件。要清除您的bash历史记录,可以运行以下命令。这将擦除用户帐户的.bash_history文件的内容:history-c

17、4.如何忽略空格和重复Bash允许您忽略以空格开头的历史记录条目,如果将HISTCONTROL变量设置为ignorespace.HISTCONTROL = ignorespace在命令行前输入一个空格,然后在bash shell中运行命令,命令将正常运行,但如果启用了此变量,则不会显示在历史记录中。这样可以让您的历史保持一点清洁,选择在没有出现在您的历史记录中的情况下运行命令。

19、要使用ignorespace和ignoredups功能,请将HISTCONTROL变量设置为ignoreboth.HISTCONTROL = ignoreboth请注意,您设置的bash变量只会持续存在于当前会话中。您需要将这些添加到用户帐户的.bashrc文件,以便在您启动的每个bash会话中自动设置这些值,如果您愿意的话。

20、bash shell是一个复杂的工具,具有比这些更多的选项。请参阅官方bash手册中的Bash历史内存和历史扩展部分更详细的信息和其他可以使用的高级技巧。