हम .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
आदि