6

В Bash вы можете нажимать стрелки вверх (и вниз), чтобы перемещаться по истории. Затем вы можете изменить команду перед ее выполнением. Иногда я неправильно модифицировал команду и хочу сбросить ее на то, что было в истории изначально. Есть ли способ сделать это?

Я попытался выполнить пустую строку, а затем снова просмотреть историю, но соответствующая строка остается отредактированной.

3 ответа3

6

Отменить это Cx Cu (или C-_, для которого вам, возможно, придется набрать C-/)

1

Файл, содержащий историю bash, называется "~/.bash_history", что вполне достаточно (по крайней мере, в Ubuntu может отличаться в других вариантах). просто откройте его в вашем любимом текстовом редакторе, обратите внимание, что у каждого пользователя должен быть свой собственный файл .bash_history. Также обратите внимание, что предыдущий "." означает, что это скрытый файл, поэтому он не будет отображаться в файловом браузере или с командой ls, если вы не используете его с -a.

1

Эта привязка предотвратит перезапись оригиналов не выполненными изменениями истории:

bind 'set revert-all-at-newline on'

Пример:

  1. Выполнить ls
  2. Нажмите стрелку вверх
  3. Добавить -Al к строке
  4. Нажмите стрелку вниз
  5. Нажмите Return (чтобы отменить изменение)

Без этой привязки:
В истории ls будет заменен ls -Al , даже если он никогда не выполнялся.

С этим обязательным:
ls -Al исчезнет, а ls останется.

Очевидно, это означает, что не выполненные изменения истории никогда не будут сохранены (как поведение по умолчанию в zsh). Если вы хотите, чтобы оригиналы иногда были восстановлены, вам придется пойти с одним из других ответов.

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