बैश कमांड इतिहास काम नहीं कर रहा है


13

सत्रों के बीच कमांड इतिहास सहेजा नहीं जा रहा है। मैं गाइक का उपयोग कर रहा हूं और सत्र के लिए इतिहास ठीक काम कर रहा है।

मैंने देखा कि .bash_history के पास कुछ कमांड्स हैं जिन्हें मैंने sudo -sमोड में निष्पादित किया था और फिर से वही कोशिश की और सत्र में रहते हुए सभी कमांड्स सहेजे गए इसलिए मैंने कोशिश कीchmod 777 .bash_history

अब पुराने कमांड एक सत्र की शुरुआत में दिखाई देते हैं लेकिन कोई नई कमांड सेव नहीं हो रही है

अग्रिम में थैंक्स


2
तो ... क्या आप वास्तव में पूरा करने की कोशिश कर रहे हैं? तुम न यहाँ एक सवाल पूछने लगते हैं: /
थॉमस वार्ड

4
मोड 777 अनावश्यक है, इसका विशेष रूप से 'निष्पादन योग्य' ध्वज (डिफ़ॉल्ट मोड 600 है) से कोई लेना-देना नहीं है। ~/.bash_historyलिखा हो जाता है जब आप प्रस्थान करें (तक पहुँचने के लिए नए आदेशों का उपयोग कर सकते historyआदेश)। लेकिन मैं इस समस्या को भी देखने में नाकाम रहा हूँ ..
ओनडिन्केनडी

जवाबों:


16

कमांड दिखाई नहीं दे रहे हैं क्योंकि बैश हिस्ट्री क्विल के बाद ही .bash_history फाइल में सेव कर देता है, और यह बहुत कम ही Guake के साथ होता है। नहीं है एक सरल समाधान का बैश हर आदेश के बाद के इतिहास (बजाय अधिलेखन फ़ाइल) संलग्न करने के लिए

shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

4
शुद्ध भयानक। काश मुझे इस बारे में 5 साल पहले पता होता।
एचडीवी

8

संबंधित, आमतौर पर यह कैसे टूट जाता है यदि आपके पास एक .bash_history फ़ाइल होने से पहले एक कमांड सूडो है, तो यह आपके उपयोगकर्ता के बजाय रूट के स्वामित्व में बनाया जाएगा।


3

इतिहास लाइनों को खोने से कैसे बचा जाए, और ऐसा करने के दुष्प्रभावों के बारे में स्पष्टीकरण के लिए http://mywiki.wooledge.org/BashFAQ/088 देखें ।


2

यह भी हो सकता है कि रूट: रूट आपके पास .bash_history (रूट SHOULDN'T OWNER, आपका USER SHOULD BE OWNER!) का मालिक होगा, उस स्थिति में आपको इसकी आवश्यकता है:

#chown user:user .bash_history

यह स्पष्ट रूप से हो सकता है यदि आप sudo bashबहुत कुछ करते हैं !

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