लिनक्स या मैकोज़ टर्मिनल में अपने बैश इतिहास का उपयोग कैसे करें

विषयसूची:

लिनक्स या मैकोज़ टर्मिनल में अपने बैश इतिहास का उपयोग कैसे करें
लिनक्स या मैकोज़ टर्मिनल में अपने बैश इतिहास का उपयोग कैसे करें

वीडियो: लिनक्स या मैकोज़ टर्मिनल में अपने बैश इतिहास का उपयोग कैसे करें

वीडियो: लिनक्स या मैकोज़ टर्मिनल में अपने बैश इतिहास का उपयोग कैसे करें
वीडियो: Apple Watches New EKG Reader and Clinical Trials Application - YouTube 2024, मई
Anonim
बैश खोल मानक टर्मिनल वातावरण है जिसमें अधिकांश लिनक्स वितरण शामिल हैं, मैकोज़ के साथ शामिल है, और विंडोज 10 पर इंस्टॉलेशन के लिए उपलब्ध है। यह आपके द्वारा टाइप किए गए आदेशों को याद करता है और उन्हें इतिहास फ़ाइल में संग्रहीत करता है। आप शायद बैश इतिहास की कुछ मूलभूत बातें जानते हैं, लेकिन यह आपके विचार से कहीं अधिक शक्तिशाली है।
बैश खोल मानक टर्मिनल वातावरण है जिसमें अधिकांश लिनक्स वितरण शामिल हैं, मैकोज़ के साथ शामिल है, और विंडोज 10 पर इंस्टॉलेशन के लिए उपलब्ध है। यह आपके द्वारा टाइप किए गए आदेशों को याद करता है और उन्हें इतिहास फ़ाइल में संग्रहीत करता है। आप शायद बैश इतिहास की कुछ मूलभूत बातें जानते हैं, लेकिन यह आपके विचार से कहीं अधिक शक्तिशाली है।

कुंजीपटल अल्प मार्ग

अपने बैश इतिहास से स्क्रॉल करने के लिए, आप कुछ बैश के कई उपयोगी कीबोर्ड शॉर्टकट का उपयोग कर सकते हैं। इन शॉर्टकट्स और कमांड को दबाएं जिन्हें आपने पहले उपयोग किया था, प्रॉम्प्ट पर दिखाई देंगे।

  • ऊपर की ओर तीर या Ctrl + P: अपने इतिहास में पिछले कमांड पर जाएं। आपके द्वारा उपयोग किए गए आदेशों के माध्यम से पीछे की ओर चलने के लिए कुंजी कई बार दबाएं।
  • नीचे का तीर या Ctrl + N: अपने इतिहास में अगले आदेश पर जाएं। आपके द्वारा उपयोग किए गए आदेशों के माध्यम से आगे बढ़ने के लिए कुंजी कई बार दबाएं।
  • Alt + R: अगर आपने इसे वर्तमान लाइन पर संपादित किया है तो अपने इतिहास से खींचे गए किसी भी बदलाव में किसी भी बदलाव को वापस लाएं।

बैश में एक विशेष "याद" मोड भी है जिसका उपयोग आप उन आदेशों को खोजने के लिए कर सकते हैं जिन्हें आपने पहले चलाया था, बजाय एक-एक करके स्क्रॉल करने के बजाए।

  • Ctrl + R: आपके द्वारा प्रदान किए गए वर्णों से मेल खाने वाले अंतिम आदेश को याद करें। इस शॉर्टकट को दबाएं और कमांड के लिए अपने बैश इतिहास को खोजने के लिए टाइप करना प्रारंभ करें।
  • Ctrl + O: Ctrl + R के साथ मिले आदेश को चलाएं।
  • Ctrl + G: कमांड चलाने के बिना इतिहास खोज मोड छोड़ दें।
Image
Image

अपना बैश इतिहास देखें

आप एक ही कमांड चलाकर अपने पूरे बैश इतिहास को स्क्रीन पर प्रिंट कर सकते हैं:

history

आप प्रत्येक के बाईं ओर एक संख्या के साथ, अपने बैश इतिहास में सभी आदेशों की एक सूची देखेंगे। इसके बगल में "1" वाला कमांड आपके बैश इतिहास में सबसे पुराना कमांड है, जबकि उच्चतम संख्या वाला कमांड सबसे हालिया है।

आप आउटपुट के साथ अपनी पसंद के कुछ भी कर सकते हैं। उदाहरण के लिए, आप इसे पाइप कर सकते हैं
आप आउटपुट के साथ अपनी पसंद के कुछ भी कर सकते हैं। उदाहरण के लिए, आप इसे पाइप कर सकते हैं

grep

अपने कमांड इतिहास को खोजने के लिए आदेश।

history | grep your_search

आप इसे पाइप भी कर सकते हैं
आप इसे पाइप भी कर सकते हैं

tail

