मैंने अलग-अलग बैश टर्मिनलों के बीच वास्तविक समय के साझा इतिहास को सक्षम करने के लिए /unix//a/1292/41729 में उत्तर का उपयोग किया । जैसा कि ऊपर दिए गए उत्तर में बताया गया है, इसे जोड़कर प्राप्त किया जाता है:
# avoid duplicates..
export HISTCONTROL=ignoredups:erasedups
# append history entries..
shopt -s histappend
# After each command, save and reload history
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
यदि बैश के गोले अलग-अलग हैं (जैसे कि अलग-अलग बैश टर्मिनल खोलना, तो यह ठीक काम करता है CTRL+ALT+T
। हालांकि, यह काम नहीं करता है अगर मैं tabs
नई विंडो के बजाय एक खुले टर्मिनल `CTRL + SHIFT + T) का उपयोग करता हूं । व्यवहार में यह अंतर क्यों? कैसे? क्या मैं बैश इतिहास को विभिन्न टैब के बीच भी साझा कर सकता हूं?
अद्यतन: मैंने एक असामान्य व्यवहार पर ध्यान दिया: यदि मैं टाइप करता हूं CTRL+C
तो किसी भी अन्य टर्मिनल (दोनों टैब या नहीं) में टाइप की गई अंतिम कमांड सही ढंग से प्रदर्शित होती है। यह ऐसा है जैसे अगर CTRL + C इतिहास का एक प्रवाह भर देता है तो फिर इसे सही तरीके से साझा किया जाता है।
एक उदाहरण के रूप में आउटपुट (T1 टर्मिनल 1 और T2 टर्मिनल 2 को दर्शाता है):
T1:
ls -lah <enter>
# the list of files and directory is shown
T2:
cd Documents <enter>
T1:
<up> (i.e. I press the up arrow)
ls -lah #i.e the last command in terminal 1 is shown rather than the last of terminal 2
^C (i.e. I press CTRL+C)
<up>
cd Documents #the last command issued in terminal 2 is correctly displayed
आशा है कि यह किसी भी संकेत की पेशकश कर सकता है!
~.bashrc
फ़ाइल में जोड़ा है ? एक साइड नोट पर, उन चर का निर्यात व्यर्थ है; सिर्फ पर्यावरण की जगह बर्बाद करता है।