Saya menggunakan jawabannya di /unix//a/1292/41729 untuk mengaktifkan riwayat bersama waktu nyata di antara terminal bash yang terpisah. Sebagaimana dijelaskan dalam jawaban di atas, ini dicapai dengan menambahkan:
# 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"
Ini berfungsi dengan baik jika shell bash terpisah (misalnya membuka terminal bash yang berbeda menggunakan CTRL+ALT+T
. Namun tidak berfungsi jika saya menggunakan tabs
(dari terminal terbuka `CTRL + SHIFT + T) daripada jendela baru. Mengapa perbedaan perilaku ini? Bagaimana dapatkah saya membagikan sejarah bash juga di antara berbagai tab?
UPDATE: Saya melihat perilaku yang tidak biasa: jika saya mengetik CTRL+C
maka perintah terakhir yang diketikkan di terminal lain (baik tab atau tidak) ditampilkan dengan benar. Ini seperti jika CTRL + C memaksa pembilasan sejarah sehingga kemudian dibagikan dengan benar.
Sebagai contoh output (T1 menunjukkan terminal 1 dan terminal 2 T2):
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
Semoga ini bisa memberikan petunjuk!
~.bashrc
file Anda ? Sebagai tambahan, mengekspor variabel-variabel itu tidak ada gunanya; hanya membuang-buang ruang lingkungan.