Je m'attends à obtenir un flak pour cela, mais je ne trouve la réponse nulle part. Il semble que cela devrait être si évident. Parfois, lorsque je tape une mauvaise commande dans un terminal bash, le curseur passe simplement à la ligne suivante sans aucune erreur ou quoi que ce soit. Je ne peux pas dire ce que j'ai fait de mal. C'est comme si j'étais coincé dans le programme. Reconstitution:
$ tidy
Moi: "Oups! Ce n'est pas ce que je voulais taper ..."
:q
Moi: "Ça n'a pas marché ..."
:exit
:quit
exit
quit
/exit
/quit
-exit
-quit
-wtf???
Je sais que j'ai foiré, mais comment revenir à l'invite sans fermer le terminal?
Vous pouvez toujours essayer les choses évidentes comme ^C
, ^D
(eof), Escape etc., mais si tout échoue, je finis généralement par suspendre la commande avec ^Z
(Control-Z) qui me remet dans le Shell.
Je fais ensuite une commande ps
et je note le PID (id du processus) de la commande, puis j'émets un kill thePID
(kill -9 thePID
si le premier ne fonctionnait pas) pour terminer l'application.
Notez que ce n'est pas un moyen bien rangé (sans jeu de mots) de terminer l'application/la commande et vous courez le risque de ne peut-être pas enregistrer certaines données, etc.
Un exemple (j'aurais utilisé tidy
mais je ne l'ai pas installé):
$ gnuplot
G N U P L O T
Version 4.2 patchlevel 6
....
Send bug reports and suggestions to <http://sourceforge.net/projects/gnuplot>
Terminal type set to 'wxt'
gnuplot>
gnuplot> ##### typed ^Z here
[1]+ Stopped gnuplot
$ ps
PID TTY TIME CMD
1681 pts/1 00:00:00 tcsh
1690 pts/1 00:00:00 bash
1708 pts/1 00:00:00 gnuplot
1709 pts/1 00:00:00 ps
$ kill 1708 ###### didn't kill the command as ps shows
$ ps
PID TTY TIME CMD
1681 pts/1 00:00:00 tcsh
1690 pts/1 00:00:00 bash
1708 pts/1 00:00:00 gnuplot
1710 pts/1 00:00:00 ps
$ kill -9 1708 ### -9 did the trick
$
[1]+ Killed gnuplot
$ ps
PID TTY TIME CMD
1681 pts/1 00:00:00 tcsh
1690 pts/1 00:00:00 bash
1711 pts/1 00:00:00 ps
Essayez d'appuyer sur Ctrl-D ou Ctrl-C. S'il échoue, arrêtez le processus.
Essayer avec la commande tidy
que vous avez mentionnée, Ctrl-D travaux.
Une autre solution (non mentionnée déjà) consiste à envoyer le signal SIGQUIT
en utilisant ctrl+\
C'est plus fort qu'un ctrl+c
CTRL+D == exit Shell command
et
CTRL+C == terminate the current process, Of course may be the given software handle it and
CTRL+D doens't work
Bien sûr, ils produisent un kernel signal
si vous voulez en savoir plus, lisez:
man 7 signal