Linux系统中的bash历史命令有助于记住您之前运行过的命令并重复它们而无需重新键入它们。如果可以,您会很高兴您不必翻阅十几页手册,每隔一段时间再次列出您的文件,而只需键入历史记录来查看以前运行的命令。在这篇文章中,我们将探索如何让历史命令记住你想让它记住的东西,而忘记那些可能没有太多“历史价值”的命令。查看命令历史记录要查看以前运行的命令,只需键入history。您可能会看到一长串命令。记住的命令数量取决于在~/.bashrc文件中设置的名为$HISTSIZE的环境变量,但是如果你想保存更多或更少的命令,你可以根据需要更改此设置。要查看历史记录,请使用历史命令:$history209uname-v210date211manchage...要查看将显示的最大命令数:$echo$HISTSIZE500您可以更改$HISTSIZE并通过运行如下命令使其永久化:$exportHISTSIZE=1000$echo"HISTSIZE=1000">>~/.bashrc也会在为您保留多少历史记录和您键入历史记录时显示多少之间产生差异。$HISTSIZE变量控制显示多少历史记录,而$HISTFILESIZE变量控制在.bash_history文件中保留多少命令。$echo$HISTSIZE1000$echo$HISTFILESIZE2000您可以通过计算历史文件中的行数来验证第二个变量:$wc-l.bash_history2000.bash_history请注意,在登录会话中输入的命令不会添加到您的.bash_history文件中,尽管它们会立即出现在历史命令输出中。使用历史记录可以通过三种方式重新发出您在历史记录中找到的命令。最简单的方法,尤其是如果您要重用的命令是最近运行的,通常是键入一个!后跟命令中足够的首字母以唯一标识它。$!uuname-v#37-UbuntuSMPThuMar2620:41:27UTC2020重复命令的另一种简单方法是按向上箭头键直到显示命令,然后按回车键。此外,如果您运行history命令并看到列出要重新运行的命令,您可以输入!后跟命令左侧显示的序列号。$!209uname-v#37-UbuntuSMPThuMar2620:41:27UTC2020HideHistory如果你想停止记录某段时间的命令,可以使用这个命令:$set+ohistory当你进入历史时,你输入的命令将不会显示,当您退出会话或退出终端时,它们也不会添加到您的.bash_history文件中。要取消设置,请使用set-ohistory。要使其永久化,您可以将其添加到您的.bashrc文件中,尽管不使用命令历史记录通常不是一个好主意。$echo'set+ohistory'>>~/.bashrc暂时清除历史,这样进入历史时只显示后面输入的命令,可以使用history-c(清除)命令:$history|tail-3209uname-v210date211manchage$history-c$history1history注意:进入history-c后输入的命令不会添加到.bash_history文件中。控制历史在许多系统上,历史命令的设置默认会包含一个名为$HISTCONTROL的变量,以确保即使您连续七次运行相同的命令,也只会记住一个。它还确保您先输入后跟一个或多个空格的命令将从您的命令历史记录中忽略。$grepHISTCONTROL.bashrcHISTCONTROL=ignorebothignoreboth意思是“忽略重复命令和以空格开头的命令”。例如,如果您输入这些命令:$echotrythis$date$date$date$pwd$history您的历史命令应该像这样报告:$history$echotrythis$date$history请注意,连续的日期命令减少为一个,以Commands结尾带空格的缩进被省略。忽略历史要忽略某些命令以便它们在您键入历史时不出现并且不添加到您的.bash_history文件中,请使用$HISTIGNORE设置。示例:$exportHISTIGNORE=”history:cd:exit:ls:pwd:man”此设置将导致所有history、cd、exit、ls、pwd和man命令从history命令和.bash_history的输出中被忽略文件。如果你想让这个设置永久化,你必须把它添加到你的.bashrc文件中。$echo'HISTIGNORE="history:cd:exit:ls:pwd:man"'>>.bashrc这个设置只是表示当你回看以前运行的命令时,查看命令历史时不会显示列表.查看命令被干扰。记住、忽略和忘记过去的命令命令历史非常有用,因为它可以帮助您记住最近使用的命令并提醒您最近的更改。它还可以更轻松地重新运行命令,尤其是那些具有您不一定要重新创建的参数字符串的命令。自定义您的历史记录设置可以更轻松、更高效地处理命令历史记录。
