Usaremos os registros do .bash_history
arquivo para fazer isso. O próximo comando fornecerá uma lista de todos os comandos para que você os use com mais freqüência:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr
Se você deseja apenas os 10 principais, adicione head
o comando acima:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head
Para obter um top específico, por exemplo, o top 5, use head
com a -n 5
opção:
Se você quiser a lista na ordem inversa (em cima dos comandos raramente usados), não use r
oprion por segundo sort
:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n
E, finalmente, para obter uma lista com os comandos usados uma vez, por exemplo, use grep ' 1 '
(mude 1
com o número desejado):
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | grep ' 1 '
Para lidar com sudo
comandos (como sudo vim foo
), em vez de apenas {print $3}
no comando awk, use:
{if($3 ~ /sudo/) print $4; else print $3}
Portanto, o comando inteiro ficaria assim:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {if($3 ~ /sudo/) print $4; else print $3}' | sort | uniq -c | sort -nr
Por exemplo:
$ 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
Você pode ver o salto nas contagens para vim
, rm
, etc.