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. history 是显示最近约 500 条在终端执行的命令; 2. awk 是个比较实用而又复杂的文本过滤工具。在这里的作用是统计 history 产生的输出的第二个域(即命令)重复的次数,也就是命令使用的次数,并以计算其百分比; 3. grep 这段的意思是不匹配"./"的命令,因为以"./"开头的一般是当前目录下的程序或脚本; 4. coumn 用于排版,用 3 个空格分割字段; 5. sort,以数字的大小来排列前一管道的输出; 6. nl,加上行号,即1, 2, 3, 4; 7. 只输出前十行。 (责任编辑:IT) |