मैं कई कंसोल कंसोल का उपयोग करता हूं। और मैं चाहता हूं कि कमांड में दर्ज किए जाने वाले हर टर्मिनल में मेरे द्वारा लिखी गई सभी कमांड्स हों, ताकि अगले कोनोलेज़ जो मेरे पास हैं, उनमें से सभी खुले हों। प्रत्येक टर्मिनल को दूसरे टर्मिनल के कमांड इतिहास को लिखने से रोकने के लिए, मैंने अपने में निम्नलिखित सेटिंग्स दीं.bashrc
# avoid duplicates and commands starting with space
export HISTCONTROL=ignoredups:erasedups:ignorespace
# append history entries..
shopt -s histappend
#My machine reboots without warning sometimes.Hence to save commands instantaneously.
export PROMPT_COMMAND="history -a"
export HISTSIZE=1000
PS1="\[\e[1;34m\]\! \[\e[0m\]"$PS1
मैंने अपने प्रॉम्प्ट में कमांड नंबर देखने के लिए अंतिम पंक्ति दी। कमांड नं। 600 से ऊपर कभी नहीं गया, लेकिन अभी भी मेरे कुछ पुराने आदेश इतिहास से गायब हो रहे हैं। कई कमांड हैं जो बार-बार दिए जाते हैं, लेकिन जैसा कि उम्मीद की जाती है ignoredups
, यह कमांड प्रॉम्प्ट में कभी नहीं बढ़ता है। फिर भी पुराने आदेश अभी भी गायब हैं। और इतिहास में आदेशों की संख्या हमेशा 500 से थोड़ा अधिक शेष है।
.bash_history
फ़ाइल अभी भी ignoredups के बावजूद डुप्लिकेट की एक बहुत कुछ शामिल।
पुनश्च: इको का आउटपुट $HISTSIZE
और $HISTFILESIZE
दोनों हैं=1000
अद्यतन: मुझे उपरोक्त प्रविष्टि में समस्या मिली .bashrc
। बस कॉलिंग history -a
में PROMPT_COMMAND
पिछले नए कमांड को .bash_history से जोड़ा जाता है। तो ignoredups
और erasedups
कोई प्रभाव नहीं है।
क्या कोई रास्ता है, मैं अभी भी .bash_history को हर टर्मिनल से डुप्लिकेट के बिना लिख सकता हूं? मैं प्रत्येक कमांड प्रॉम्प्ट पर पूरे इतिहास को लोड करके history -r
इसे फिर से लिखना नहीं चाहता history -w
, क्योंकि मैंने जो आदेश एक टर्मिनल में जारी किए हैं, वे दूसरे समानांतर चलने वाले टर्मिनल में भी दिखाई देंगे। मैं चाहता हूं कि संयुक्त आदेश केवल एक नए टर्मिनल में दिखाई दें।
पहेली, क्यों मेरा इतिहास 500 के करीब हो रहा था, हल हो गया है। मैंने देखा कि यह हर बार जब मैं इस मशीन में ssh हुआ। .bash_profile
निम्नलिखित प्रविष्टि के साथ बनाना इस समस्या को हल करता है।
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
अब मेरा .bashrc हर बार जब मैं भी ssh निष्पादित किया जाता है। और इतिहास फ़ाइल का आकार अब नीरस रूप से बढ़ रहा है।
bug-bash
इस प्रश्न के पोस्ट होने के एक साल बाद मेलिंग लिस्ट में आने वाले सवाल के लिए बहुत अधिक एक जैसा लगता है : lists.gnu.org/archive/html/bug-bash/2013-07/msg00092.html