เราจะใช้บันทึกจาก.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 '
หากต้องการจัดการกับ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
ฯลฯ