Случайно получены .bash_history

33

В момент блеска я выполнил команду source ~/.bash_history. К счастью, большинство команд используют vimдля редактирования какого-либо файла, но в моей истории есть несколько страшных команд - перемещение и удаление файлов с относительными путями.

К счастью, сейчас он застрял в vimсеансе, однако, если я приостановлю или выйду из него, он перейдет к следующему. Файл истории имеет длину 1000 строк.

Как я могу отменить эту команду, кроме перезагрузки машины?

mdkess
источник
22
Это безумие! :)
7
безумие? Это Спарта! - подожди, извини.
Sirex
2
Я не одинок :)
Алупота

Ответы:

28

Если это локальный компьютер, запустите новый терминал и уничтожьте соответствующую оболочку.

Если это удаленный компьютер, зайдите в ssh и уничтожьте соответствующую оболочку.

Карл Норум
источник
15

Вы можете нажать Ctrl+ Zили запустить подоболочку :!bash, а затем убить оболочку. Конкретные шаги:

Ctrl+Z
kill -9 $$

:suspend(или их приемлемые сокращения) могут функционировать эквивалентно Ctrl+ Z.

unxnut
источник
6
Но если вы :!bash, то $$будете ссылаться на подоболочку, которую вы только что создали. Вам нужно использовать, psчтобы узнать PID. ... PS Я полагаю, это в некоторой степени вопрос стиля, но если нет необходимости заниматься модными вещами, я бы использовал просто :!sh. Кроме того, в этом отношении, попробуйте :sh.
Скотт
1
Пониженное голосование, потому что, как отмечается в комментарии, это может дать кому-то достаточно ложной уверенности, чтобы выйти из vim и подключить свою машину.
Парфянский выстрел