要获得您在Linux系统上使用的命令的摘要,只需要一个相对简单的命令字符串以及两个将它们连接在一起的管道。当您的历史缓冲区保存最近的1,000或2,000条命令时,汇总命令活动会变得相当乏味。这篇文章提供了一种简便的方法来总结命令的用法,并突出显示那些最常用的命令。
首先,请记住命令历史记录中的典型条目可能如下所示。注意,命令显示在命令序列号之后,后面跟着它的参数。
安装ccrypt ^ +命令
注意,依附于HISTSIZE设置的history命令将决定保留多少命令。可以是500,1000甚至更多。如果不喜欢保留了多少命令,可以在.bashrc或其他启动文件中添加或更改HISTSIZE设置。
$ echo $HISTSIZE 1000 $ history | wc -l 1000 $ grep组织学~/.bashrc
用于设置历史记录长度,请参见bash中的HISTSIZE和HISTFILESIZE (1)
记住大量命令的主要好处之一是,它使您可以轻松地重新运行过去使用过的命令,而不必重新键入或记住它们。它还可以让你轻松地回顾你已经完成的一系列任务。当你使用历史命令本身,你会看到类似这样的东西,你最老的命令列在前面:
$ history 7 vi任务8别名9 echo $HISTTIMEFORMAT 10历史11日期…
查看最近的命令,需要看记录的命令底部:
$历史|尾-4 1007回声$ HISTSIZE 1008历史|厕所-l 1009历史1010历史|尾-4
或者,您可以使用尾巴命令查看你的底部. bash_history文件,而是由显示的数字历史命令允许您通过键入一样东西重新运行该命令!1010和通常更有用。
为了制备所使用的命令的摘要(如六和回声),您可以先使用AWK要将这些信息从历史记录中保存的每个命令的其余部分中分离出来:
$历史|AWK“{打印$ 2}”六别名回声历史日期...
然后将历史记录中的命令列表传递给排序命令组按字母顺序排列的命令,你会得到这样的事情:
$历史|AWK '{打印$ 2}' |排序7Z 7Z别名中肯的CD光盘...
接下来,传递它的输出排序命令uniq - c将统计每个很多命令是如何使用的。
$历史|AWK '{打印$ 2}' |排序|uniq的-c 2 7Z 1别名2个中肯38 CD 21 CHMOD ...
最后,添加第二个排序命令反向数字顺序将首先列出你最频繁使用的命令的命令组数进行排序。
$历史|AWK '{打印$ 2}' |排序|uniq的-c |排序-nr 178个LS 95六63 CD 53须藤41更多...
这给了你哪些命令你用最的想法,但不包括任何命令,你可能会有意地与这样的一个设置你的历史文件中删除:
HISTIGNORE = " pwd:明确:男:历史”
当历史的变化
对于默认历史记录格式,中的第一个字段历史命令输出将是每个命令的序列号,第二个将是所使用的命令。由于这个原因,所有的AWK上面显示的命令被设置为display2美元。
$ alias cmds='history | awk '\ "{打印2美元} '\'” |排序|uniq的-c |排序-nr”
如果您修改了历史条目的格式象下面这样显示的一个设置将日期和时间设置你的命令历史记录,你也必须修改,你设置的别名。
$ echo $HISTTIMEFORMAT %d/%m/%y %T
这个日期/时间信息有时非常有用,但这意味着你必须在命令历史记录中选择第4个字段而不是第2个字段来总结你的命令使用情况,因为你的历史记录条目看起来是这样的:
91 20年5月7日16点37分39秒命令和apt-get安装ccrypt ^ + - 命令
因此,在将$2更改为$4之后,用于检查命令历史记录的别名将类似于下面所示。
$ alias cmds='history | awk '\ "{打印4美元} '\'” |排序|uniq的-c |排序-nr”
为了存储或者别名在. bashrc或其他启动文件,确保在前面插入反斜杠美元标记,这样bash就不会试图进行解释4美元。
别名cmds='history | awk '\ "{打印\$2}'\ " | uniq -c | sort -nr' alias cmds='history | awk '\ " {print\$4}'\ " | uniq -c | sort -nr'
注意,日期和时间信息存储在历史文件中与命令本身不同的行中。因此,当添加这些信息时,bash历史文件将有两倍多的行,尽管您的历史命令输出不会:
$ wc -l .bash_history .bash_history . $ history | wc -l 1000
总结
您可以随时决定你想要多少命令历史记录保留,哪些命令是不值得记录,让您的命令摘要最有用的。