사용된 상위 10개 명령 기록 가져오기

사용된 상위 10개 명령 기록 가져오기

역사상 가장 많이 사용된 명령 상위 10개를 알아낼 수 있는 방법이 있습니까? 여기서 상위 10개는 내가 대부분의 시간 동안 사용한 명령, 즉 사용 횟수가 다른 명령보다 많은 명령을 의미합니다.

답변1

한 줄:

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

이것사이트는 좀 더 많은 정보를 제공합니다.

답변2

최근에 사용하고 있는 상위 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

관련 정보