Jeg forventer å få litt flak for dette, men jeg finner ikke svaret hvor som helst. Det virker som om det burde være så tydelig. Noen ganger når jeg skriv en dårlig kommando i en bash-terminal, markøren hopper bare ned til neste linje uten feil eller noe. Jeg kan ikke fortelle hva jeg gjorde galt. Det er som om jeg sitter fast i programmet. Reenactment:
$ tidy
Meg: «Ups! Det er ikke det jeg mente å skrive …»
:q
Meg: «Det fungerte ikke …»
:exit :quit exit quit /exit /quit -exit -quit -wtf???
Jeg vet at jeg kludde meg, men hvordan kommer jeg tilbake til ledeteksten uten å lukke terminalen?
Kommentarer
Svar
Du kan alltid prøve de åpenbare tingene som ^C
, ^D
(eof), Escape etc., men hvis alt mislykkes, slutter jeg vanligvis å suspendere kommandoen med ^Z
(Control-Z) som setter meg tilbake i skallet.
Jeg gjør da en ps
-kommando og noterer PID (prosess-id) for kommandoen og utsteder deretter en kill thePID
(kill -9 thePID
hvis førstnevnte ikke fungerte) kommandoen om å avslutte applikasjonen.
Merk at dette ikke er en ryddig ( ingen ordspill beregnet) måte å avslutte applikasjonen / kommandoen på, og du risikerer kanskje ikke å lagre noen data osv.
Et eksempel (jeg har brukt tidy
men jeg har den ikke installert):
$ 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
Kommentarer
- At ' er det !! ^ Z til unnsetning. Tusen takk.
- ^ \ (ctrl-backslash, SIGQUIT) fungerer i noen sta verktøy som ikke ' t svar på ^ C.
- Shh! Don ' t fortell folk om ^ \ eller de ' Start
SIG_IGN
' også på det, hva skal vi gjøre? - @godlygeek Kan du fortell meg hva %% betyr i Linux eller hva slags ting det er? Jeg søkte mye.
- @Noumenon, ta en titt på
LESS='+/^JOB CONTROL' man bash
.%%
refererer til " gjeldende jobb ".
Svar
Prøv å trykke Ctrl – D eller Ctrl – C . Hvis det mislykkes, drep prosessen.
Prøv med tidy
-kommandoen du nevnte, Ctrl – D fungerer.
Kommentarer
-
CTRL+C
er også bra for Windows CMD.
Svar
En annen løsning (ikke nevnt allerede) er å sende SIGQUIT
signal bruker ctrl + \
Det er sterkere enn en ctrl + c
Svar
CTRL + D == exit shell command
og
CTRL + C == terminate the current process, Of course may be the given software handle it and
CTRL + D doens"t work
Selvfølgelig produserer de en kernel signal
Hvis du vil vite mer, kan du lese:
man 7 signal
Kommentarer
- Ctrl + D er slutten av filen, ikke avsluttes direkte.
:q
faktisk virket for meg; er ikke ' t at en Vim-kommando?