1

Я использую следующий код в моем .bash_profile для фильтрации и дедупликации моей истории bash:

shopt -s histappend
HISTSIZE=100000
HISTFILESIZE=100000
HISTCONTROL=ignoredups:erasedups
PROMPT_COMMAND="history -a;history -c;history -r;$PROMPT_COMMAND"

Это работает замечательно, однако получается следующий побочный эффект:

Допустим, у меня открыто два терминала / вкладки:

  • Первая вкладка: папка: ~ , последний запуск команды: wget big_file... (или что-нибудь длинное)
  • 2-я вкладка: папка: произвольная временная папка, последняя команда: rm -rf *

Теперь, если я перехожу со 2-й на 1-ю вкладку и нажимаю клавишу ВВЕРХ, она повторно запускает последнюю команду, как будто все в порядке.

Теперь наступает опасный момент: если я снова нажму UP, он вставит rm -rf * и если я не замечу это в тот самый момент, когда я только что удалил все свои данные.

Можете ли вы порекомендовать мне настройку .bash_profile для истории, которая выполняет дедупликацию / фильтрацию, но не допускает таких вещей?

1 ответ1

0

Вы можете использовать HISTIGNORE чтобы игнорировать те из них, которые вы считаете опасными.

HISTIGNORE='rm -rf *:dangercmd -c 2:echo and so on' 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .