要获得您在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日期…
查看最近的命令需要查看记录命令的底部:
$ history | tail -4 1007 echo $HISTSIZE 1008 history | wc -l 1009 history 1010 history | tail -4
或者,您可以使用尾巴命令查看你的底部. bash_history文件,但显示的数字历史命令允许您通过键入以下内容来重新运行命令1010年!和通常更有用。
准备所使用命令的摘要(例如6和回声),您可以先使用awk要将这些信息从历史记录中保存的每个命令的其余部分中分离出来:
$ history | awk '{print $2}' vi别名echo history date…
然后将历史记录中的命令列表传递给排序将命令按字母顺序排列,您将得到如下内容:
$ history | awk '{print $2}' | sort 7z 7z alias apropos cd cd…
接下来,传递它的输出排序命令uniq - c将计算每个命令的使用量。
$ history | awk '{print $2}' |排序| uniq -c 2 7z 1别名2 apropos 38 cd 21 chmod…
最后,增加一秒排序命令对命令组计数进行反向排序将首先列出最常用的命令。
$ history | awk '{print $2}' |排序| uniq -c |排序-nr 178 ls 95 vi 63 cd 53 sudo 41 more…
这给你一个想法,你使用最多的命令,但不会包括任何命令,你可能有意遗漏从你的历史文件设置如下:
HISTIGNORE = " pwd:明确:男:历史”
当历史的变化
对于默认历史记录格式,中的第一个字段历史命令输出将是每个命令的序列号,第二个将是所使用的命令。由于这个原因,所有的awk上面显示的命令被设置为display2美元。
$ alias cmds='history | awk '\ " {print $2}'\ " | sort | uniq -c | sort -nr'
如果您已经使用如下所示的设置修改了历史记录的格式,将日期和时间设置添加到命令历史记录中,那么您还必须修改正在设置的别名。
$ echo $HISTTIMEFORMAT %d/%m/%y %T
这个日期/时间信息有时非常有用,但这意味着你必须在命令历史记录中选择第4个字段而不是第2个字段来总结你的命令使用情况,因为你的历史记录条目看起来是这样的:
sudo apt-get install 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
总结
您总是可以决定您希望保存多少命令历史,以及哪些命令不值得记录,从而使您的命令总结最有用。