HISTCONTROL= игнорировать оба не работает Debian Ленни

Кто-нибудь может подтвердить, что, установив следующие переменные env в debian lenny, предыдущие записи истории не будут сохранены. GNU bash, версия 3.2.39(1)-релиз

export HISTCONTROL=ignoreboth
export HISTSIZE=500

Я добавил их в свой /etc/bash.bashrc но я продолжаю получать повторные команды.

3 ответа

Параметры "ignoreboth" и "ignoredups" предотвращают добавление в историю только дубликатов непосредственно предшествующей команды. Более ранние дубликаты не имеют никакого эффекта.

$ echo $HISTCONTROL
ignoreboth
$ echo a
a
$ echo b
b
$ echo b
b
$ echo a
a
$ history 4
1047  echo a
1048  echo b
1049  echo a
1050  history 4

Как вы видете echo a появляется дважды и echo b появляется один раз.

Возможно, вы ищете опцию "erasedups".

$ echo $HISTCONTROL
ignoreboth:erasedups
$ echo c
c
$ echo d
d
$ echo d
d
$ echo c
c
$ history 4
1076  echo $HISTCONTROL
1077  echo c
1078  echo d
1079  history 4

Здесь оба echo c а также echo d появляются только один раз.

Для уникальной записи каждой новой команды сложно. Сначала нужно добавить в~/.profile или похожие:

HISTCONTROL=erasedups
PROMPT_COMMAND='history -w'

Тогда вам нужно добавить в ~/.bash_logout:

history -a
history -w

Попробуйте использовать ignoredups intead ignoreboth, добавьте его в файл /etc/profile.

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