आपके द्वारा चलाए गए हालिया आदेशों की केवल एक छोटी संख्या को देखने के लिए आदेश। उदाहरण के लिए, निम्न आदेश आपके इतिहास में अंतिम 5 प्रविष्टियां दिखाएगा।

history | tail -5

Image
Image

अपने इतिहास से आदेश चलाएं

बैश जल्दी से पिछले आदेशों का विस्तार कर सकता है, या उन्हें विस्तारित कर सकता है और उन्हें संशोधित कर सकता है। इस सुविधा को "इतिहास विस्तार" के रूप में जाना जाता है और एक विस्मयादिबोधक चिह्न का उपयोग करता है, जिसे "बैंग" के नाम से जाना जाता है। बस उन्हें प्रॉम्प्ट पर टाइप करें और उन्हें चलाने के लिए एंटर दबाएं जैसे कि आप कोई अन्य कमांड चलाएंगे।

अपने इतिहास से अपने नंबर से एक विशिष्ट कमांड चलाने के लिए, निम्न आदेश का उपयोग करें:

!#

उदाहरण के लिए, मान लें कि आप अपने बैश इतिहास से 12 वें कमांड को चलाने के लिए चाहते थे। जब आप इसे चलाते हैं तो बाईं ओर "12" के साथ यह आदेश होता है

history

आदेश। आप निम्न आदेश टाइप करेंगे।

!12

आपके द्वारा चलाए गए अंतिम आदेश को फिर से चलाने के लिए, निम्न टाइप करें। पिछले आदेश को देखने के लिए ऊपर और फिर एंटर दबाकर ऊपर तीर दबाकर यह वही प्रभाव पड़ता है।
आपके द्वारा चलाए गए अंतिम आदेश को फिर से चलाने के लिए, निम्न टाइप करें। पिछले आदेश को देखने के लिए ऊपर और फिर एंटर दबाकर ऊपर तीर दबाकर यह वही प्रभाव पड़ता है।

!!

आप कमांड लाइनों की एक निश्चित संख्या को भी कमांड का संदर्भ ले सकते हैं। उदाहरण के लिए,

!-2

आपके द्वारा चलाए गए आखिरी कमांड के लिए दूसरा रन करेगा।

!!

जैसा कि वही बात है

!-1

This expansion works anywhere on the line. You can add anything you like before or after
This expansion works anywhere on the line. You can add anything you like before or after

!!

या इस खंड में अन्य अभिव्यक्तियों में से कोई भी। उदाहरण के लिए, आप अंतिम आदेश को फिर से चालू करने के लिए निम्न आदेश टाइप कर सकते हैं

sudo

इसे रूट विशेषाधिकार दे रहा है। यदि आप जोड़ना भूल जाते हैं तो यह विशेष रूप से उपयोगी होता है

sudo

कमांड चलाने से पहले।

sudo !!

या, उदाहरण के लिए, आप पिछले कमांड को दोबारा शुरू कर सकते हैं और कुछ पाठ खोजने के लिए अपने आउटपुट को grep पर पाइप कर सकते हैं।

!! | grep text

अपने इतिहास में कमांड खोजने और इसे चलाने के लिए, निम्न टाइप करें। यह अंतिम आदेश चलाएगा जो आपके द्वारा निर्दिष्ट पाठ से मेल खाता है:
अपने इतिहास में कमांड खोजने और इसे चलाने के लिए, निम्न टाइप करें। यह अंतिम आदेश चलाएगा जो आपके द्वारा निर्दिष्ट पाठ से मेल खाता है:

!text

इसलिए, यदि आपने हाल ही में एक आदेश चलाया जो शुरू हुआ था

ping

आप इसे खोजने के लिए निम्न आदेश चला सकते हैं। यह आपके इतिहास के माध्यम से पीछे की ओर खोज करेगा, सबसे हालिया कमांड का पता लगाएं जो"

pi

, और तुरंत इसे चलाएं:

!pi

आप एक जोड़ सकते हैं
आप एक जोड़ सकते हैं

:p

उपरोक्त किसी भी विस्तार और बैश को चलाने के बिना टर्मिनल को कमांड प्रिंट करेगा। यह उपयोगी है अगर आप यह पुष्टि करना चाहते हैं कि आप इसे चलाने से पहले सही कमांड का चयन कर रहे हैं।

!12:p

!!:p

!text:p

Image
Image

अपने इतिहास से तर्क का पुन: उपयोग करें

बैश आपको एक नया आदेश चलाने की अनुमति देता है, लेकिन आपके इतिहास में पिछले आदेशों से तर्क का उपयोग करता है। इससे आपको फिर से टाइप किए बिना लंबे या जटिल तर्कों का पुन: उपयोग करने में मदद मिल सकती है।

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:*

Image
Image

पिछला कमांड फिर से करें और इसे संशोधित करें

बैश आपको पिछले कमांड को फिर से चालू करने और कुछ निर्दिष्ट करने की अनुमति देता है जिसे बदला जाना चाहिए। यह एक कमांड में टाइपो को सही करने के लिए उपयोगी हो सकता है। उदाहरण के लिए, निम्न आदेश पिछले कमांड को फिर से चालू कर देगा, पाठ को बदल देगा"

