
В Bash вы можете нажать стрелку вверх (и вниз), чтобы перемещаться по истории. Затем вы можете изменить команду перед ее выполнением. Иногда я неправильно изменяю команду и хочу сбросить ее до того состояния, которое было в истории изначально. Есть ли способ сделать это?
Я попробовал выполнить пустую строку, а затем снова просмотреть историю, но соответствующая строка осталась отредактированной.
решение1
Отменить — Cx Cu (или C-_, для чего вам, возможно, придется набрать C-/)
решение2
Файл, содержащий историю bash, называется "~/.bash_history", что вполне уместно (по крайней мере в Ubuntu, в других версиях может отличаться). Просто откройте его в своем любимом текстовом редакторе, обратите внимание, что у каждого пользователя должен быть свой собственный файл .bash_history. Также обратите внимание, что предшествующая "." означает, что это скрытый файл, поэтому он не будет отображаться в файловом браузере или с помощью команды ls, если вы не используете ее с -a.
решение3
Эта привязка не позволит невыполненным изменениям истории перезаписать оригиналы:
bind 'set revert-all-at-newline on'
Пример:
- Выполнять
ls
- Нажмите стрелку вверх
- Добавить
-Al
в строку - Нажмите стрелку вниз
- Нажмите «Возврат» (чтобы попытаться отменить изменение)
Без этой привязки:
ls
будет заменено в истории на ls -Al
, даже если оно никогда не было выполнено.
С этой привязкой:
Неисполненное ls -Al
исчезнет, а ls
останется.
Очевидно, это означает, что невыполненные изменения истории будутникогдабыть сохранены (как поведение zsh по умолчанию). Если вы хотите восстановить только оригиналыиногда, вам придется выбрать один из других ответов.