Яка різниця між .bashrc та .inputrc


14

Я новачок у системі Unix, і мені цікаво створювати спеціалізовані функції та конфігурації у файлах налаштування, таких як .bashrcі .inputrc.

Однак я не розумію відмінностей між ними. Наприклад, коли я створював псевдоніми, я вкладав їх .bashrc.

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

Коли я створюю такі операції, як клавіша зі стрілкою, щоб шукати попередню чи наступну команду, я кладу цю команду .inputrc.

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

Чому мені потрібно помістити їх у різні файли налаштувань? Як розрізнити, коли ставити що куди?

Заздалегідь спасибі!

Відповіді:


18

Параметри, що знаходяться у .inputrcфайлі, впливають на всі програми, які використовують бібліотеку читання GNU , а не лише bash. Подумайте про .inputrcфайл, як на файл конфігурації для GNU Readline, подібний до .bashrcфайлу конфігурації bash.

Число GNU описується як:

... Набір функцій для використання додатками, які дозволяють користувачам редагувати командні рядки під час їх введення.

Щоб уточнити трохи далі, параметри, які є у .bashrcфайлі, впливають лишеbash . Якщо ви хочете , щоб при необхідності працювати bashбез підтримки GNU Readline або використання, ви можете викликати bashз --noeditingпараметром наступним чином : bash --noediting. Більше про bashваріанти можна дізнатися тут .

Щоб відповісти на ваше останнє запитання

Як розрізнити, коли ставити що куди?

Якщо ви хочете, щоб параметр впливав на всі програми вашої системи, які використовують бібліотеку Readline GNU, .inputrcце буде головним вибором. Інакше, якщо ви просто хочете налаштувати свій bashсеанс, .bashrcбуло б найкращим вибором.


Дякую @aliceinpalth. Ви маєте на увазі баш належить до бібліотеки Readline GNU? Що ще є у бібліотеці ReadNline GNU?
Counter10000

5
@ Counter10000 У цьому сенсі бібліотека - це не "колекція інструментів" (я можу зрозуміти, чому ви це можете подумати), а "грудочок функціональності, який можуть використовувати різні інструменти". У цьому випадку це функції для роботи з командним рядком (включаючи прокрутку, редагування рядків тощо). Bash використовує це для підказки оболонки. У моїй системі прямо переді мною він також використовується для bc(калькулятор командного рядка), xfsprogs(програми адміністрування файлової системи), sqlite(дуже невелика система бази даних), lftp(ftp-клієнт командного рядка командного рядка) тощо.
mattdm

1
Без проблем @ Counter10000! Я радий допомогти. @mattdm дуже добре відповів на ваше запитання. Щоб дізнатися більше про те , як ці програми використовують GNU Readline, є хороша рецензія доступна тут .
aliceinpalth

1
здається, що останній абзац у вашій відповіді принаймні неточний. Я припускаю, що є деякі параметри, які можна встановити лише у файлі inputrc, тому два файли не є повністю "взаємозамінними". Я спробував встановити параметри з цього відповіді в .bashrcі нічого не сталося. Вони мають силу встановити лише користувача.inputrc
user907860
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.