abc

"इसमें पाठ के साथ"

xyz

“.

^abc^xyz

उदाहरण के लिए, यदि आप गलती से भाग गए

ping gogle.com

तो आप चला सकते हैं

^gog^goog

और बैश कमांड चलाएगा

ping google.com

बजाय।

Image
Image

जहां आपका इतिहास संग्रहीत है, और इसे कैसे साफ़ करें

बैश खोल डिफ़ॉल्ट रूप से ~ /.bash_history पर आपके उपयोगकर्ता खाते की इतिहास फ़ाइल में चलाए गए आदेशों का इतिहास संग्रहीत करता है। उदाहरण के लिए, यदि आपका उपयोगकर्ता नाम बॉब है, तो आपको यह फ़ाइल /home/bob/.bash_history पर मिल जाएगी।

चूंकि आपका इतिहास किसी फ़ाइल में संग्रहीत है, यह सत्रों के बीच बनी रहती है। आप कुछ कमांड चला सकते हैं, साइन आउट कर सकते हैं, अगले दिन वापस आएं, और वे आदेश अभी भी आपकी इतिहास फ़ाइल में देखने और उपयोग करने के लिए तैयार होंगे। प्रत्येक उपयोगकर्ता खाते की एक अलग कमांड इतिहास के साथ अपनी स्वयं की इतिहास फ़ाइल होती है।

अपने बैश इतिहास को साफ़ करने के लिए, आप निम्न आदेश चला सकते हैं। यह आपके उपयोगकर्ता खाते की सामग्री मिटा देता है.bash_history फ़ाइल:

history -c

बैश केवल डिफ़ॉल्ट रूप से सीमित संख्या में कमांड याद करता है, इतिहास फ़ाइल को बहुत बड़ा होने से रोकता है। इतिहास प्रविष्टियों की संख्या याद आती है
बैश केवल डिफ़ॉल्ट रूप से सीमित संख्या में कमांड याद करता है, इतिहास फ़ाइल को बहुत बड़ा होने से रोकता है। इतिहास प्रविष्टियों की संख्या याद आती है

HISTSIZE

चर। डिफ़ॉल्ट आमतौर पर 500 या 1000 प्रविष्टियां होती है। आप अपने सिस्टम पर बैश इतिहास के आकार को देखने के लिए निम्न आदेश चला सकते हैं।

echo $HISTSIZE

अपना इतिहास शून्य पर सेट करने के लिए, निम्न आदेश चलाएं।

HISTSIZE=0

वर्तमान सत्र के लिए, बैश किसी भी इतिहास प्रविष्टियों को संग्रहीत नहीं करेगा जब तक कि आप एक कमांड चलाते हैं

HISTSIZE=1000

इसे एक निश्चित संख्या में प्रविष्टियों पर सेट करने के लिए।

Image
Image

रिक्त स्थान और डुप्लिकेट को अनदेखा कैसे करें

बैश आपको इतिहास प्रविष्टियों को अनदेखा करने की अनुमति देता है जो आपके द्वारा सेट किए जाने पर किसी स्थान से शुरू होते हैं

HISTCONTROL

परिवर्तनीय करने के लिए

ignorespace.

HISTCONTROL=ignorespace

बैश खोल में चलाने से पहले कमांड से पहले एक स्पेस टाइप करें और कमांड सामान्य रूप से चलाएगा, लेकिन यदि आपके पास यह चर सक्षम है तो आपके इतिहास में दिखाई नहीं देगा। यह आपको अपने इतिहास में दिखाई देने के बिना कमांड चलाने के लिए चुनने के लिए अपने इतिहास को थोड़ा क्लीनर रखने की अनुमति देता है।

बैश आपको डुप्लिकेट कमांड को अनदेखा करने की अनुमति देता है जो आपके इतिहास को अव्यवस्थित कर सकता है। ऐसा करने के लिए, सेट करें
बैश आपको डुप्लिकेट कमांड को अनदेखा करने की अनुमति देता है जो आपके इतिहास को अव्यवस्थित कर सकता है। ऐसा करने के लिए, सेट करें

HISTCONTROL

सेवा मेरे

ignoredups.

HISTCONTROL=ignoredups

दोनों का उपयोग करने के लिए
दोनों का उपयोग करने के लिए

ignorespace

तथा

ignoredups

सुविधा, सेट करें

HISTCONTROL

परिवर्तनीय करने के लिए

ignoreboth.

HISTCONTROL=ignoreboth

ध्यान दें कि आपके द्वारा सेट किए गए बैश वेरिएबल केवल मौजूदा सत्र के लिए बने रहेंगे। यदि आप इसे पसंद करते हैं, तो आपको इन बैकअप सत्र में स्वचालित रूप से सेट करने के लिए इन्हें अपने उपयोगकर्ता खाते की.bashrc फ़ाइल में जोड़ना होगा।

सिफारिश की: