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?
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?
Jawaban:
Nah, ketika histappend
tidak disetel, ini tidak berarti bahwa sejarah dihapus pada setiap keluar shell. Tanpa histappend
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.
histappend
memiliki relevansi dengan apakah root
sejarah mencapai disk? Sekali lagi, itu hanya mempengaruhi apa yang tertulis, bukan jika .
histappend
dan HISTCONTROL=ignoredups:erasedups:ignorespace
sepertinya standar yang bagus untuk kebanyakan orang.
histappend
efektif tidak ada artinya jika saya memiliki HISTFILESIZE=
dan HISTSIZE=
untuk sejarah yang tak terbatas?
Untuk kompatibilitas historis, saya kira. The histappend
pilihan tidak ada sampai pesta 2.0.
histappend
.
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=452459