Настройки .inputrc и .bashrc

9

Я заметил несколько настроек .bashrcи .inputrcфайлы выглядят одинаково или похожи, например:

shopt -s nocaseglobпротив set completion-ignore-case
export HISTSIZEпротив set history-size
export HISTFILESIZEпротивset history-size

Влияют ли .inputrcнастройки также на завершение и размер истории в оболочке python (если они запускаются внутри терминала)?

Он HISTSIZEограничен history-sizeили переопределяет его?

слишком много
источник

Ответы:

10

Из bashруководства:

history-size (Отключенное)

Установите максимальное количество записей истории, сохраненных в списке истории. Если установлено в ноль, любые существующие записи истории удаляются, и новые записи не сохраняются. Если установлено значение меньше нуля, количество записей истории не ограничено. По умолчанию количество записей истории устанавливается равным значению HISTSIZE переменной оболочки. Если предпринята попытка установить history-sizeнечисловое значение, максимальное количество записей в истории будет установлено равным 500.

Так что, если вы установите HISTSIZE, не установлен history-sizeв .inputrc. Библиотека readline (для которой .inputrcэто конфигурация) не заботится о том, что вы установили HISTFILESIZE. HISTFILESIZEэто размер, до $HISTFILEкоторого усечен файл истории ( ) при bashвыходе из сеанса оболочки ( bashне библиотекой readline).

В соответствии с вопросом « Есть ли способ установить размер списка истории в bash более 5000 строк? », history-sizeНастройка библиотеки readline, кажется, переопределяет HISTSIZEнастройку в оболочке, если установлены оба.

Параметр nocaseglobоболочки не совпадает с completion-ignore-caseпараметром в .inputrc. Параметр оболочки предназначен для определения поведения имени файла, в то время как настройка readline связана с завершением имени файла (когда вы нажимаете Tabв командной строке).

Эти .inputrcнастройки влияют на все программы , которые используют библиотеку Readline, не просто bash.

bashможет быть запущен без поддержки readline, вызывая его с --noeditingфлагом.


Обратите внимание, что оба HISTSIZEи HISTFILESIZEявляются переменными оболочки , а не переменными среды, и, следовательно, их не нужно экспортировать.

Кусалананда
источник