Cevabı /unix//a/1292/41729 adresinde ayrı bash terminalleri arasında gerçek zamanlı paylaşılan geçmişi etkinleştirmek için kullandım . Yukarıdaki cevapta açıklandığı gibi, bu ekleyerek elde edilir:
# 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"
Bu, bash kabukları ayrıysa (örn CTRL+ALT+T
. Farklı bash terminallerini kullanarak açma) işe yarar. Ancak tabs
yeni pencereler yerine (CTRL + SHIFT + T açık terminalinden) kullanırsam işe yaramaz . Neden bu davranış farkı? bash geçmişini çeşitli sekmeler arasında da paylaşabilir miyim?
GÜNCELLEME: Alışılmadık bir davranış fark ettim: Eğer CTRL+C
yazarsam, diğer terminallerin herhangi birinde (hem sekme olsun ister olmasın) yazılan son komut doğru şekilde görüntülenir. CTRL + C, geçmişin bir sifonunu zorlarsa, böylece doğru bir şekilde paylaşılır.
Örnek olarak çıkışlar (T1, terminal 1 ve T2 terminal 2'yi gösterir):
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
Umarım bu herhangi bir ipucu sunabilir!
~.bashrc
dosyanıza eklediniz mi? Bir yan notta, bu değişkenleri dışa aktarmak anlamsızdır; sadece çevre alanını boşa harcar.