Cara mengatur jumlah perintah sejarah ingat

15

Saya menggunakan bash. Untuk menelusuri sejarah perintah saya, saya memanggil historyperintah yang saya percaya memanggil program Gnu dengan nama yang sama. (Saya tidak tahu apakah ada cara spesifik bash yang lebih baik).

Di .bashrc saya, saya saat ini memiliki garis export PROMPT_COMMAND='history -a'untuk menyimpan sejarah dari beberapa sesi bash saya sedang saya jalankan.

Jika saya melakukan histori, saat ini saya hanya melihat 524 entri. Apakah ini dapat dikonfigurasi? Saya ingin menambahkan ini ke angka yang jauh lebih besar, katakanlah 2000.

Gilles
sumber

Jawaban:

19

Pertama-tama, history adalah cara spesifik bash, tidak ada yang lebih baik. The historyperintah adalah builtin pesta seperti yang Anda lihat dengan menjalankan

$ type history 
history is a shell builtin

Sekarang, jumlah perintah yang diingatnya dikendalikan oleh HISTSIZEvariabel. Untuk mengaturnya ke angka yang lebih besar tambahkan baris ini ke Anda .profile(untuk alasan ini adalah tempat yang lebih baik daripada .bashrc, lihat di sini ):

export HISTSIZE=2000

Mulai sekarang, historyakan mengembalikan 2000 perintah terakhir yang Anda jalankan.

terdon
sumber
5

Ya, man bashkatanya:

HISTSIZE - Jumlah perintah yang harus diingat dalam sejarah perintah

Tetapi ada Readlinevariabel a:history-size

Tetapkan jumlah maksimum entri riwayat yang disimpan dalam daftar riwayat. Jika diatur ke nol, semua entri riwayat yang ada dihapus dan tidak ada entri baru yang disimpan. Jika diatur ke nilai kurang dari nol, jumlah entri riwayat tidak terbatas. Secara default, jumlah entri riwayat tidak terbatas.

Anda dapat mengatur history-sizedengan HISTSIZE=1000, bind 'set history-size 1000'atau dengan baris berikut di ~/.inputrc:set history-size 1000

Contoh :

HISTSIZE=1000
bind 'set history-size 0'
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 0
history # prints nothing

bind 'set history-size 0'
HISTSIZE=1000
echo $HISTSIZE # prints 1000
bind -v | grep history-size # prints set history-size 1000
history # prints    13  echo $HISTSIZE\n14  bind -v | grep history-size\n15  history

history-sizetersedia sejak bash-4.0-alpha: PERUBAHAN

Evgeny Vereshchagin
sumber
2

Itu HISTSIZE perintah variabel berapa banyak perintah disimpan dalam sejarah berjalan dan HISTFILESIZEmenentukan berapa banyak perintah dari sejarah berjalan disimpan setelah keluar shell.

Bratchley
sumber