Source accidentelle .bash_history


34

Dans un moment d'éclat, j'ai exécuté la commande source ~/.bash_history. Heureusement, la plupart des commandes utilisent vimpour modifier certains fichiers, mais il y a des commandes effrayantes dans mon historique - déplacer et supprimer des fichiers avec des chemins relatifs.

Heureusement, en ce moment, il est bloqué dans une vimsession, mais si je le suspend ou le quitte, il passe à la suivante. Le fichier historique comprend 1 000 lignes.

Comment puis-je annuler cette commande, à moins de redémarrer la machine?


23
C'est de la folie! :)

7
la démence ? C'est Sparta! - attendez, désolé.
Sirex

2
Je ne suis pas seul :)
Alupotha

Réponses:


28

S'il s'agit d'une machine locale, démarrez un nouveau terminal et tuez le shell en question.

S'il s'agit d'une machine distante, lancez ssh et tuez le shell en question.


15

Vous pouvez appuyer sur Ctrl+ Zou démarrer un sous-shell à l'aide :!bash, puis tuer le shell. Étapes spécifiques:

Ctrl+Z
kill -9 $$

:suspend(ou leurs abréviations acceptables) peuvent fonctionner de manière équivalente à Ctrl+ Z.


6
Mais si vous :!bash, alors $$vous vous référerez au sous-shell que vous venez de créer. Vous devez utiliser pspour trouver le PID. ... PS Je suppose que c'est, dans une certaine mesure, une question de style, mais s'il n'y a pas besoin de faire des trucs bash-fantaisie, j'utiliserais tout simplement :!sh. Aussi, d'ailleurs, essayez :sh.
Scott

1
Downvoting parce que, comme le souligne le commentaire, cela pourrait donner à quelqu'un juste assez de fausse confiance pour quitter Vim et arroser sa machine.
Parthian Shot
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.