बैश उन आदेशों को संग्रहीत क्यों नहीं कर रहा है जो रिक्त स्थान से शुरू होते हैं?


48

अगर मैं इस तरह के आदेशों का एक क्रम करता हूं:

$ ls
$ grep abc file.txt

और फिर पिछले एक को प्राप्त करने के लिए अप एरो की का उपयोग करें, टर्मिनल अंतिम सेमी दिखाएगा (जो grepयहां है)

लेकिन अगर मैं ऐसा कुछ करता हूं:

$ ls
$   grep abc file.txt

जहां grepरिक्त स्थान से पहले है, ऊपर दबाने से देता है ls, नहीं grep

ऐसा क्यों है?


जवाबों:


52
echo $HISTCONTROL
ignoreboth

आदमी बैश:

HISTCONTROL

इतिहास सूची में आदेशों को कैसे सहेजा जाता है इसे नियंत्रित करने वाले मूल्यों की एक बृहदान्त्र-पृथक सूची। यदि मानों की सूची में शामिल हैं ignorespace, तो जो लाइनें अंतरिक्ष चरित्र से शुरू होती हैं, वे इतिहास सूची में सहेजे नहीं जाते हैं। ignoredupsसहेजे न जाने के लिए पिछले इतिहास प्रविष्टि से मेल खाती लाइनों का कारण मान । मान ignorebothके लिए आशुलिपि है ignorespaceऔर ignoredups


3
और कम से कम प्रदान की गई डिफ़ॉल्ट में HISTCONTROLसेट है । ignoreboth~/.bashrcdebian
स्टीफन चेज़लस

1
का उपयोग मामला क्या है ignorespace?
सिरो सेंटिल्ली 新疆 i i i 事件 '28

1
उबंटू में 14.04 डिफ़ॉल्ट डिफ़ॉल्ट है ignorebothजो कि कष्टप्रद है।
निक गैमन

6
Ciro, मुझे लगता है कि यह ऐसा है ताकि आप कमांड दर्ज कर सकें echo "drop database mydb" | mysql -u root -pPasswordऔर इतिहास में इसे सहेजा नहीं है।
जेरेमी 1

2
मैक उपयोगकर्ताओं के लिए, HISTCONTROL कुछ भी करने के लिए सेट नहीं है, तो आप अपने bash_profile या इसी तरह करने के लिए इसे जोड़ने की आवश्यकता होगी - unix.stackexchange.com/questions/115917/...
chrismarx
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.