35 votes

Par erreur, la commande .bash_history a été exécutée.

Dans un moment de génie, j'ai exécuté la commande source ~/.bash_history. Heureusement, la plupart des commandes utilisent vim pour éditer un fichier, mais il y a quelques commandes effrayantes dans mon historique - déplacer et supprimer des fichiers avec des chemins relatifs.

Heureusement, là maintenant ça reste bloqué dans une session vim, cependant si je la suspend ou la quitte, c'est pour la prochaine. Le fichier d'historique fait 1000 lignes de long.

Comment puis-je annuler cette commande, sans redémarrer la machine?

25 votes

C'est de la folie! :)

7 votes

Folie ? C'est sparte! -- attendez, désolé.

3 votes

Je ne suis pas seul :)

29voto

Carl Norum Points 2263

Si c'est une machine locale, ouvrez un nouveau terminal et arrêtez le shell en question.

Si c'est une machine distante, connectez-vous en ssh et arrêtez le shell en question.

15voto

Computernerd Points 1301

Vous pouvez appuyer sur Ctrl+Z ou démarrer un sous-shell en utilisant :!bash, puis tuer le shell. Étapes spécifiques:

Ctrl+Z
kill -9 $$

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

6 votes

Mais si vous :!bash, alors $$ fera référence au sous-shell que vous venez de créer. Vous devriez utiliser ps pour trouver le PID. ... P.S. 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 fancy bash, j'utiliserais juste :!sh. Aussi, d'ailleurs, essayez :sh.

1 votes

Downvoting parce que, comme le commentateur le souligne, tel que écrit cela pourrait donner à quelqu'un juste assez de fausse confiance pour quitter vim et endommager leur machine.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X