Есть ли способ повлиять на поведение истории bash?

Есть ли способ повлиять на поведение истории bash?

В терминале история bash часто бывает полезна, когда вы ищете командную строку, которую вы уже использовали. Но есть ли способ повлиять на поведение истории bash (то есть, какие команды сохраняются, как долго они сохраняются, сколько их сохраняется и т. д.)?

решение1

Поведение вашей истории контролируется несколькими переменными:

  • HISTCONTROL: управляет тем, как значения сохраняются в вашей истории. Значения ignorespace, ignoredupsи erasedupsмогут быть введены здесь (разделяются двоеточием).
  • HISTFILE: задает местоположение файла истории.
  • HISTFILESIZE: устанавливает максимальное количество строк в файле истории.
  • HISTIGNORE: содержит список шаблонов, которые bash игнорирует (см.другой ответдля синтаксиса).
  • HISTSIZE: содержит ряд строк, которые запоминаются в реальной оболочке.
  • HISTTIMEFORMAT: содержит выражение, указывающее, как форматируется запись (см.другой ответ)

решение2

Установка временной метки для истории:

  • По умолчанию история не дополняется временной меткой, но ее легко настроить для отображения временной метки, нужно просто задать одну переменную окружения.HISTTIMEFORMAT.

    export HISTTIMEFORMAT="%h/%d - %H:%M:%S "

  • Выполните историю еще раз, чтобы увидеть результат. альтернативный текст
  • Если вы не хотите сохранять команды в истории, то

    export HISTSIZE=0

ПЕРЕМЕННЫЕ:

  • HISTFILE — управляет местом сохранения файла истории.
  • HISTFILESIZE — управляет количеством команд истории, которые следует хранить в HISTFILE.
  • HISTSIZE — управляет количеством команд истории, которые следует хранить в списке истории текущего сеанса.
  • HISTIGNORE — управляет тем, какие команды следует игнорировать и не сохранять в списке истории.

Примечание:

  • Вы потеряете свои настройки, как только закроете терминал. Поэтому, если вы хотите, чтобы они сохранились навсегда, вам следует добавить указанную выше команду в ~/.bashrcили ~/.bash_aliases.

решение3

Вы можете добавить строку вроде

export HISTFILESIZE=5000

на ваш ~/.bashrc, чтобы увеличить размер истории. По умолчанию команды, начинающиеся с пробела, не сохраняются. Это связано с тем, export HISTCONTROL=ignorebothчто глобально включено в Ubuntu по умолчанию.

Вы также можете игнорировать команды, начинающиеся с lили , whichиспользуя

export HISTIGNORE="l*:which*"

решение4

Есть способ сказать истории НЕ запоминать команду: просто начните с пробела. Есть также очень простой способ извлечь конкретную команду: введите CTRL+R и слово из команды, которую вы ищете.

Конечно, есть способ увеличить историю по умолчанию, которая по умолчанию составляет 500 строк... но я не знаю как, извините!

Связанный контент