Chúng tôi sẽ sử dụng các hồ sơ từ .bash_history
tập tin để làm điều này. Lệnh tiếp theo sẽ cung cấp cho bạn một danh sách tất cả các lệnh để bạn sử dụng chúng thường xuyên nhất:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr
Nếu bạn chỉ muốn top 10, bạn phải thêm head
vào lệnh trên:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -nr | head
Để có được một đầu cụ thể, ví dụ top 5, hãy sử dụng head
với -n 5
tùy chọn:
Nếu bạn muốn danh sách theo thứ tự ngược lại (đầu với các lệnh hiếm khi được sử dụng), đừng sử dụng r
oprion cho lần thứ hai sort
:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | sort -n
Và cuối cùng để có được một danh sách với các lệnh được sử dụng một lần, ví dụ, sử dụng grep ' 1 '
(thay đổi 1
với số lượng mong muốn):
history | awk 'BEGIN {FS="[ \t]+|\\|"} {print $3}' | sort | uniq -c | grep ' 1 '
Để xử lý sudo
các lệnh (như sudo vim foo
), thay vì chỉ {print $3}
trong lệnh awk, hãy sử dụng:
{if($3 ~ /sudo/) print $4; else print $3}
Vì vậy, toàn bộ lệnh sẽ trông như sau:
history | awk 'BEGIN {FS="[ \t]+|\\|"} {if($3 ~ /sudo/) print $4; else print $3}' | sort | uniq -c | sort -nr
Ví dụ:
$ 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
Bạn có thể thấy sự nhảy vọt trong tính cho vim
, rm
vv