Apa perbedaan antara .bashrc dan .inputrc

13

Saya baru mengenal sistem unix, dan merasa tertarik untuk membuat fungsi dan konfigurasi khusus dalam pengaturan file seperti .bashrcdan .inputrc.

Namun, saya tidak mengerti perbedaan antara keduanya. Misalnya, ketika saya membuat alias, saya memasukkannya .bashrc.

Example 1: alias ...='cd ../../'

Ketika saya membuat operasi seperti menggunakan tombol panah untuk mencari perintah sebelumnya atau berikutnya, saya memasukkan perintah .inputrc.

Example 2: "\e[A": history-search-backward

Mengapa saya harus meletakkannya di file pengaturan yang berbeda? Bagaimana saya membedakan kapan harus meletakkan apa di mana?

Terima kasih sebelumnya!

Counter10000
sumber

Jawaban:

17

Pengaturan yang ada dalam .inputrcfile memengaruhi semua program yang menggunakan pustaka membaca GNU , bukan hanya bash. Pikirkan .inputrcfile tersebut sebagai file konfigurasi untuk GNU Readline mirip dengan bagaimana .bashrcfile konfigurasi untuk bash.

GNU Readline digambarkan sebagai:

... Serangkaian fungsi untuk digunakan oleh aplikasi yang memungkinkan pengguna untuk mengedit baris perintah saat diketikkan.

Untuk memperjelas lebih jauh, pengaturan yang ada dalam .bashrcfile hanya mempengaruhi bash. Jika Anda ingin opsional menjalankan bashtanpa dukungan GNU Readline atau penggunaan, Anda dapat meminta bashdengan --noeditingpilihan sebagai berikut: bash --noediting. Anda dapat mengetahui lebih lanjut tentang bashopsi di sini .

Untuk menjawab pertanyaan terakhir Anda tentang

Bagaimana saya membedakan kapan harus meletakkan apa di mana?

Jika Anda ingin opsi untuk mempengaruhi semua program pada sistem Anda yang menggunakan pustaka GNU Readline, .inputrcakan menjadi pilihan utama. Selain itu, jika Anda hanya ingin mengkonfigurasi bashsesi Anda , .bashrcakan menjadi pilihan terbaik.

aliceinpalth
sumber
@ Aliceinpalth terima kasih. Apakah maksud Anda bash milik perpustakaan GNU Readline? Apa lagi yang ada di perpustakaan GNU Readline?
Counter10000
5
@ Counter10000 Dalam hal ini, perpustakaan bukan "kumpulan alat" (Saya bisa melihat mengapa Anda berpikir demikian) tetapi "segumpal fungsi yang dapat digunakan oleh berbagai alat". Dalam hal ini, ini berfungsi untuk bekerja dengan baris perintah (termasuk scrollback, pengeditan baris, dan sebagainya). Bash menggunakan ini untuk prompt shell. Di sistem saya tepat di depan saya, ini juga digunakan untuk bc(kalkulator baris perintah), xfsprogs(program admin sistem file), sqlite(sistem basis data yang sangat kecil), lftp(klien ftp baris perintah), dan banyak lagi.
mattdm
1
Tidak masalah @ Counter10000! Saya senang membantu. @mattdm menjawab pertanyaan Anda dengan sangat baik. Untuk mempelajari lebih lanjut tentang bagaimana program-program ini menggunakan GNU Readline, ada artikel bagus yang tersedia di sini .
aliceinpalth
1
tampaknya paragraf terakhir dalam jawaban Anda setidaknya tidak akurat. Saya kira ada beberapa opsi, yang dapat diatur hanya dalam file inputrc, sehingga kedua file tidak sepenuhnya "dapat dipertukarkan". Aku mencoba untuk mengatur opsi dari ini jawaban di .bashrcdan tidak ada yang terjadi. Mereka hanya memiliki efek yang diatur di.inputrc
user907860