Saya sudah mencoba mencari ~/.bash_history
perintah baru saya saat berada di sesi terminal tetapi mereka tidak ada di sana. Saya kira ini karena saya memiliki beberapa sesi terminal terbuka.
Apakah ada cara saya dapat menyinkronkan (mis. Sync-push atau sync-write-out) riwayat perintah sesi terminal saat ini ke dalam file bash_history (tanpa menutup sesi dan kehilangan lingkungan itu)?
(Ini akan jauh mirip dalam ide bagaimana sync
perintah menyimpan modifikasi sistem file pada beberapa sistem.)
Saya membayangkan saya bisa mengatur bash untuk menyimpan beberapa riwayat sesi tetapi kemampuan untuk mendorong buffer sejarah saat ini masih akan berguna dalam skenario ketika Anda bekerja pada mesin baru dan Anda secara tidak sengaja lupa mengatur bash dengan cara yang mungkin Anda inginkan .
sumber
history -a
perintah shell builtin tetapi entah bagaimana saya sekarang mendapatkan 'izin ditolak' pada.bash_history
file, setelah itu.Jawaban:
Tambahkan baris ini ke
.bashrc
:Buka terminal baru dan periksa.
Penjelasan
history -a
menambahkan baris riwayat baru ke file riwayat.history -n
memberitahubash
untuk membaca baris yang tidak dibaca dari file riwayat ke daftar riwayat sesi saat ini.PROMPT_COMMAND
: isi dari variabel ini dijalankan sebagai perintah biasa sebelumbash
show prompt. Jadi setiap kali setelah Anda menjalankan perintah,history -a; history -n
dieksekusi, danbash
riwayat Anda disinkronkan.sumber
history -a
terminal dengan bashrc yang tidak dimodifikasi juga.export PROMPT_COMMAND="${PROMPT_COMMAND};history -a; history -n"
${PROMPT_COMMAND}
kosong ini memberikan kesalahan karena pemimpin;
export PROMPT_COMMAND="${PROMPT_COMMAND}${PROMPT_COMMAND:+;}history -a; history -n"