터미널에서 가장 많이 사용되는 명령으로 목록을 만들려면 어떻게해야합니까?


13

터미널에서 가장 많이 사용되는 명령으로 목록을 만들려면 어떻게해야합니까?

이 질문은 우리 중 일부에 대한 향후 제안에 유용하지 않을 수도 있지만, 이와 같이 목록은 과거에 한 번 또는 여러 번 사용 된 명령을 기억할 수 없을 때 유용합니다. 이 목록의 끝.


어느 터미널?
Elijah Lynn

답변:


20

.bash_history이를 위해 파일 의 레코드를 사용합니다 . 다음 명령은 가장 자주 사용하는 모든 명령 목록을 제공합니다.

history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr

상위 10 개만 원하는 경우 위 head명령 을 추가해야합니다 .

history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head

특정 상위 (예 : 상위 5)를 얻으려면 옵션 head과 함께 사용하십시오 -n 5.

상위 5 개 명령

목록을 역순으로 원한다면 (드물게 사용되는 명령으로 맨 위), roprion을 두 번째로 사용하지 마십시오 sort.

history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n

마지막으로 예를 들어 한 번 사용 된 명령으로 목록을 얻으려면 grep ' 1 '( 1원하는 숫자로 변경 )을 사용하십시오.

history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | grep ' 1 '

awk 명령 대신 sudo명령 ( sudo vim foo) 을 처리하려면 {print $3}다음을 사용하십시오.

{if($3 ~ /sudo/) print $4; else print $3}

따라서 전체 명령은 다음과 같습니다.

history | awk 'BEGIN {FS="[ \t]+|\\|"} {if($3 ~ /sudo/) print $4; else print $3}' | sort | uniq -c | sort -nr

예를 들면 다음과 같습니다.

$ history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head
    284 vim
    260 git
    187 find
    174 man
    168 echo
    149 rm
    134 awk
    115 pac
    110 sudo
    102 l

$ history | awk 'BEGIN {FS="[ \t]+|\\|"} {if($3 ~ /sudo/) print $4; else print $3}' | sort | uniq -c | sort -nr | head
    298 vim
    260 git
    189 find
    174 man
    168 echo
    153 rm
    134 awk
    115 pac
    102 l
     95 cd

당신을위한 카운트에서 점프를 볼 수 있습니다 vim, rm


1
답변에 출처를
밝히고 싶을 수도 있습니다

3
@ohaal 믿거 나 말거나, 나는 위의 소스에 대해 몰랐다. 진심으로 이것은 Iasi의 Computer Science 에서 공부 한 친구의 실험실 문제였습니다 .
Radu Rădeanu

@muru sudo를 위해 편집 한 sudo -i내용은 나를 -i명령으로 제공하기 때문에 이와 같이 작동하지 않습니다
geek1011

1
@ geek1011 sudo -i은 새로운 쉘을 시작합니다. 그 역사는 더 이상 쉘 역사가 아니라의 역사에 있습니다 root. 분명히 이러한 명령은 많은 경우에 작동하지 않습니다. 쉘 언어에 대한 자신의 파서를 작성하지 않고 가능한 모든 명령 을 처리 할 방법이 없습니다 .
muru

1
@ geek1011 확실히, 다음과 같은 다른 체크를 추가하십시오 :if ($3 ~ /sudo/ && $4 !~ /^-/)
muru

3

아래 명령은 top 10가장 자주 사용되는 터미널 명령을 나열 합니다.

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head

터미널에서 가장 자주 사용되는 모든 명령을 나열하는 명령

history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn

2

Fish & Bash-질문은 특정 쉘을 지정하지 않고 '터미널'만 지정합니다. 원하는 숫자로 머리를 변경하십시오.

물고기

history | awk '{print $1}' | sort | uniq --count | sort --numeric-sort --reverse | head -10

517 git
314 drush
197 sudo
171 cd
115 man
103 echo
 95 vi
 81 dig
 67 set
 66 ls

이 배쉬 하나가 작동하는 것 같고 다른 답변보다 약간 짧고 이해하기 쉽습니다. 이러한 유형의 예제에서 가독성을 높이기위한 긴 옵션이 마음에 듭니다.

세게 때리다

history | awk '{print $2}' | sort | uniq --count | sort --numeric-sort --reverse | head -10

73 drush
72 exit
65 sudo
46 g
40 echo
35 ll
34 tmux
30 history
30 fish
27 mux
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.