在
Ubuntu China 的论坛
上看到一个比较有意思的
帖子
,楼主用一行命令查看自己最近使用的最多的命令。
history | awk '{print $2}' | awk 'BEGIN {FS="|"} {print $1}' | sort -rn | uniq -c | sort -rn | head
由于 Ubuntu 限制 root 用户的滥用,所以很多 Ubuntu 用户使用系统命令时往往都是通过 sudo 来执行的,而上面的命令没有考虑到这种情况。于是我自己试着用 Ruby 写了一个类似功能的脚本程序,这样可以将 sudo 所执行的命令也计算进来。刚刚运行了一下我的程序
history | ruby top_command.rb | head
结果为
105 ls
73 cd
43 vim
42 ll
25 sudo
22 ruby
18 history
17 grep
13 rm
12 mv
我没事就习惯性的 ls 一下,看来比例还是满高的,呵呵。
脚本程序内容如下:
#!/usr/bin/ruby
# Filename: top_command.rb
# Author: Patrick He
# Date: 10/01/2006
commands = Hash.new(0)
ARGF.each do |line|
words = line.split
commands[words[1]] = commands[words[1]] + 1
if words[1] == 'sudo'
commands[words[2]] = commands[words[2]] + 1
end
end
comArr = commands.sort {|a, b| b[1]<=>a[1]}
comArr.each {|line| print "#{line[1]}/t#{line[0]}/n"}
history | awk '{print $2}' | awk 'BEGIN {FS="|"} {print $1}' | sort -rn | uniq -c | sort -rn | head
由于 Ubuntu 限制 root 用户的滥用,所以很多 Ubuntu 用户使用系统命令时往往都是通过 sudo 来执行的,而上面的命令没有考虑到这种情况。于是我自己试着用 Ruby 写了一个类似功能的脚本程序,这样可以将 sudo 所执行的命令也计算进来。刚刚运行了一下我的程序
history | ruby top_command.rb | head
结果为
105 ls
73 cd
43 vim
42 ll
25 sudo
22 ruby
18 history
17 grep
13 rm
12 mv
我没事就习惯性的 ls 一下,看来比例还是满高的,呵呵。
脚本程序内容如下:
#!/usr/bin/ruby
# Filename: top_command.rb
# Author: Patrick He
# Date: 10/01/2006
commands = Hash.new(0)
ARGF.each do |line|
words = line.split
commands[words[1]] = commands[words[1]] + 1
if words[1] == 'sudo'
commands[words[2]] = commands[words[2]] + 1
end
end
comArr = commands.sort {|a, b| b[1]<=>a[1]}
comArr.each {|line| print "#{line[1]}/t#{line[0]}/n"}