闲来无事,
就对一台服务器做了一下统计,看看大家最长使用的命令是那些。结果如下:
- [r3g@xxx ~]$ sudo ./top10cmds.sh -n 20
- ls 4803
- cd 3507
- vi 1839
- vim 1043
- cvs 896
- sudo 802
- make 638
- pwd 372
- exit 277
- cp 265
- rm 221
- grep 196
- ./generate-xxx 152
- sz 149
- su 124
- find 121
- gcc 119
- ll 102
- * 85
- man 83
- [r3g@xxx ~]$
看到没有, ls是第一位的,然后是cd。
脚本:
- #! /bin/bash
- # 统计系统最常使用的命令
- # 默认输出前十名
- # -n 选项可以制定输出个数
- # Usage:
- # top10cmds [-n num]
- TMPFILE=/tmp/commands$$.tmp
- CMD_HISTORY_FILE=.bash_history
- NUM=10
- trap 'rm -f $TMPFILE' EXIT ERR
- echo "" > $TMPFILE
- check_args()
- {
- case "$#" in
- 0)
- NUM=10;;
- 2)
- if [ $1="-n" ]
- then
- case "$2" in
- *[!0-9]*)
- echo "Usage : $0 [-n num]"
- exit 2
- ;;
- *)
- NUM=$2
- ;;
- esac
- else
- echo "Usage : $0 [-n num]"
- exit 2
- fi
- ;;
- *)
- echo "Usage: $0 [-n num]"
- exit 2;;
- esac
- }
- # 检查参数
- check_args "$@"
- # 侦测所有的命令历史文件
- for i in $(ls /home)
- do
- file="/home/$i/$CMD_HISTORY_FILE"
- if [ -e "$file" ]
- then
- cat $file >> $TMPFILE
- fi
- done
- # 处理
- awk '{print $1}' $TMPFILE | sort | uniq -c |\
- sort -k1,1nr |\
- head -n $NUM |\
- awk '{print $2,$1}'
阅读(1275) | 评论(0) | 转发(1) |