कमांड चलाते समय, कभी-कभी मैं पिछले वाले तर्कों के साथ एक कमांड चलाना चाहता हूं। ऐसा करने के लिए, आप इस शॉर्टकट का उपयोग कर सकते हैं:
$ mkdir /tmp/new
$ cd !!:*
कभी-कभी, खोजने का उपयोग करने के बदले में, मैं एक-लाइन लूप को तोड़ दूंगा, अगर मुझे फ़ाइलों की सूची पर आदेशों का एक गुच्छा चलाने की आवश्यकता है।
for file in *.wav; do lame "$file" "$(basename "$file" .wav).mp3" ; done;
मेरे .bash_login (या .bashrc) में कमांड-लाइन इतिहास विकल्पों को कॉन्फ़िगर करना वास्तव में उपयोगी है। निम्नलिखित सेटिंग्स का एक कैडर है जो मैं अपने मैकबुक प्रो पर उपयोग करता हूं।
निम्नलिखित को सेट करना आपके इतिहास में डुप्लिकेट कमांड को मिटा देता है:
export HISTCONTROL="erasedups:ignoreboth"
मैं अपने इतिहास का आकार भी बहुत अधिक बढ़ाता हूं। क्यों नहीं? यह आज के माइक्रोप्रोसेसरों पर कुछ भी धीमा नहीं लगता है।
export HISTFILESIZE=500000
export HISTSIZE=100000
एक और बात जो मैं करता हूं वह मेरे इतिहास के कुछ आदेशों की अनदेखी करना है। एक्जिट कमांड को याद रखने की आवश्यकता नहीं है।
export HISTIGNORE="&:[ ]*:exit"
आप निश्चित रूप से हिस्टैपेंड सेट करना चाहते हैं। अन्यथा, जब आप बाहर निकलते हैं तो अपने इतिहास को मिटा देते हैं।
shopt -s histappend
एक अन्य विकल्प जो मैं उपयोग करता हूं वह है cmdhist। यह आपको एक कमांड के रूप में मल्टी-लाइन कमांड को इतिहास में सहेजने देता है।
shopt -s cmdhist
अंत में, मैक ओएस एक्स पर (यदि आप vi मोड का उपयोग नहीं कर रहे हैं), तो आप स्क्रॉल बंद होने से <CTRL> -S रीसेट करना चाहते हैं। यह बैश को आगे की खोज के रूप में व्याख्या करने में सक्षम होने से रोकता है।
stty stop ""