बैश इतिहास कई सहायक चीजें कर सकता है, और Strg-r
टेरी वांग ने जिस खोज का उल्लेख किया है, वह उनके बीच एक महत्वपूर्ण है। लेकिन यह भी संभव है कि आपने जो मांगा है वही करें।
आप पिछली कमांड को फिर से कर सकते हैं !!
। इसके साथ ही आप पिछली कमांड को भी एडिट कर सकते हैं। यदि उदाहरण के लिए आप एक कमांड के लिए रूट विशेषाधिकार प्राप्त करना भूल गए
apt-get install a-long-list-of-packages
आपको उस सब को फिर से नहीं लिखना है। इसके बजाय बस बुलाओ
sudo !!
यदि आप अपने इतिहास से किसी विशिष्ट स्थान पर कमांड को फिर से निष्पादित करना चाहते हैं, तो आप !
उदाहरण के लिए भी उपयोग कर सकते हैं
!3
स्थिति पर कमांड को फिर से निष्पादित करने के लिए 3. ध्यान रखें कि यह ऊपर से गिना जाता है। इसलिए यदि आप अपने इतिहास में 500 कमांड जमा कर रहे हैं, !1
तो "500 कमांड पहले" होगा। आप नकारात्मक संख्याओं का भी उपयोग कर सकते हैं। उदाहरण के लिए
!-2
दूसरी अंतिम कमांड को फिर से निष्पादित करेगा।
आप अंतिम कमांड को भी फिर से निष्पादित कर सकते हैं जो एक स्ट्रिंग के साथ शुरू हुआ था
!apt-
जो "apt-" के साथ शुरू हुई अंतिम पंक्ति को फिर से करेगा। यदि आप अंतिम कमांड चाहते हैं जहां स्ट्रिंग लाइन में कहीं भी दिखाई दे, तो आप कुछ का उपयोग कर सकते हैं
!?pt-ge
और भी रोचक बातें हैं जो बैश इतिहास कर सकता है। बस संभावनाओं की एक विस्तृत श्रृंखला की छाप देने के लिए, आप विशेष रूप से इतिहास से एक कमांड के पैरामीटर का उपयोग कर सकते हैं। इसलिए
!-5:3:p
अंतिम कमांड से तीसरे पैरामीटर को पांचवें तक प्रिंट करेगा।
EDIT: रूडी की टिप्पणी के संबंध में, मानक सेटिंग्स के साथ यह बैश इतिहास विस्तार वास्तव में सीधे निष्पादित होता है। यह शायद सबसे अच्छा इस तरह वर्णित है: की तरह एक कॉल !-3
कर रहा है की जगह अपने इतिहास से तीसरे पिछले आदेश और साथ खोल से तो अपने इनपुट (प्रतिस्थापन के साथ) निष्पादित। इसलिए यदि आप टाइप करते हैं !-3
और प्रेस करते हैं ENTER
और आपकी तीसरी अंतिम कमांड होती है ls ~
, तो यह उसी तरह से लागू होती है जैसे कि आपने ls ~
फिर से टाइप किया और ENTER
"अपने दम पर" दबाया ।
यदि आप ऐसा नहीं चाहते हैं, तो आप शेल विकल्प सेट कर सकते हैं histverify
। खोल विकल्प सेट करने और परेशान करने के लिए, आप shopt
कमांड पर पढ़ना चाह सकते हैं । histverify
सेट के साथ , जैसे कॉल !-3
केवल आपके इतिहास से आपकी कमांड लाइन में प्रतिस्थापन लिखता है, लेकिन इसे सीधे निष्पादित नहीं करता है। यदि आपके पास है, तो महत्वपूर्ण बात करने के लिए, ENTER
अपने आप को दबाएं - या यदि आप चुनते हैं तो इससे बचना चाहिए।