В чем разница между .bashrc и .inputrc

14

Я новичок в системе Unix, и мне интересно создавать настраиваемые функции и конфигурации в файлах настроек, таких как .bashrcи .inputrc.

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

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

Когда я создаю такие операции, как использование клавиши со стрелкой для поиска предыдущей или следующей команды, я добавляю команду .inputrc.

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

Почему мне нужно поместить их в разные файлы настроек? Как я могу отличить, когда положить, что, где?

Заранее спасибо!

Counter10000
источник

Ответы:

18

Настройки в .inputrcфайле влияют на все программы, которые используют библиотеку readline GNU , а не только bash. Думайте о .inputrcфайле как о файле конфигурации для GNU Readline, похожем на .bashrcфайл конфигурации для bash.

GNU Readline описывается как:

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

Чтобы уточнить немного, настройки, которые находятся в .bashrcфайле, влияют только на bash. Если вы хотите , чтобы при необходимости работать bashбез поддержки GNU Readline или использования, вы можете вызвать bashс --noeditingпараметром следующим образом : bash --noediting. Вы можете узнать больше о bashвариантах здесь .

Чтобы ответить на ваш последний вопрос

Как я могу отличить, когда положить, что, где?

Если вы хотите, чтобы опция влияла на все программы в вашей системе, которые используют библиотеку GNU Readline, это .inputrcбыл бы основной выбор. В противном случае, если вы просто хотите настроить bashсеанс, .bashrcбудет лучшим выбором.

aliceinpalth
источник
Спасибо @aliceinpalth. Вы имеете в виду, что bash принадлежит библиотеке GNU Readline? Что еще есть в библиотеке GNU Readline?
Counter10000
5
@ Counter10000 В этом смысле библиотека - это не «набор инструментов» (я понимаю, почему вы так думаете), а «совокупность функциональных возможностей, которые могут использовать разные инструменты». В данном случае это функции для работы с командной строкой (включая прокрутку, редактирование строки и т. Д.). Bash использует это для приглашения оболочки. В моей системе прямо передо мной она также используется для bc(калькулятор командной строки), xfsprogs(программы администратора файловой системы), sqlite(очень маленькая система баз данных), lftp(клиент ftp командной строки) и многого другого.
Mattdm
1
Нет проблем @ Counter10000! Я рад помочь. @mattdm очень хорошо ответил на ваш вопрос. Чтобы узнать больше о том , как эти программы используют GNU Readline, есть хорошая рецензия доступна здесь .
aliceinpalth
1
кажется, что последний абзац в вашем ответе по крайней мере неточен. Я предполагаю, что есть некоторые параметры, которые могут быть установлены только в файле inputrc, поэтому эти два файла не являются полностью «взаимозаменяемыми». Я попытался установить параметры из этого ответа в .bashrcи ничего не произошло. Они имеют только устанавливаемый эффект.inputrc
user907860