Я заметил, что, когда я поднимаюсь посредством своих команд с помощью клавиш со стрелками, ВВЕРХ И ВНИЗ, что, если я затем редактирую команду, это редактирует его в истории, и я могу даже удалить команду как этот, однако я не хочу, чтобы это имело это влияние на командах в истории, я не хочу, чтобы это на самом деле удалило их в истории, только позволило мне редактировать то, что я ввожу, но не на самом деле изменяю историю через это. Таким образом, как я могу сделать его так, чтобы это на самом деле не изменяло историю, но просто команду, которую я выполняю?
Я спросил что-то весьма схожее в Unix & Linux: , Как отменить изменения в истории команд? .
в большом ответе, который я получил от Gilles, говорится:
, пока Вы отредактировали запись истории, но не нажали , Входят все же, чтобы вернуться к исходной записи, неоднократно нажимать Ctrl + _ —
undo
команда —, пока это не вносит дальнейшее изменение. Вы вернулись к исходной записи.
Я встретился с той же проблемой и в то время как я играл вокруг и изо всех сил пытался понять то, что происходило, я просто выяснил следующее:
Если Вы звоните от history
командная строка, которую Вы на самом деле ввели ранее на том же самом текущем терминальном сеансе и затем редактируете его (возможно, удаление его), но затем прерываете свое редактирование путем оставления этого (история-) командной строкой, использующей, например, Down
стрелка для возвращения к подсказке фактической текущей командной строки, затем позже при выходе из терминала редактирования, зарегистрирована в .bash_history
файл.
Этого поведения не происходит, если Вы редактируете и прерываете свое редактирование на командной строке, которая была уже зарегистрирована в .bash_history
файл перед запуском терминального сеанса.
Другими словами, в то время как терминальный сеанс открыт, недавно введенные командные строки только сохранены в памяти, не в .bash_history
. Можно вспомнить их использующий up
стрелка или вызов history
команды, и можно отредактировать их, в то время как заседание открыто (при вызове history
команда, строки измененных команд будут затем обозначены звездочкой *
). Только при выходе из сессии, команды сессии зарегистрированы, 'как' в .bash_history
файл, таким образом, сохраняя последние редактирования Вы сделали на них прежде, чем выйти из сессии.
См. также ответ от соколиного охотника там.