Нажав вверх, я могу перейти к ранее введенным командам. Я заметил, что если я изменю один из них, это изменит историю. Например, если я наберу:
echo a
echo b
echo c
[up][up][backspace]d[ctrl+c]
история теперь показывает, что второй команды echo d
не было echo b
. Как мне сохранить первое echo b
в истории?
Например, скажем, я выполняю очень длинную команду с большим количеством опций. затем я хочу запустить его снова, с небольшими изменениями, поэтому я возвращаюсь к истории, чтобы найти ее, внести изменения, но потом понимаю, что на самом деле мне не нужно повторно запускать ее, просто подумав о другом варианте делать вместо этого. потом, позже, я хочу вернуться и напомнить себе, какой командой я руководил - но подождите, история теперь показывает не то!
Это происходит очень редко, но когда это происходит, я нахожу это действительно раздражающим. Есть ли способ автоматически сохранить оригинальную историю?
источник
history
вы можете увидеть все команды. После вы можете выбрать то, что вам нужно. Какую оболочку вы используете сейчас?echo c
.Ответы:
Попробуй положить в свой
~/.inputrc
В некоторых случаях вы можете найти его в значении по умолчанию (Off).
Это должно вынудить
readline
отменить все изменения в строках истории перед возвратом приaccept-line
выполнении. (больше информации вman bash
).Редактировать:
CTRL+c
иset revert-all-at-newline on
прекрасно работает с тех порbash-4.3.30
.Но:
источник
nano
:-)Как правило:
сделаю это.
Исходная команда будет запомнена, если вы выполните измененную команду. Конечно, вы не хотите выполнять на самом деле, поэтому вы можете закомментировать строку с помощью
#
.В вашем примере, вы бы тогда в истории:
echo a
,echo b
,echo c
,# echo d
.источник
alt-shift-3
чтобы закомментировать текущую командную строку, если ваш bash используетreadline
./insert-comment
вman 3 readline
(илиman bash
) для получения дополнительной информации.