Dalam mode gui, ketika pengguna membuka lebih dari satu terminal, bagaimana terminal menulis ulang file riwayat pengguna itu? alasan saya bertanya adalah karena, sangat mungkin bahwa di setiap terminal pengguna akhirnya menjalankan perintah yang berbeda. Jadi, apakah file riwayat akhirnya menyimpan perintah dari semua terminal atau hanya dari yang pertama dibuka? Atau adakah skema lain yang digunakan untuk mengatasi situasi ini?
Jawaban yang Diterima:
Itu sepenuhnya tergantung pada bagaimana shell memilih untuk menanganinya
bash
secara default akan menimpa file riwayat dengan riwayat lokal setiap shell saat keluar, jadi shell terakhir yang keluar menang. histappend
opsi akan menyebabkannya ditambahkan ke riwayat master sebagai gantinya (shopt -s histappend
).
zsh
melakukan hal yang sama secara default, dan memiliki beberapa opsi untuk mengatasinya:
appendhistory
— Riwayat setiap shell ditambahkan ke file master history saat shell keluarincappendhistory
— File riwayat master diperbarui setiap kali baris dijalankan di shell apa pun, alih-alih menunggu hingga shell itu keluarsharehistory
— Sepertiincappendhistory
, tetapi juga menarik perubahan dari file riwayat master ke semua shell yang berjalan, sehingga Anda dapat menjalankan perintah dalam satu shell lalu tekan Naik di shell lain dan lihat