Ik verwacht hier wat luchtafweergeschut voor te krijgen, maar ik kan het antwoord nergens vinden. Het lijkt alsof het zo duidelijk moet zijn. Soms, als ik typ een slecht commando in een bash-terminal, de cursor springt gewoon naar de volgende regel zonder enige fout of zoiets. Ik kan niet zeggen wat ik fout heb gedaan. Het is alsof ik vastzit in het programma. Opnieuw invoeren:
$ tidy
Ik: “Oeps! Dat is niet wat ik wilde typen …”
:q
Ik: “Dat werkte niet …”
:exit :quit exit quit /exit /quit -exit -quit -wtf???
Ik weet dat ik het verpest heb, maar hoe kom ik terug naar de prompt zonder de terminal te sluiten?
Reacties
Antwoord
Je kunt altijd de voor de hand liggende dingen proberen, zoals ^C
, ^D
(eof), Escape enz., Maar als alles mislukt, stop ik meestal het commando met ^Z
(Control-Z) dat me weer in de shell plaatst.
Ik voer dan een ps
commando uit en noteer de PID (proces-id) van het commando en geef dan een kill thePID
(kill -9 thePID
als de eerste niet werkte) commando om de applicatie te beëindigen.
Merk op dat dit geen netjes ( geen woordspeling bedoeld) manier om de applicatie / het commando te beëindigen en je loopt het risico dat je misschien wat gegevens niet opslaat etc.
Een voorbeeld (ik “had tidy
maar ik heb het niet geïnstalleerd):
$ 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
Reacties
- Dat ' s it !! ^ Z schiet te hulp. Heel erg bedankt.
- ^ \ (ctrl-backslash, SIGQUIT) werkt in een aantal koppige hulpprogrammas die ' reageer niet op ^ C.
- Sst! Vertel ' mensen niet over de ^ \ of zij ' ll start
SIG_IGN
' ook dat, wat zullen we dan doen? - @godlygeek Kun je vertel me wat %% betekent in Linux of wat voor soort ding het is? Ik heb veel gezocht.
- @Noumenon, kijk eens naar
LESS='+/^JOB CONTROL' man bash
.%%
verwijst naar de " huidige taak ".
Answer
Druk op Ctrl – D of Ctrl – C . Als het niet lukt, stop dan het proces.
Probeer het met het tidy
commando dat je noemde, Ctrl – D werkt.
Reacties
-
CTRL+C
is ook goed voor Windows CMD.
Answer
Een andere oplossing (nog niet genoemd) is om het SIGQUIT
signaal te sturen met ctrl + \
Het is sterker dan een ctrl + c
Antwoord
CTRL + D == exit shell command
en
CTRL + C == terminate the current process, Of course may be the given software handle it and
CTRL + D doens"t work
Natuurlijk produceren ze een kernel signal
als je meer wilt weten, lees dan:
man 7 signal
Reacties
- Ctrl + D is het einde van het bestand, niet rechtstreeks afsluiten.
:q
werkte echt voor mij; isn ' is dat een Vim-commando?