बैश इतिहास कई सहायक चीजें कर सकता है, और 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अपने आप को दबाएं - या यदि आप चुनते हैं तो इससे बचना चाहिए।