बैश इतिहास को कैसे कायम रखा जाए?


9

मुझे नहीं पता कि यह अपेक्षित है, लेकिन मेरा इतिहास सत्रों में सहेजा नहीं गया है। यह कहना है, अगर मैं खिड़की बंद करता हूं, तो जब मैं इसे फिर से खोलता हूं, तो इतिहास खाली है। मैं इसे सत्रों में कैसे जारी रख सकता हूं?

यहां आपके द्वारा पूछे गए आदेशों के आउटपुट हैं:

 set -o | grep history
history         on

$ grep -i history ~/.bashrc ~/.bash_profile ~/etc/bash.bashrc ~/etc/profile ~/.profile
/cygdrive/c/cygwin/home/car/.bashrc:# Make bash append rather than overwrite the history on disk
/cygdrive/c/cygwin/home/car/.bashrc:# History Options
/cygdrive/c/cygwin/home/car/.bashrc:# Don't put duplicate lines in the history.
/cygdrive/c/cygwin/home/car/.bashrc:# export PROMPT_COMMAND="history -a"
grep: /cygdrive/c/cygwin/home/car/etc/bash.bashrc: No such file or directory
grep: /cygdrive/c/cygwin/home/car/etc/profile: No such file or directory
/cygdrive/c/cygwin/home/car/.profile:if [ "x$HISTFILE" == "x/.bash_history" ]; then
/cygdrive/c/cygwin/home/car/.profile:  HISTFILE=$HOME/.bash_history

$ ls -la ~/ | grep history -> no output

$ echo $HISTFILE 
~/.bash_history
$ echo $HISTSIZE
500
$ echo $HISTFILESIZE 
500

नीचे दिए गए उत्तर में वर्णित संपादन के बाद, अब मुझे मिलता है:

grep -i hist .bashrc
# Make bash append rather than overwrite the history on disk
shopt -s histappend
# History Options
# Don't put duplicate lines in the history.
export HISTCONTROL="ignoredups"
# (added) A new shell gets the history lines from all previous shells
PROMPT_COMMAND='history -a'
# HISTIGNORE is a colon-delimited list of patterns which should be excluded.

मैं अभी भी सत्रों में सहेजे गए इतिहास को पाने में असमर्थ हूं। मैं निम्नलिखित प्रश्न पढ़ता हूं:

कोई भी मेरे मुद्दे को संबोधित नहीं करता था, जिसमें उस व्यक्ति से नीचे का उत्तर भी शामिल था, जिसे उनके प्रश्न का उत्तर डुप्लिकेट से दिया गया था।


मेरे सवाल को भी यहां देखें और जिन सवालों से यह जुड़ा है। उनमें सुझावों का प्रयास करें और पूछें कि क्या आपको अभी भी समस्या है। नकल में, नकल के रूप में बंद करने के लिए मतदान।
टेराडॉन

संपादित करें: set -o | grep इतिहास दिखाता है कि इतिहास चालू है, गूंज $ HISTFILE दिखाता है ~ / .bash_history, गूंज $ HISTSIZE और $ HISTFILESIZE दोनों 500 दिखाते हैं। लेकिन इतिहास अभी भी सत्रों में बरकरार नहीं है
Car981

$ HISTFILE ~ / .bash_history पर सेट है, लेकिन ~ में कोई .bash_history फ़ाइल नहीं है। यह कैसे हो सकता है ?
कार 981

कृपया टिप्पणी करने के बजाय नई जानकारी जोड़ने के लिए अपने प्रश्न को संपादित करें। इन आदेशों के उत्पादन में शामिल हैं: set -o | grep history, grep -i history ~/.bashrc ~/.bash_profile ~/etc/bash.bashrc ~/etc/profile ~/.profileऔर ls -la ~/ | grep history
टेराडॉन

एक विशिष्ट इतिहास फ़ाइल स्थापित करने की कोशिश करें, अपने में यह पंक्ति जोड़ ~/.bashrc: export HISTFILE="~/history"। क्या इससे कुछ अन्तर पड़ता है?
टेराडॉन

जवाबों:


7

वैसे, ऐसा लगता है कि आपके ~/.bashrcपास आवश्यक विकल्प नहीं हैं। सुनिश्चित करें कि ये रेखाएँ आपके पास हैं ~/.bashrc:

# Make Bash append rather than overwrite the history on disk:
shopt -s histappend
# A new shell gets the history lines from all previous shells
PROMPT_COMMAND='history -a'
# Don't put duplicate lines in the history.
export HISTCONTROL=ignoredups

यह अभी भी काम नहीं करता है। नए आउटपुट परिणाम के अपडेट के लिए संपादन देखें।
Car981

7

ठीक है मुझे पता चला कि क्या गलत है। मैं खिड़की बंद नहीं कर सकता, मुझे इनायत को बंद करने के लिए इसके लिए 'निकास' टाइप करना होगा।


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

यह कहना मुश्किल है कि यह एक स्वीकार्य उत्तर है - मुझे एक ही मुद्दा मिला है और इतिहास को बचाने के लिए मैन्युअल रूप से विंडो को बंद करना एक अच्छा विचार नहीं है। अक्सर, मैं टर्मिनल विंडो को अन्य तरीकों से बंद कर देता हूं और फिर इसे ढीला नहीं करना चाहता।
क्रिज़िस्तोफ़ बोशुरको
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.