Затирание истории команд bash'a

Доброго времени суток.
Подскажите как исправить поведение shell'a: при выборе предидущих команд и их редактировании они изменяются в списке команд.
Т.е.:
если я наберу сейчас

ls -l /var

затем нажму вверх, и исправлю /var на /usr, снова нажму enter, в истории (которая доступна по клавишам курсора) будет только одна команда (отредактированная).
А как сделать чтобы они дублировались, т.е. редактирование не изменяло существующую, а добавляло новую?

У меня помнит и то, и другое

У меня помнит и то, и другое — ничего не затирает
На всякий случай:

# wgetpaste /etc/inputrc 
Your paste can be seen here: http://paste.pocoo.org/show/574883/

Пытался повторить описанную

Пытался повторить описанную мной процедуру и не смог выявить этот баг, потому что неправильно описал процедуру проверки.
Вот пример который проявляет баг:

ls /var
ls /usr

Если сейчас нажать клавишу вверх и BackSpace'ом удалить /usr из последней команды, затем нажать вниз, ввести какую-нибудь команду (необязательно) то в истории вместо "ls /usr" будет команда "ls".
Т.е. баг проявляется при редактировании предидущих команд без их выполнения.

ага, так воспроизводится

ага, так воспроизводится

На правах вброса

Я натыкался на этот косяк ещё в AstraLinux «Смоленск». Списал на общую ущербность bash, ещё больше полюбил zsh.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Но у косяка есть костыль (к

Но у косяка есть костыль (к которому еще надо привыкнуть):
Если после того как одна из предидущих строк уже отредактирована, но выполнять ее нет необходимости, нажать [ctrl]+[c] то оригинал изменен не будет, и вновь появится "чистое" приглашение...
Переучиваться теперь.. :(

.

Не баг это, а фича. bash себя так ведет всегда, по крайней мере, с тех пор как я начал на это обращать внимание. Так что либо можно считать это "ущербностью" и переезжать на другой шелл, либо забить и пользоваться дальше.

.

А какие из шеллов не болеют забыванием истории при нескольких открытых сеансах?
Особенно при их некорректном разрыве.
А лучше с передачей истории из одного сеанса в другой (например, за счет общей истории на все сеансы и записи по факту запроса на исполнение).

zsh

zsh

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

bash тоже этим не болеет, его

bash тоже этим не болеет, его надо только перенастроить чтобы он историю записывал не перед закрытием, а после ввода каждой команды.
http://www.opennet.ru/base/sys/bash_tips.txt.html

У меня не воспроизводится.

У меня не воспроизводится. Делаю всегда одно и тоже:
inputrc:

set show-all-if-ambiguous On
"\e[A": history-search-backward
"\e[B": history-search-forward

bashrc:

shopt -s histappend
PROMPT_COMMAND='history -a; history -n'
shopt -s cdspell
shopt -s nocaseglob
export HISTCONTROL="ignoredups"

HISTSIZE=150000
HISTFILESIZE=150000
complete -cf sudo
complete -cf man
alias nano='nano -w'

Невоспроизводится потому что

Невоспроизводится потому что строки

"\e[A": history-search-backward
"\e[B": history-search-forward

в файле /etc/inputrc
изменяют поведение оболочки: после нажатия клавиши вверх можно только пролистывать историю (если зажать вниз нельзя вернутся в "пустое" приглашение, останавливается на последнем). Так что [ctrl]+[c] нажать все-равно придется.
Но за совет спасибо, если не ошибаюсь эти же строки включают поиск в истории в первым набраным символам.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".