Как запретить интерпретатору bash сохранять некоторые команды в истории команд?

Переменная окружения HISTCONTROL задаёт параметры сохранения команд в истории команд интерпретатора bash.

HISTCONTROL состоит из списка опций, разделённых двоеточием. Опции могут принимать следующие четыре значения:

  • Если список опций содержит ignorespace, то команды, начинающиеся с пробела, сохраняться в истории не будут.
  • Опция ignoredups указывает, что строки совпадающие с последней строкой истории, сохранятся не будут.
  • Опция ignoreboth — сокращение для ignorespace и ignoredups.
  • Опция erasedups говорит интерпретатору, что перед добавлением новой строки в историю команд, нужно удалить все старые строки, совпадающие с добавляемой.

Любое другое значение, кроме указанных, будет игнорироваться.

Если переменная HISTCONTROL не определена, или не содержит допустимого значения, все команды, вводимые в интерпретаторе, будут сохранены в истории команд.

Заметьте, что вторая и последующие строки многострочной команды не проверяются и добавляются в историю команд вне зависимости от значения переменной HISTCONTROL.

Переменная HISTCONTROL может определяться и для конкретного пользователя, и на всю систему, аналогично всем другим переменным окружения интерпретатора bash. Например, чтобы задать опцию ignorespace для всей системы, добавьте следующую строку в файл /etc/bashrc:

export HISTCONTROL=ignorespace

Чтобы задать опцию для конкретного пользователя, укажите необходимую строку в файле .bash_profile в домашнем каталоге пользователя. Обратите внимание, что изменения не будут активизированы до тех пор, пока пользователь полностью не выйдет из интерпретатора и не зайдёт повторно.