24

Если я нажимаю стрелки вверх или вниз на своей клавиатуре, а затем изменяю что-то из моей истории, это меняется навсегда. Даже если я нажму Ctrl-C, а затем попробую снова вызвать его, он все равно изменится - я потерял эту запись в своей истории.

Как я могу предотвратить это?

2 ответа2

14

Вы хотите настройку readline:

set revert-all-at-newline on

Вы можете либо поместить его в ~/.inputrc (см. Примечание ниже), либо включить bind 'revert-all-at-newline on' в ~/.bashrc .

Демо-версия:

$ man bash
$ bind 'set revert-all-at-newline on'
$ man bsh # up arrow and edit
No manual entry for bsh
$ man bash # three up arrows

Более подробная информация находится на странице руководства Bash:

revert-all-at-newline

Если установлено значение « on », Readline отменит все изменения в строках истории перед возвратом при выполнении accept-line. По умолчанию строки истории могут быть изменены и сохраняют отдельные списки отмены для вызовов readline. По умолчанию установлено значение « off ».


Замечания:

Если новый файл ~/.inputrc создан с целью установки revert-all-at-newline , помните, что bash будет использовать настройки readline в этом файле вместо любых настроек, которые могут быть в файле /etc/inputrc . То есть любые настройки, указанные в /etc/inputrc , больше не будут действовать. Поэтому, если файл /etc/inputrc существует, рекомендуется начать ~/.inputrc со строки:

$include /etc/inputrc

5

Я вхожу:

ls /tmp

- замечательно. Теперь я не хочу входить

ls /temp 

и может помешать ему войти в историю, поэтому помешает перезаписать ls /tmp, если я запускаю команду с пробелом:

 ls /temp

Трудно увидеть, но если вы это знаете ...

Контролируется

export HISTCONTROL=ignoredups
export HISTCONTROL=ignoreboth

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

Но, может быть, вы ищете решение, где вы заканчиваете обеими командами, неизмененной старой и новой. Моя версия bash или настроек ведет себя так, но я не знаю, что отличается от вашей.

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