가장 많이 사용되는 Linux 명령이 무엇인지 어떻게 알 수 있나요?

가장 많이 사용되는 Linux 명령이 무엇인지 어떻게 알 수 있나요?

명령줄에서 내가 가장 많이 사용하는 명령이 무엇인지 알고 싶습니다. 명령줄 사용을 개선할 수 있도록 알고 싶습니다. 내가 가장 많이 사용하는 명령이 무엇인지 안다면 해당 명령에 대해 더 자세히 읽고 더 나은 사용 방법을 찾아볼 수 있습니다.

나는 기록이 내가 입력한 모든 이전 명령의 목록을 유지한다는 것을 알고 있습니다. 가장 많이 사용되는 상위 10개 또는 20개의 명령 목록을 보려면 어떻게 처리해야 합니까?

답변1

방금 이 글을 봤는데http://linux.byexamples.com/

기본적으로 간단한 한 줄 awk 스크립트를 사용합니다.

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

awk '{print $1}' ~/.bash_history | sort | uniq -c | sort -n

awk 명령은 ~/.bash_history에서 첫 번째 문자열을 인쇄합니다(명령 옵션이나 인수는 표시하지 않음). 그런 다음 sort는 모든 줄을 알파벳순으로 정렬한 다음 "uniq -c"는 중복된 줄(입력한 명령)을 제거하고 개수를 계산합니다. 마지막 정렬은 uniq가 반환한 개수에 따라 명령을 정렬합니다.

답변3

hash터미널에서 명령을 사용할 수 있습니다 . 이 명령은 사용하는 모든 명령의 해시 항목을 적중 수와 함께 유지하고 적중을 기반으로 정렬하고 처리할 수 있습니다.

확인하다이 기사자세한 내용은.

답변4

다른 답변의 스크립트는 각 명령줄에서 실행된 첫 번째 명령만 계산합니다. 파이프(예: ' | ') 다음에 실행되는 명령은 포함되지 않습니다. 예를 들어, 다음 줄 자체가 bash 기록에 있었다면:

awk '{print $1}' ~/.bash_history | sort | uniq -c | sort -n

그런 다음 가장 많이 실행된 명령의 반환된 요약에 'sort' 및 'uniq'와 두 번째 'sort'는 해당 줄의 첫 번째 토큰이 아니기 때문에 포함되지 않습니다.

nelaar의 답변을 바탕으로 먼저 모든 파이프에서 bash 기록의 줄을 분할하는 것으로 충분합니다.

sed 's/|/\n/g' ~/.bash_history | awk '{CMD[$1]++;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

관련 정보