Bunu .bash_history
yapmak için dosyadaki kayıtları kullanacağız . Bir sonraki komut, en sık kullandığınız sırayla tüm komutların bir listesini verecektir:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr
Yalnızca ilk 10'u istiyorsanız, head
yukarıdaki komutta eklemeniz gerekir :
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head
Belirli bir üst, örneğin ilk 5 almak için, seçenekle head
birlikte -n 5
kullanın:
Listeyi ters sırada (nadiren kullanılan komutların üstünde) r
istiyorsanız, saniye için oprion kullanmayın sort
:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n
Ve son olarak, örneğin bir kez kullanılan komutların bir listesini almak için şunu kullanın grep ' 1 '
( 1
istediğiniz sayıyla değiştirin ):
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | grep ' 1 '
Yalnızca awk komutunda değil, sudo
komutlarla (gibi sudo vim foo
) ilgilenmek için şunu {print $3}
kullanın:
{if($3 ~ /sudo/) print $4; else print $3}
Yani tüm komut şöyle görünecektir:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {if($3 ~ /sudo/) print $4; else print $3}' | sort | uniq -c | sort -nr
Örneğin:
$ 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
Aşağıdakiler için sayılarındaki atlamayı görebilirsiniz vim
, rm
vb