Usaremos los registros del .bash_history
archivo para hacer esto. El siguiente comando le dará una lista de todos los comandos para que los use con más frecuencia:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr
Si solo desea los 10 principales, debe agregar head
en el comando anterior:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head
Para obtener un top específico, por ejemplo top 5, use head
con la -n 5
opción:
Si desea la lista en orden inverso (arriba con los comandos raramente utilizados), no use r
oprion por segundo sort
:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n
Y, finalmente, para obtener una lista con los comandos utilizados una vez, por ejemplo, use grep ' 1 '
(cambie 1
con el número deseado):
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | grep ' 1 '
Para manejar sudo
comandos (como sudo vim foo
), en lugar de solo {print $3}
en el comando awk, use:
{if($3 ~ /sudo/) print $4; else print $3}
Entonces todo el comando se vería así:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {if($3 ~ /sudo/) print $4; else print $3}' | sort | uniq -c | sort -nr
Por ejemplo:
$ 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
Se puede ver el salto en cuenta para vim
, rm
, etc.