Setelah mencari tahu apa shopt -s histappend
artinya ini , sepertinya pengaturan yang sangat waras, dan saya terkejut bahwa itu bukan default. Mengapa ada orang yang ingin menghapus riwayat mereka di setiap keluar shell?
bash
command-history
tepang
sumber
sumber
bash
'murni' atau yang disediakan oleh distro.bashrc
. untuk yang pertama, @Gilles mungkin benar. dalam arti yang terakhir,-s histappend
adalah default pada, misalnya, Debian, sejak 2008: bugs.debian.org/cgi-bin/bugreport.cgi?bug=452459Jawaban:
Nah, ketika
histappend
tidak disetel, ini tidak berarti bahwa sejarah dihapus pada setiap keluar shell. Tanpahistappend
bash membaca histfile saat startup ke dalam memori - selama operasi entri baru ditambahkan - dan saat shell keluar, baris HISTSIZE terakhir ditulis ke file histori tanpa menambahkan, yaitu mengganti konten sebelumnya.Misalnya, jika histfile berisi 400 entri, selama bash runtime 10 entri baru ditambahkan - histsize diatur ke 500, maka histfile baru berisi 410 entri.
Perilaku ini hanya bermasalah jika Anda menggunakan lebih banyak contoh bash secara paralel. Dalam hal ini, file riwayat hanya berisi konten dari shell yang terakhir keluar.
Terlepas dari ini: Ada beberapa orang yang ingin menghapus riwayat mereka saat keluar dari shell karena alasan privasi.
sumber
histappend
memiliki relevansi dengan apakahroot
sejarah mencapai disk? Sekali lagi, itu hanya mempengaruhi apa yang tertulis, bukan jika .histappend
danHISTCONTROL=ignoredups:erasedups:ignorespace
sepertinya standar yang bagus untuk kebanyakan orang.histappend
efektif tidak ada artinya jika saya memilikiHISTFILESIZE=
danHISTSIZE=
untuk sejarah yang tak terbatas?Untuk kompatibilitas historis, saya kira. The
histappend
pilihan tidak ada sampai pesta 2.0.sumber
histappend
.