Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

बैश इतिहास में महारत हासिल करें: उन्नत कमांड, त्वरित याद, और संपादन युक्तियाँ

बैश का एक समृद्ध इतिहास है। यानी, यह एक पुराना शेल है जिसका एक और भी पुराना पूर्वज (बोर्न शेल) है, लेकिन इसमें एक शानदार history कमांड भी है जो अपनी सुविधाओं की संख्या के आधार पर अन्य सभी शेल इतिहास इंटरफेस को पार करता है। बैश संस्करण history रिवर्स खोज, त्वरित याद, इतिहास को फिर से लिखने, और बहुत कुछ की अनुमति देता है।

history कमांड कई अन्य कमांड की तरह नहीं है। आप कमांड के /usr/bin, /usr/local/bin, या ~/bin जैसे सामान्य सिस्टम-स्तरीय स्थानों में रखी निष्पादन योग्य फाइलें होने के आदी हो सकते हैं। बिल्ट-इन history कमांड आपके PATH में नहीं है और इसका कोई भौतिक स्थान नहीं है:

$ which history

which: no history in [PATH]

इसके बजाय, history शेल का एक बिल्ट-इन फंक्शन है:

$ type history
history is a shell builtin
$ help history
history: history [-c] [-d offset] [n] or
history -anrw [filename] or
history -ps arg [arg...]

इतिहास सूची को प्रदर्शित या हेरफेर करें।
[...]

इस कारण से, प्रत्येक शेल में इतिहास फंक्शन अद्वितीय है, इसलिए जो आप बैश में उपयोग करते हैं वह Tcsh या Fish या Dash में काम नहीं कर सकता है, और जो आप उनमें उपयोग करते हैं वह बैश में काम नहीं कर सकता है। कुछ मामलों में, यह जानना कि बैश क्या कर सकता है, अन्य शेल के उपयोगकर्ताओं को बैश व्यवहार को क्लोन करने के लिए दिलचस्प हैक्स बनाने के लिए प्रेरित कर सकता है, और यह उन बैश सुविधाओं को अनलॉक कर सकता है जिनके बारे में आप कभी नहीं जानते थे।

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

history कमांड का सबसे बुनियादी और लगातार उपयोग आपके शेल सत्र का इतिहास देखना है:

$ echo "hello"
hello
$ echo "world"
world
$ history
1 echo "hello"
2 echo "world"
3 history

इवेंट डेजिग्नेटर

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

इवेंट डेजिग्नेटर ज्यादातर एक विस्मयादिबोधक बिंदु से शुरू होते हैं, जिसे कभी-कभी बैंग (!) भी कहा जाता है।

अपने इतिहास से एक कमांड को फिर से चलाने के लिए, विस्मयादिबोधक बिंदु का उपयोग करें जिसके तुरंत बाद (कोई स्पेस नहीं) उस कमांड का इंडेक्स नंबर हो जिसे आप चाहते हैं। उदाहरण के लिए, मान लें कि लाइन 1 में कमांड echo "hello" है, और आप इसे फिर से चलाना चाहते हैं:

$ !1
echo "hello"
hello

आप एक नकारात्मक संख्या प्रदान करके सापेक्ष स्थिति का उपयोग कर सकते हैं जो आपके इतिहास में वर्तमान स्थिति से वापस की गई लाइनों की संख्या है। उदाहरण के लिए, इतिहास में तीन प्रविष्टियों को वापस जाने के लिए:

$ echo "foo"
foo
$ echo "bar"
bar
$ echo "baz"
baz
$ !-3
echo "foo"
foo

यदि आप केवल एक लाइन वापस जा रहे हैं, तो आप !-1 के बजाय शॉर्टहैंड !! का उपयोग कर सकते हैं। यह एक पूरा कीस्ट्रोक बचाता है!

$ echo "foo"
$ !!
echo "foo"
foo

आप प्रविष्टियों के माध्यम से एक विशिष्ट स्ट्रिंग को रिवर्स में खोज सकते हैं, एक कमांड चलाने के लिए। एक कमांड को खोजने के लिए जो एक विशिष्ट स्ट्रिंग से शुरू होती है, एक विस्मयादिबोधक बिंदु का उपयोग करें जिसके तुरंत बाद (कोई स्पेस नहीं) वह स्ट्रिंग हो जिसे आप खोजना चाहते हैं:

$ echo "foo"
$ true
$ false
$ !echo
echo "foo"
foo

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

$ echo "foo"
$ true
$ false
$ !?foo?
echo "foo"
foo

स्ट्रिंग प्रतिस्थापन

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

$ echo "hello"
hello
$ echo "world"
world
$ ^hello^foo
echo "foo"
foo

इतिहास को उपयोगी बनाएं

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

  1. 7 आवश्यक बैश इतिहास शॉर्टकट जिनका आप दैनिक उपयोग करेंगे 7 आवश्यक बैश इतिहास शॉर्टकट जिनका आप दैनिक उपयोग करेंगे

    बैश इतिहास शॉर्टकट के अधिकांश गाइड उपलब्ध हर एक को पूरी तरह से सूचीबद्ध करते हैं। उस दृष्टिकोण की समस्या यह है कि मैं एक शॉर्टकट का उपयोग एक बार करूंगा, फिर सभी संभावनाओं को आजमाते हुए चकाचौंध हो जाऊंगा। फिर मैं अपने कार्य दिवस पर चला जाऊंगा और उन्हें पूरी तरह से भूल जाऊंगा, केवल प्रसिद्ध !! ट्रिक क

  1. विंडोज 10 में फाइल हिस्ट्री को नई ड्राइव पर ले जाएं विंडोज 10 में फाइल हिस्ट्री को नई ड्राइव पर ले जाएं

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

  1. Windows 10 फ़ाइल इतिहास के साथ अपनी फ़ाइलें सुरक्षित करें: एक चरण-दर-चरण गाइड Windows 10 फ़ाइल इतिहास के साथ अपनी फ़ाइलें सुरक्षित करें: एक चरण-दर-चरण गाइड

    Windows 10 पर, फ़ाइल इतिहास सुविधा आपको फ़ाइलों और फ़ोल्डरों की प्रतियों को सुरक्षित स्थानों पर बैकअप करने की अनुमति देती है, जब आप गलती से कुछ हटा देते हैं। डिफ़ॉल्ट रूप से, फ़ाइल इतिहास सुविधा संगीत, चित्र, दस्तावेज़, डाउनलोड, और वीडियो फ़ोल्डर्स में स्थित फ़ाइलों का बैकअप लेगी, लेकिन आप उन डिफ़ॉल