snoop Asked: 2015-10-16 02:55:11 +0800 CST2015-10-16 02:55:11 +0800 CST 2015-10-16 02:55:11 +0800 CST 获取使用的前 10 个命令的历史记录[重复] 772 有没有办法找出历史上最常用的 10 个命令?这里的前 10 名是指我使用最多的命令,即使用次数多于其他命令的命令。 bash 2 个回答 Voted TellMeWhy 2015-10-16T02:59:35+08:002015-10-16T02:59:35+08:00 一条线: history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10 示例输出: 1 211 21.1% ls 2 189 18.9% sudo 3 58 5.8% man 4 52 5.2% cd 5 43 4.3% ping 6 40 4% apropos 7 34 3.4% less 8 22 2.2% cat 9 18 1.8% which 10 18 1.8% aspell 该站点提供了更多信息。 Best Answer fedorqui 2015-10-16T03:01:41+08:002015-10-16T03:01:41+08:00 我自己有一个小脚本来检查我最近使用的前 N 个命令是什么: mylast () { re='^[0-9]+$' if ! [[ $1 =~ $re ]] ; then echo "error: $1 not a number" >&2 else history | awk '{a[$2]++} END {for (i in a) print a[i], i}' | sort -rn | head -n $1 fi } 所以说它mylast 10显示了前 10 名。 这是通过遍历历史并将第二个字段存储到 in 中来完成的awk,以便可以通过数组跟踪计数。 示例输出: $ mylast 5 248 git 107 python 93 grep 71 awk 52 less
一条线:
示例输出:
该站点提供了更多信息。
我自己有一个小脚本来检查我最近使用的前 N 个命令是什么:
所以说它
mylast 10
显示了前 10 名。这是通过遍历历史并将第二个字段存储到 in 中来完成的
awk
,以便可以通过数组跟踪计数。示例输出: