इतिहास के आदेशों को फिर से लोड करने का सबसे तेज़ तरीका लिनक्स में कुछ वर्णों से शुरू होता है?


2

डॉस में हम कमांड हिस्ट्री को फिल्टर करने के लिए पहले कई पात्रों को इनपुट कर सकते हैं और तेजी से उचित खोज सकते हैं। लेकिन लिनक्स में एक ही काम कैसे करें?

उदाहरण के लिए जब मैं एक स्थानीय सर्वर का परीक्षण कर रहा हूँ:

cd 
sudo /etc/init.d/vsftpd start
wget ...
ls
emacs ...
sudo /etc/init.d/vsftpd restart
sudo /etc/init.d/vsftpd stop
...

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

historty | grep sudo

मुझे यह पसंद नहीं है, क्योंकि इतिहास आसानी से एक गड़बड़ बन सकता है, और इसे माउस कार्रवाई की भी आवश्यकता है।

जवाबों:


6

निम्नलिखित को अपने में रखें ~/.inputrc:

"\e[A": history-search-backward
"\e[B": history-search-forward

फिर टाइपिंग के बाद sudo, Upके साथ शुरू आदेशों के लिए खोज करेंगे sudo

(आपको बैश को फिर से शुरू करना होगा।) (यदि यह csh में काम करता है तो अनसुना करें।)


ऊपर रीडलाइन (अजगर, gnuplot, gdb, ...) का उपयोग करके कुछ के लिए काम करता है। देखें pixelbeat.org/settings/.inputrc
pixelbeat

@ पिक्सलबीट: शायद आपको " $include /etc/inputrc" सबसे ऊपर रखना चाहिए ? अन्यथा सिस्टम सेटिंग्स आपके अनुकूलन को ओवरराइड कर सकती हैं।
अधिकतम

6

बैश में (और सबसे अधिक पठन-आधारित एप्लिकेशन जैसे) आप Ctrl-Rएक इतिहास खोज फ़ंक्शन को लाने के लिए दबा सकते हैं :

$ date
Tue Feb  1 15:40:06 EET 2011
(reverse-i-search)`d': date

Enterयहाँ दबाने से मुझे मिलता है:

$ date
Tue Feb  1 15:40:06 EET 2011
$ date
Tue Feb  1 15:40:52 EET 2011

संपादित करें:

आप इतिहास से संबंधित बैश कीस्ट्रोक्स के पूरी सूची देख सकते यहाँ

आप इतिहास खोज कीबोर्ड बाइंडिंग की वर्तमान सूची देख सकते हैं:

$ bind -P | grep search | grep history
forward-search-history can be found on "\C-s".
history-search-backward can be found on "\e[5~".
history-search-forward can be found on "\e[6~".
non-incremental-forward-search-history can be found on "\en".
non-incremental-forward-search-history-again is not bound to any keys
non-incremental-reverse-search-history can be found on "\ep".
non-incremental-reverse-search-history-again is not bound to any keys
reverse-search-history can be found on "\C-r".

मेरे मामले में पेज-अप / डाउन का उपयोग उन कमांड्स को खोजने के लिए भी किया जा सकता है, जो मैंने पहले से ही टाइप किए हैं, जो मेरे में कॉन्फ़िगर किए गए हैं /etc/inputrc:

# Page Up/Down cycles through history only for matching entries
"\e[5~": history-search-backward       # Previous
"\e[6~": history-search-forward        # Next

2
यह उल्लेख करना न भूलें कि बार-बार दबाकर CTRL-Rआप सूची को गर्त में खोजते हैं।
फेलिक्स

ऐसा लगता है कि यह आदेश केवल पिछड़े को खोजता है, है ना?
gerry

@gerry, हाँ Ctrl-Rकेवल पीछे की ओर खोज करता है
thkala

2
@gerry: Ctrl-Sआगे की खोज करता है, लेकिन आपको stty -ixonइसे सक्षम करने के लिए (और अक्षम करने Ctrl-Sऔर Ctrl-Qडेटा प्रवाह को रोकने और शुरू करने से) करने की आवश्यकता हो सकती है ।
डेनिस विलियमसन

@ डेनिस धन्यवाद। आपका पूरक सहायक है। अब यह उत्तर वेब पर Ctrl-R का सबसे पूर्ण उपयोग हो सकता है :)
gerry

3

Ctrl+ के अलावा R, आप !sudo+ Enterको bash में टाइप कर सकते हैं और यह अंतिम कमांड को शुरू करेगा sudo


1
काफी उपयोगी ... उस समय तक जहां अंतिम आदेश कुछ की तर्ज पर है sudo rm -rf *। मैं काफी कम लोगों को जानता हूं जो इस तरह से जल चुके हैं।
thkala

2
@thkala: हो सकता sudoहै कि यह उन कमांड्स में से एक हो, जिन्हें इसके साथ इस्तेमाल नहीं किया जाना चाहिए ;)
फेलिक्स

मुझे लगता है कि shopt -s histverify histreeditइससे मुझे बहुत मदद मिलती है।
डेनिस विलियमसन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.