जवाबों:
Ctrl+ दबाएं Rऔर टाइप करें ssh
। Ctrl+ Rसबसे हालिया कमांड से पुरानी एक (रिवर्स-सर्च) की खोज शुरू करेगा। आप एक से अधिक आदेश जो के साथ शुरू होता है, तो ssh
, प्रेस Ctrl+ Rजब तक फिर से और फिर आप मैच पाते हैं।
एक बार मैच मिल जाने के बाद आप Enterकमांड के पाठ का चयन करने के लिए कमांड या लेफ्ट / राइट कर्सर को निष्पादित करने के लिए प्रेस कर सकते हैं ।
खोज की दिशा को पलटने के लिए Ctrl+ के लिए कोई डिफ़ॉल्ट रिवर्स विकल्प नहीं है Rलेकिन यहां आपको इसके बारे में कुछ सुझाव मिलेंगे।
मैं उपर्युक्त की थोड़ी भिन्नता रखता हूं, मेरे लिए अच्छा काम करता है (यदि आप अपने बैश इतिहास की बात कर रहे हैं
अपने होम फोल्डर में मैं एक फाइल बनाता हूं जिसका नाम है
.inputrc
अंदर यही जाता है
"\e[5~": history-search-backward
"\e[6~": history-search-forward
नोट: उपरोक्त 14.04 में अब काम नहीं कर रहा है इसलिए यह वही काम करता है -
"\e[A":history-search-backward
"\e[B":history-search-forward
फिर एक पिछली कमांड के बहुत सारे टाइप करना जो मैं चाहता हूं और पेज अप / पेज डीएन बटन का उपयोग करके इतिहास को खोजता हूं, हमेशा पृष्ठ के साथ शुरू होता है
यहां क्लासिक कमांड्स (डिस्ट्रोस के काम करने की संभावना) का उपयोग करते हुए एक और तरीका है। कमांड हिस्ट्री को .bash_history
आपके होम डायरेक्टरी में फाइल में स्टोर किया जाता है , इसलिए आप ऐसा कर सकते हैं:
grep "ssh" ~/.bash_history
-i
यदि आपको असंवेदनशील खोज की आवश्यकता है तो ध्वज को न भूलें ।
history | grep ssh
केवल अस्थायी सत्र का ssh दिखाएगा इसलिए मैं इस उत्तर के लिए जाऊंगा।
मुझे इंटरनेट पर कहीं न कहीं निम्नलिखित फंक्शन मिला और उसने इसका बड़े प्रभाव से उपयोग किया है। इसे अपने में रखें ~/.bashrc
:
hgrep () {
history | egrep --color=auto --recursive "$@" | egrep --color=auto --recursive -v "hgrep $@"
}
अब अपने शेल को फिर से लोड करें exec bash
:। अब आपके पास एक नई कमांड है, जिसका आप इस तरह उपयोग कर सकते हैं:
hgrep ssh
यह आपको अपने इतिहास से मेल खाने वाली कमांड की एक सूची दिखाएगा। कमांड चलाने के लिए, !
कमांड नंबर के बाद टाइप करें । यहाँ एक उदाहरण है:
~:$ hgrep scp
207 tn scp foreign-teachers __HOST__:unity.log __HOST__:compiz.log .
421 tn scp scott-laptop __HOST__:Scott\ Severance.asc .
422 tn scp scott-laptop __HOST__:'Scott\ Severance.asc' .
468 tn scott-desktop scp -r Backgrounds/* __HOST__:Pictures/Backgrounds
469 tn scott-laptop scp -r Backgrounds/* __HOST__:Pictures/Backgrounds
470 scp -r Backgrounds/* 192.168.1.2:Pictures/Backgrounds
~:$ !207
मुझे यह दृष्टिकोण Ctrl+ से बेहतर लगता है Rक्योंकि यह बहुत अधिक लचीली खोजों की अनुमति देता है, और मैं एक साथ कई परिणाम देख सकता हूं।
यदि आप Emacs ( M-x shell
) में शेल का उपयोग करते हैं M-r
( आप एक टर्मिनल में Ctrl+ केR बराबर है ) का उपयोग कर सकते हैं ।
इतिहास अच्छा है, लेकिन सीमित है - मैं अपने बैश वातावरण को सेट करना पसंद करता हूं ताकि मैं उन सभी कमांड को लॉग करूं जो मैंने कभी भी चलाए हैं, उस निर्देशिका के अलावा जिसमें वे चलाए गए थे। फिर मैं सभी कमांड को सूचीबद्ध करने के लिए एक कमांड चलाता हूं। मैंने वर्तमान निर्देशिका में भाग लिया है, जिसे मैं grep आदि में पाइप कर सकता हूं - इसे 'डिश' देखें:
https://github.com/wolfwoolford/dish
यदि आप पीछा करना चाहते हैं, तो बस इसे अपने .bashrc ( https://github.com/wolfwoolford/dish/blob/master/dishrc ) में स्रोत बनाएं
वहाँ भी एक बहुत ही उपयोगी कमांड है जो आपको मुफ्त में मिलता है, जिसे 'डिश' कहा जाता है - या डिश ग्लोबल - जो हर कमांड को प्रिंट करता है, चाहे वह डायरेक्टरी की हो। जाहिर है कि यह केवल तभी उपयोगी है जब grep और टेल आदि के साथ प्रयोग किया जाता है ...
मैं इसे सालों से इस्तेमाल कर रहा हूं और जब भी मैं एक नया बॉक्स सेटअप करता हूं तो यह सचमुच पहली चीज होती है। यह एक छिपी निर्देशिका (~ / .dish) में पाठ फ़ाइलों में आपके द्वारा चलाए जाने वाले आदेशों को लॉग करता है .. मैंने डिस्क स्थान के साथ कभी कोई समस्या नहीं ली है ...
यह @ssmy के लिए एक टिप्पणी के रूप में लिखना चाहता था, लेकिन सहयोग करने के लिए टिप्पणी में प्रारूपण नहीं कर सका।
history | grep ssh
तब आप के साथ इतिहास के माध्यम से खोज करने के बाद आप कमांड को निष्पादित कर सकते हैं, जो आप चाहते हैं कि एक विस्मयादिबोधक चिह्न के साथ पहले से इसकी संख्या टाइप करके !42
।
उदाहरण:
$ इतिहास | grep ssh 5 ssh me@someserver.net 13 ssh me@someotherserver.net 42 ssh me@thisone.com $ 42