टर्मिनल में चयनात्मक कमांड-इतिहास?


9

एक टर्मिनल के भीतर, जब आप अपने कीबोर्ड में प्रेस करते हैं, तो आपको पिछले आदेशों को देखने को मिलता है, जो आपने पहले दिए थे। मैं सोच रहा था कि क्या अतीत में केवल आदेशों को देखने का एक तरीका था, उदाहरण के लिए, "ls -l"। इस तरह, अगर आदेशों की सूची है:

  1. ls -l -a
  2. cmake
  3. सीडी ~ / डेस्कटॉप
  4. cmake

"Ls" और टैब लिखने का एक तरीका या "ls" से शुरू होने वाले टर्मिनल को देने वाले पिछले कमांड को पॉप अप करने के लिए कुंजी-स्ट्रोक के संयोजन के लिए जो भी आवश्यक हो।

धन्यवाद,

जवाबों:


14

यह केवल शुरू करने वाली चीजों को नहीं दिखाएगा ls, लेकिन आप Ctrl-R lsइतिहास के माध्यम से पीछे की खोज करने के लिए कर सकते हैं । Ctrl-Rअगला मैच खोजने के लिए दोहराएं ।


CTRL+Rशॉर्टकट कमांड के लिए धन्यवाद ।
क्लेबर एस।

8

कभी-कभी यह उपयोगी है ...

उदाहरण

Ssh का उपयोग कर किसी अन्य मशीन से कनेक्ट करना:

टाइप करना शुरू करें

ssh

PgUpकुंजी का उपयोग करें और आपका ssh आपके अंतिम उपयोग के साथ समाप्त हो जाता है ... PgUpफिर से दबाएं और यह आपको अगले और इतने पर देता है। पसंद है?

आप इसका उपयोग कर सकते हैं:

अपना .bashrc ( vi /home/<yourfolder>/.bashrc) संपादित करें और इसे जोड़ें:

$if Bash
    # Search history back and forward using page-up and page-down
    "\e[5~": history-search-backward
    "\e[6~": history-search-forward

    # Completion
    set match-hidden-files off
    set page-completions off
    set completion-query-items 350
    set show-all-if-ambiguous on

$endif

यह केवल आपके उपयोगकर्ता के टर्मिनल को इस फ़ंक्शन में जोड़ता है। आपको रूट करने के लिए भी एक को एडिट करना होगा: आप इस ट्यूटोरियल को विकी से फॉलो कर सकते हैं। ऐसा कोई तरीका नहीं है जिससे आप इसे गलत कर सकते हैं, साथ ही आपके टर्मिनल अनुभव को बेहतर बनाने के लिए अतिरिक्त सामान भी है ...


आप इसे अप / डाउन एरो कीज़ से भी बाँध सकते हैं: bind '"\e[A": history-search-backward'; bind '"\e[B": history-search-forward'और इसे और भी सहज बनाते हैं।
फ्रिट्ज़

5

कमांड इतिहास देखने के लिए, उपयोग कर सकते हैं:

$ history

यदि आप केवल पिछले आदेश को उदाहरण के लिए "ls" से शुरू देखना चाहते हैं, तो मेरी राय में मैं इसका उपयोग करता हूं:

$ history | grep ls

निश्चित रूप से आउटपुट में कमांड नहीं बल्कि "ls" अक्षर होंगे, लेकिन मुझे लगता है कि यह मदद कर सकता है।


2

आप जो चाहते हैं उसे हासिल करने का सबसे आसान तरीका है !<whatever-command>। उदाहरण के लिए, lsजिसे आपने अंतिम बार निष्पादित किया था, आप उसे अंजाम दे सकते हैं !ls। निम्नलिखित लॉग पर एक नज़र डालें कि क्या यह आपकी ज़रूरत है:

nits@nits-excalibur:~$ ls /mnt/Storage_1/Music/
Music I  Music II  Music III  Music IV  Music V  Music_VI
nits@nits-excalibur:~$ cd Documents/
nits@nits-excalibur:~/Documents$ top
nits@nits-excalibur:~/Documents$ !ls
ls /mnt/Storage_1/Music/
Music I  Music II  Music III  Music IV  Music V  Music_VI

1
यह कमांड को प्रदर्शित किए बिना चलाता है, क्या कोई विकल्प है जो इसे ओपी के अनुरोध के रूप में प्रदर्शित करता है?
ब्रूनो परेरा

Zsh में, आप कर सकते हैं setopt HIST_VERIFYऔर कमांड आपके इनपुट बफर में डाल दी जाएगी, जहां आप इसे स्वीकार करने के लिए एंटर दबा सकते हैं, या इसे एडिट कर सकते हैं।
poolie

1

इतिहास स्थित है ~ / .bash_history इसके अलावा, अपने बैश इतिहास प्रेस ctrl + r को खोजने के लिए एक साफ चाल के लिए, फिर उस कमांड की शुरुआत टाइप करें जिसे आप खोज रहे हैं।

और http://ubuntuforums.org/showthread.php?t=204382 हैंडी कमांड-लाइन उपनाम और चाल के लिए

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