Accidentalmente fuente .bash_history

34

En un momento de brillantez, ejecuté el comando source ~/.bash_history. Afortunadamente, la mayoría de los comandos se utilizan vimpara editar algún archivo, pero hay algunos comandos de miedo en mi historial: mover y eliminar archivos con rutas relativas.

Afortunadamente en este momento está atascado en una vimsesión, sin embargo, si lo suspendo o lo dejo, pasará a la siguiente. El archivo histórico tiene 1000 líneas de largo.

¿Cómo puedo cancelar este comando, antes de reiniciar la máquina?

mdkess
fuente
23
¡Esto es una locura! :)
77
Locura ? ¡Esto es Esparta! Espera, lo siento.
Sirex
2
No estoy solo :)
Alupotha

Respuestas:

28

Si se trata de una máquina local, inicie una nueva terminal y elimine el shell en cuestión.

Si se trata de una máquina remota, ingrese y elimine el shell en cuestión.

Carl Norum
fuente
15

Puede presionar Ctrl+ Zo iniciar un subshell usando :!bash, y luego matar el shell. Pasos específicos:

Ctrl+Z
kill -9 $$

:suspend(o abreviaturas aceptables de los mismos) pueden funcionar de manera equivalente a Ctrl+ Z.

unxnut
fuente
66
Pero si lo hace :!bash, $$se referirá a la subshell que acaba de crear. Tendrías que usar pspara averiguar el PID. ... PD: Supongo que esto es, hasta cierto punto, una cuestión de estilo, pero si no hay necesidad de hacer cosas sofisticadas, usaría simplemente :!sh. Además, para el caso, intente :sh.
Scott
1
Votación negativa porque, como señala el comentario, tal como está escrito, esto podría dar a alguien la confianza falsa suficiente para salir de vim y controlar su máquina.
Parthian Shot