कुंजीपटल अल्प मार्ग
अपने बैश इतिहास से स्क्रॉल करने के लिए, आप कुछ बैश के कई उपयोगी कीबोर्ड शॉर्टकट का उपयोग कर सकते हैं। इन शॉर्टकट्स और कमांड को दबाएं जिन्हें आपने पहले उपयोग किया था, प्रॉम्प्ट पर दिखाई देंगे।
- ऊपर की ओर तीर या Ctrl + P: अपने इतिहास में पिछले कमांड पर जाएं। आपके द्वारा उपयोग किए गए आदेशों के माध्यम से पीछे की ओर चलने के लिए कुंजी कई बार दबाएं।
- नीचे का तीर या Ctrl + N: अपने इतिहास में अगले आदेश पर जाएं। आपके द्वारा उपयोग किए गए आदेशों के माध्यम से आगे बढ़ने के लिए कुंजी कई बार दबाएं।
- Alt + R: अगर आपने इसे वर्तमान लाइन पर संपादित किया है तो अपने इतिहास से खींचे गए किसी भी बदलाव में किसी भी बदलाव को वापस लाएं।
बैश में एक विशेष "याद" मोड भी है जिसका उपयोग आप उन आदेशों को खोजने के लिए कर सकते हैं जिन्हें आपने पहले चलाया था, बजाय एक-एक करके स्क्रॉल करने के बजाए।
- Ctrl + R: आपके द्वारा प्रदान किए गए वर्णों से मेल खाने वाले अंतिम आदेश को याद करें। इस शॉर्टकट को दबाएं और कमांड के लिए अपने बैश इतिहास को खोजने के लिए टाइप करना प्रारंभ करें।
- Ctrl + O: Ctrl + R के साथ मिले आदेश को चलाएं।
- Ctrl + G: कमांड चलाने के बिना इतिहास खोज मोड छोड़ दें।
अपना बैश इतिहास देखें
आप एक ही कमांड चलाकर अपने पूरे बैश इतिहास को स्क्रीन पर प्रिंट कर सकते हैं:
history
आप प्रत्येक के बाईं ओर एक संख्या के साथ, अपने बैश इतिहास में सभी आदेशों की एक सूची देखेंगे। इसके बगल में "1" वाला कमांड आपके बैश इतिहास में सबसे पुराना कमांड है, जबकि उच्चतम संख्या वाला कमांड सबसे हालिया है।
grep
अपने कमांड इतिहास को खोजने के लिए आदेश।
history | grep your_search
tail
आपके द्वारा चलाए गए हालिया आदेशों की केवल एक छोटी संख्या को देखने के लिए आदेश। उदाहरण के लिए, निम्न आदेश आपके इतिहास में अंतिम 5 प्रविष्टियां दिखाएगा।
history | tail -5
अपने इतिहास से आदेश चलाएं
बैश जल्दी से पिछले आदेशों का विस्तार कर सकता है, या उन्हें विस्तारित कर सकता है और उन्हें संशोधित कर सकता है। इस सुविधा को "इतिहास विस्तार" के रूप में जाना जाता है और एक विस्मयादिबोधक चिह्न का उपयोग करता है, जिसे "बैंग" के नाम से जाना जाता है। बस उन्हें प्रॉम्प्ट पर टाइप करें और उन्हें चलाने के लिए एंटर दबाएं जैसे कि आप कोई अन्य कमांड चलाएंगे।
अपने इतिहास से अपने नंबर से एक विशिष्ट कमांड चलाने के लिए, निम्न आदेश का उपयोग करें:
!#
उदाहरण के लिए, मान लें कि आप अपने बैश इतिहास से 12 वें कमांड को चलाने के लिए चाहते थे। जब आप इसे चलाते हैं तो बाईं ओर "12" के साथ यह आदेश होता है
history
आदेश। आप निम्न आदेश टाइप करेंगे।
!12
!!
आप कमांड लाइनों की एक निश्चित संख्या को भी कमांड का संदर्भ ले सकते हैं। उदाहरण के लिए,
!-2
आपके द्वारा चलाए गए आखिरी कमांड के लिए दूसरा रन करेगा।
!!
जैसा कि वही बात है
!-1
!!
या इस खंड में अन्य अभिव्यक्तियों में से कोई भी। उदाहरण के लिए, आप अंतिम आदेश को फिर से चालू करने के लिए निम्न आदेश टाइप कर सकते हैं
sudo
इसे रूट विशेषाधिकार दे रहा है। यदि आप जोड़ना भूल जाते हैं तो यह विशेष रूप से उपयोगी होता है
sudo
कमांड चलाने से पहले।
sudo !!
या, उदाहरण के लिए, आप पिछले कमांड को दोबारा शुरू कर सकते हैं और कुछ पाठ खोजने के लिए अपने आउटपुट को grep पर पाइप कर सकते हैं।
!! | grep text
!text
इसलिए, यदि आपने हाल ही में एक आदेश चलाया जो शुरू हुआ था
ping
आप इसे खोजने के लिए निम्न आदेश चला सकते हैं। यह आपके इतिहास के माध्यम से पीछे की ओर खोज करेगा, सबसे हालिया कमांड का पता लगाएं जो"
pi
, और तुरंत इसे चलाएं:
!pi
:p
उपरोक्त किसी भी विस्तार और बैश को चलाने के बिना टर्मिनल को कमांड प्रिंट करेगा। यह उपयोगी है अगर आप यह पुष्टि करना चाहते हैं कि आप इसे चलाने से पहले सही कमांड का चयन कर रहे हैं।
!12:p
!!:p
!text:p
अपने इतिहास से तर्क का पुन: उपयोग करें
बैश आपको एक नया आदेश चलाने की अनुमति देता है, लेकिन आपके इतिहास में पिछले आदेशों से तर्क का उपयोग करता है। इससे आपको फिर से टाइप किए बिना लंबे या जटिल तर्कों का पुन: उपयोग करने में मदद मिल सकती है।
command !$
उदाहरण के लिए, मान लें कि आपने आदेश चलाया है
touch /home/chris/some_long_file_name_you_dont_want_to_type_again
। अब आप कमांड को चलाने के लिए चाहते हैं
nano /home/chris/some_long_file_name_you_dont_want_to_type_again
। स्क्रैच से पूरी चीज टाइप करने की बजाय, आप चला सकते हैं:
nano !$
!$
बैश स्वचालित रूप से आपके पिछले आदेश से अंतिम तर्क भरने देगा।
ping google.com -c 4
और फिर चलाओ
ping !$
यह सिर्फ"
ping 4
“.
इस स्थिति को ठीक करने के लिए, आप अंतिम चाल के बजाय लाइन पर पहले तर्क का विस्तार करने के लिए निम्न चाल का उपयोग कर सकते हैं:
command !^
तो, यदि आप भाग गए
ping google.com -c 4
और फिर भाग गया
ping !^
बैश इसे विस्तारित करेगा"
ping google.com'
command !*
तो, यदि आप भाग गए
ping !*
इसके बजाए, बैश स्वचालित रूप से आपके द्वारा पिछले आदेश में उपयोग किए गए सभी तर्कों को भर देगा।
command !abc:#
उदाहरण के लिए, हमने आदेश चलाया
sudo hostname ubuntu
पहले। यदि हम निम्न आदेश चलाते हैं, तो बैश इतिहास के माध्यम से पिछली बार खोज करेगा जो हमारे द्वारा लिखे गए अक्षरों से शुरू होने वाले अंतिम आदेश को खोजने के लिए और हमारे द्वारा निर्दिष्ट तर्क में भरें। तो, अगर हम भागते हैं
echo !su:2
बैश से शुरू होने वाले अंतिम कमांड को खोजने के लिए वापस खोजेगा"
su
"और अपना दूसरा तर्क भरें, जो"
ubuntu
“.
अन्य चालें काम करते हैं जैसा आप उम्मीद कर सकते हैं। उदाहरण के लिए, वाइल्डकार्ड के रूप में जाने वाले तारांकन के साथ संख्या को प्रतिस्थापित करने से, आदेश से सभी तर्कों को भरने के लिए बाश का कारण बनता है:
command !abc:*
पिछला कमांड फिर से करें और इसे संशोधित करें
बैश आपको पिछले कमांड को फिर से चालू करने और कुछ निर्दिष्ट करने की अनुमति देता है जिसे बदला जाना चाहिए। यह एक कमांड में टाइपो को सही करने के लिए उपयोगी हो सकता है। उदाहरण के लिए, निम्न आदेश पिछले कमांड को फिर से चालू कर देगा, पाठ को बदल देगा"
abc
"इसमें पाठ के साथ"
xyz
“.
^abc^xyz
उदाहरण के लिए, यदि आप गलती से भाग गए
ping gogle.com
तो आप चला सकते हैं
^gog^goog
और बैश कमांड चलाएगा
ping google.com
बजाय।
जहां आपका इतिहास संग्रहीत है, और इसे कैसे साफ़ करें
बैश खोल डिफ़ॉल्ट रूप से ~ /.bash_history पर आपके उपयोगकर्ता खाते की इतिहास फ़ाइल में चलाए गए आदेशों का इतिहास संग्रहीत करता है। उदाहरण के लिए, यदि आपका उपयोगकर्ता नाम बॉब है, तो आपको यह फ़ाइल /home/bob/.bash_history पर मिल जाएगी।
चूंकि आपका इतिहास किसी फ़ाइल में संग्रहीत है, यह सत्रों के बीच बनी रहती है। आप कुछ कमांड चला सकते हैं, साइन आउट कर सकते हैं, अगले दिन वापस आएं, और वे आदेश अभी भी आपकी इतिहास फ़ाइल में देखने और उपयोग करने के लिए तैयार होंगे। प्रत्येक उपयोगकर्ता खाते की एक अलग कमांड इतिहास के साथ अपनी स्वयं की इतिहास फ़ाइल होती है।
अपने बैश इतिहास को साफ़ करने के लिए, आप निम्न आदेश चला सकते हैं। यह आपके उपयोगकर्ता खाते की सामग्री मिटा देता है.bash_history फ़ाइल:
history -c
HISTSIZE
चर। डिफ़ॉल्ट आमतौर पर 500 या 1000 प्रविष्टियां होती है। आप अपने सिस्टम पर बैश इतिहास के आकार को देखने के लिए निम्न आदेश चला सकते हैं।
echo $HISTSIZE
अपना इतिहास शून्य पर सेट करने के लिए, निम्न आदेश चलाएं।
HISTSIZE=0
वर्तमान सत्र के लिए, बैश किसी भी इतिहास प्रविष्टियों को संग्रहीत नहीं करेगा जब तक कि आप एक कमांड चलाते हैं
HISTSIZE=1000
इसे एक निश्चित संख्या में प्रविष्टियों पर सेट करने के लिए।
रिक्त स्थान और डुप्लिकेट को अनदेखा कैसे करें
बैश आपको इतिहास प्रविष्टियों को अनदेखा करने की अनुमति देता है जो आपके द्वारा सेट किए जाने पर किसी स्थान से शुरू होते हैं
HISTCONTROL
परिवर्तनीय करने के लिए
ignorespace.
HISTCONTROL=ignorespace
बैश खोल में चलाने से पहले कमांड से पहले एक स्पेस टाइप करें और कमांड सामान्य रूप से चलाएगा, लेकिन यदि आपके पास यह चर सक्षम है तो आपके इतिहास में दिखाई नहीं देगा। यह आपको अपने इतिहास में दिखाई देने के बिना कमांड चलाने के लिए चुनने के लिए अपने इतिहास को थोड़ा क्लीनर रखने की अनुमति देता है।
HISTCONTROL
सेवा मेरे
ignoredups.
HISTCONTROL=ignoredups
ignorespace
तथा
ignoredups
सुविधा, सेट करें
HISTCONTROL
परिवर्तनीय करने के लिए
ignoreboth.
HISTCONTROL=ignoreboth
ध्यान दें कि आपके द्वारा सेट किए गए बैश वेरिएबल केवल मौजूदा सत्र के लिए बने रहेंगे। यदि आप इसे पसंद करते हैं, तो आपको इन बैकअप सत्र में स्वचालित रूप से सेट करने के लिए इन्हें अपने उपयोगकर्ता खाते की.bashrc फ़ाइल में जोड़ना होगा।