터미널에서 가장 많이 사용되는 명령으로 목록을 만들려면 어떻게해야합니까?
이 질문은 우리 중 일부에 대한 향후 제안에 유용하지 않을 수도 있지만, 이와 같이 목록은 과거에 한 번 또는 여러 번 사용 된 명령을 기억할 수 없을 때 유용합니다. 이 목록의 끝.
터미널에서 가장 많이 사용되는 명령으로 목록을 만들려면 어떻게해야합니까?
이 질문은 우리 중 일부에 대한 향후 제안에 유용하지 않을 수도 있지만, 이와 같이 목록은 과거에 한 번 또는 여러 번 사용 된 명령을 기억할 수 없을 때 유용합니다. 이 목록의 끝.
답변:
.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
.
목록을 역순으로 원한다면 (드물게 사용되는 명령으로 맨 위), r
oprion을 두 번째로 사용하지 마십시오 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
등
sudo -i
내용은 나를 -i
명령으로 제공하기 때문에 이와 같이 작동하지 않습니다
sudo -i
은 새로운 쉘을 시작합니다. 그 역사는 더 이상 쉘 역사가 아니라의 역사에 있습니다 root
. 분명히 이러한 명령은 많은 경우에 작동하지 않습니다. 쉘 언어에 대한 자신의 파서를 작성하지 않고 가능한 모든 명령 을 처리 할 방법이 없습니다 .
if ($3 ~ /sudo/ && $4 !~ /^-/)
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