使用合适的命令,可以快速了解Linux系统上使用的命令和执行频率。总结Linux系统上使用的命令只需要一个相对简单的命令串和几个管道将它们绑在一起。当您的历史缓冲区保留最后1,000或2,000个命令时,总结您的命令活动会变得乏味。这篇文章提供了一种方便的方法来总结命令用法并突出显示最常用的命令。首先,请记住,典型的命令历史记录可能看起来像这样。请注意,命令显示在命令序列号之后,紧跟其参数。91sudoapt-getinstallccrypt^+--command请注意,历史命令遵循HISTSIZE设置,它决定保留多少命令。它可能是500、1,000或更多。如果您不喜欢它的设置方式,您可以在.bashrc或其他启动文件中添加或更改HISTSIZE设置。$echo$HISTSIZE1000$历史|wc-l1000$grepHISTSIZE~/.bashrc#用于设置历史记录长度请参阅bash中的HISTSIZE和HISTFILESIZE(1)HISTSIZE=1000记下大量命令的主要好处之一是它可以让您轻松地重新运行您过去使用过的命令,而无需重新键入或记住它们。它还可以让您轻松查看您在某项任务上完成了多少工作。单独使用history命令时,会看到类似下面的内容,最早的在前面:$history7vitasks8alias9echo$HISTTIMEFORMAT10history11date...查看最新的命令,需要查看记录命令的结尾:$history|tail-41007echo$HISTSIZE1008历史|wc-l1009历史1010历史|tail-4另外可以用tail命令查看.bash_history文件的尾部,但是history命令显示的数字让你输入如!1010重新运行命令通常更有用要提供所用命令的摘要(例如vi和echo),您可以先使用awk将命令与历史记录中的其他信息分开:$history|awk'{print$2}'vialiasechohistorydate...如果你把中的命令列表传递给sort命令以按字母顺序对命令进行分组,那么你会得到以下内容:$history|awk'{print$2}'|sort7z7zaliasaproposcdcd...接下来,将排序命令的输出传递给uniq-c,这将计算每个命令被使用的次数:$history|awk'{print$2}'|排序|uniq-c27z1alias2apropos38cd21chmod...最后,添加第二个排序命令以相反的顺序对命令进行排序按组计数排序,这将首先列出最常用的命令:$history|awk'{print$2}'|排序|了解最常用的命令,但不包括您可能有意从历史文件中删除的任何命令,例如:HISTIGNORE="pwd:clear:man:history"当修改历史格式时对于默认历史格式,第一个history命令输出中的字段将是每个命令的序列号,第二个字段将是使用的命令。因此,上面的所有awk命令都设置为显示$2。$别名cmds='历史|awk'\''{print$2}'\''|排序|uniq-c|sort-nr'如果你像下面这样把日期和时间添加到历史命令中,那么你仍然有你设置的别名必须修改:$echo$HISTTIMEFORMAT%d/%m/%y%T这个日期/时间信息是有时有用,但这意味着您必须选择历史命令的第4个字段而不是第4个字段2个字段来总结命令,因为您的历史条目将如下所示:9105/07/2016:37:39sudoapt-getinstallccrypt^+--command所以把$2改成$4后,用来查看历史命令的别名会改成这样:$aliascmds='history|awk'\''{print$4}'\''|排序|uniq-c|sort-nr'可以将别名保存在.bashrc或其他启动文件中,确保在$符号前插入一个反斜杠,这样bash就不会尝试解释$4。别名cmds='历史|awk'\''{print\$2}'\''|uniq-c|排序-nr'aliascmds='历史|awk'\''{print\$4}'\''|uniq-c|sort-nr'请注意,日期和时间信息与命令本身的历史文件保存在不同的行中。因此,添加此信息会使bash历史文件中的行数加倍,尽管历史命令的输出中没有:$wc-l。命令历史记录,哪些命令不值得记录以使您的命令摘要最有用。
