Pengaturan .inputrc vs .bashrc


9

Saya perhatikan beberapa pengaturan dalam .bashrcdan .inputrcfile terlihat sama atau mirip, seperti:

shopt -s nocaseglobvs set completion-ignore-case
export HISTSIZEvs set history-size
export HISTFILESIZEvsset history-size

Apakah .inputrcpengaturan juga memengaruhi penyelesaian dan ukuran riwayat di shell python (jika dijalankan di dalam terminal)?

Apakah HISTSIZEdibatasi oleh history-sizeatau apakah itu menimpanya?

Jawaban:


10

Dari bashmanual:

history-size (tidak disetel)

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 diatur ke nilai HISTSIZE variabel shell. Jika upaya dilakukan untuk menetapkan history-sizenilai non-numerik, jumlah maksimum entri riwayat akan ditetapkan ke 500.

Jadi, jika Anda mengatur HISTSIZE, tidak menetapkan history-sizedi .inputrc. Perpustakaan readline (yang .inputrcmerupakan konfigurasi) tidak peduli apa yang Anda setel HISTFILESIZE. HISTFILESIZEadalah ukuran file histori ( $HISTFILE) terpotong ketika bashsesi shell keluar (oleh bash, bukan oleh pustaka readline).

Menurut pertanyaan " Apakah ada cara untuk mengatur ukuran daftar riwayat di bash menjadi lebih dari 5000 baris? ", history-sizePengaturan perpustakaan readline tampaknya mengesampingkan HISTSIZEpengaturan di shell, jika keduanya diatur.

The nocaseglobpilihan shell tidak sama dengan completion-ignore-casepengaturan di .inputrc. Opsi shell adalah tentang perilaku globbing nama file, sedangkan pengaturan readline ada hubungannya dengan penyelesaian nama file (ketika Anda menekan Tabpada baris perintah).

The .inputrcPengaturan ini akan mempengaruhi semua program yang menggunakan perpustakaan readline, bukan hanya bash.

bashdapat dimulai tanpa dukungan readline dengan menjalankannya dengan --noeditingflag.


Perhatikan bahwa kedua HISTSIZEdan HISTFILESIZEyang variabel shell , bukan variabel lingkungan, dan karena itu tidak perlu diekspor.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.