本帖最后由 balich 于 2016-3-30 09:13 编辑
大家都知道,我们输入的命令都存储在~/.bash_history文件里面,默认存储的是1000条记录,使用一条命令打印出我们最常用的10条命令,大家和可以练练脚本如下。
大家都知道,我们输入的命令都存储在~/.bash_history文件里面,默认存储的是1000条记录,使用一条命令打印出我们最常用的10条命令,大家和可以练练脚本如下。
- $ cat ~/.bash_history | awk '{ list[$1]++; } END { for ( i in list) {printf ("%s\t%d\n",i,list[i]);}}'|sort -nrk 2 |head
- sudo 255
- ll 106
- ls 62
- vim 47
- cat 45
- rm 44
- cd 32
- w 30
- awk 29
- ifconfig 28
0
- sudo 255 后面还有命令 未完整显示
- [root@niaoyun-101 conf]# history | tail -1
- 1093 2016-03-30 12:01:10 root history | tail -1
- [root@niaoyun-101 conf]# history | awk -F 'root' '{print $2}' | sort | uniq -c | sort -nr | head -10
- 127 ll
- 39 ls
- 21 netstat -lnp
- 18 w
- 10 su - tomcat
- 10 /opt/TOM/t1/bin/shutdown.sh
- 10 date
- 10 cd /tmp/
- 9 cd ../
- 8 vi 1.sh
- [root@niaoyun-101 conf]#
0
本帖最后由 qidi2015 于 2016-3-30 16:15 编辑
管道越多,效率越慢,能直接awk读取文件,就不要用cat 然后再用管道往awk里面丢。
- [root@di ~]# time awk '{list[$1]++}END{for(k in list)print list[k],k}' ~/.bash_history |sort -nr|head
- 153 ls
- 144 awk
- 135 cd
- 59 vim
- 50 ll
- 45 w
- 41 cat
- 26 lh
- 24 grep
- 19 netstat
- real 0m0.005s
- user 0m0.002s
- sys 0m0.002s
- [root@di ~]# time awk '{print $1}' ~/.bash_history |sort |uniq -c |sort -nr|head
- 153 ls
- 144 awk
- 135 cd
- 59 vim
- 50 ll
- 45 w
- 41 cat
- 26 lh
- 24 grep
- 19 netstat
- real 0m0.010s
- user 0m0.006s
- sys 0m0.000s
管道越多,效率越慢,能直接awk读取文件,就不要用cat 然后再用管道往awk里面丢。
编辑回复