เราจะใช้บันทึกจาก.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ตัวเลือก:

หากคุณต้องการรายการในลำดับย้อนกลับ (บนสุดที่มีคำสั่งที่ไม่ค่อยได้ใช้) อย่าใช้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 '
หากต้องการจัดการกับsudoคำสั่ง (เช่นsudo vim foo) แทนที่จะ{print $3}ใช้คำสั่ง awk เพียงใช้:
{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ฯลฯ