На этот вопрос уже есть ответ здесь:
По умолчанию .bashrc
в стандартном дистрибутиве Ubuntu 16.04, который поставляется с AWS, содержит следующие строки:
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
Однако, похоже, это не работает. Я неоднократно запускал pm2 restart myApp
и pm2 list
, используя клавишу со стрелкой вверх, и теперь буфер команд содержит почти сотню их строк.
Что может быть не так?
Это работает, как предназначено. ignoredups
, подразумеваемый ignoreboth
, не добавляет команда к истории, если она совпадает с непосредственной предыдущей командой. Это не смотрит далее назад в истории. Из руководства :
значение А вЂ
ignoredups
’ вызывает строки, которые соответствуют предыдущей записи истории, которая не будет сохранена.
Так, это добавит foo
дважды к истории:
$ foo
$ bar
$ foo
, Но так будет это:
$ foo
$ bar
$ foo
$ foo
последнее foo
не будет добавлено к истории, так как предыдущая команда была foo
. Используйте erasedups
в соединении:
значение А вЂ
erasedups
’ заставляет все предыдущие строки, соответствующие текущей строке быть удаленными из списка предыстории, прежде чем та строка будет сохранена.
Так:
HISTCONTROL=ignoreboth:erasedups