Saya menetapkan export HISTSIZE=99999999999999
tetapi apakah itu cara terbaik? Saya tidak tahu apakah mungkin terjadi overflow. Saya mencari cara yang teruji dan andal untuk menghapus batasan riwayat perintah.
Saya menetapkan export HISTSIZE=99999999999999
tetapi apakah itu cara terbaik? Saya tidak tahu apakah mungkin terjadi overflow. Saya mencari cara yang teruji dan andal untuk menghapus batasan riwayat perintah.
Jawaban:
itu memang tidak (well) didokumentasikan dan saya kira 99% dari pengguna bash pada rencana ini melakukan set HISTSIZE ke sejumlah besar veeery.
Dalam GNU, bash history ditangani melalui pustaka readline yang perkasa. Perpustakaan memiliki opsi untuk membatasi ukuran histori ("stifle" di jargon readline) atau tidak dan bash cukup mengatur histori readline menjadi stifled / unstifled. Jika Anda melihat misalnya GNU bash versi 4.2, file variable.c, baris 4443, fungsi void sv_histsize (char *) Anda akan menemukan komentar ini (dan seluruh pengekangan / pengekangan dalam fungsi berikut):
/ * Apa yang harus dilakukan setelah variabel HISTSIZE atau HISTFILESIZE berubah.
Jika ada nilai untuk HISTSIZE ini (dan itu numerik), maka hilangkan histori. Kalau tidak, jika tidak ada nilai untuk variabel ini,
batalkan sejarah. Jika nama HISTFILESIZE, dan nilainya
numerik, potong file histori untuk menampung tidak lebih dari banyak
baris. * /
Jadi ini harus dilakukan triknya:
export HISTSIZE=""
Dan juga ini (jika Anda merasa menantang):
export HISTSIZE="GOTCHA"
Semoga ini membantu.