HISTCONTROL = ignoreboth не работает [dублировать]

У этого вопроса уже есть ответ здесь: Как избежать дублирования записей в .bash_history 6 ответов

По умолчанию .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 с помощью клавиши со стрелкой вверх, а в буфере команд теперь содержится почти сотня строк.

Что может быть неправильным?

1
задан 11 August 2017 в 17:18

3 ответа

Он работает по назначению. ignoredups, подразумеваемый ignoreboth, не добавляет команду в историю, если она совпадает с предыдущей командой. Это еще не отразилось на истории. Из руководства:

Значение «ignoredups» заставляет строки, которые соответствуют предыдущей записи истории, не сохраняться.

Итак, это добавит foo дважды в историю:

$ foo
$ bar
$ foo

Но так будет:

$ foo
$ bar
$ foo
$ foo

Последний foo не будет добавлено в историю, так как предыдущая команда была foo. Используйте erasedups совместно:

Значение «ignoredups» заставляет строки, которые соответствуют предыдущей записи истории, не сохраняться.

A значение 'erasedups' заставляет все предыдущие строки, соответствующие текущей строке, удаляться из списка истории до того, как эта строка будет сохранена.

HISTCONTROL=ignoreboth:erasedups
2
ответ дан 22 May 2018 в 19:34

Он работает по назначению. ignoredups, подразумеваемый ignoreboth, не добавляет команду в историю, если она совпадает с предыдущей командой. Это еще не отразилось на истории. Из руководства:

Значение «ignoredups» заставляет строки, которые соответствуют предыдущей записи истории, не сохраняться.

Итак, это добавит foo дважды в историю:

$ foo $ bar $ foo

Но так будет:

$ foo $ bar $ foo $ foo

Последний foo не будет добавлено в историю, так как предыдущая команда была foo. Используйте erasedups совместно:

Значение «ignoredups» заставляет строки, которые соответствуют предыдущей записи истории, не сохраняться.

A значение 'erasedups' заставляет все предыдущие строки, соответствующие текущей строке, удаляться из списка истории до того, как эта строка будет сохранена.

HISTCONTROL=ignoreboth:erasedups
2
ответ дан 18 July 2018 в 08:40

Он работает по назначению. ignoredups, подразумеваемый ignoreboth, не добавляет команду в историю, если она совпадает с предыдущей командой. Это еще не отразилось на истории. Из руководства:

Значение «ignoredups» заставляет строки, которые соответствуют предыдущей записи истории, не сохраняться.

Итак, это добавит foo дважды в историю:

$ foo $ bar $ foo

Но так будет:

$ foo $ bar $ foo $ foo

Последний foo не будет добавлено в историю, так как предыдущая команда была foo. Используйте erasedups совместно:

Значение «ignoredups» заставляет строки, которые соответствуют предыдущей записи истории, не сохраняться.

A значение 'erasedups' заставляет все предыдущие строки, соответствующие текущей строке, удаляться из списка истории до того, как эта строка будет сохранена.

HISTCONTROL=ignoreboth:erasedups
2
ответ дан 24 July 2018 в 19:09

Другие вопросы по тегам:

Похожие вопросы: