Jeg forventer at få noget flak for dette, men jeg kan ikke finde svaret hvor som helst. Det ser ud til at det skulle være så indlysende. Nogle gange, når jeg skriv en dårlig kommando i en bash terminal, markøren hopper bare ned til næste linje uden nogen fejl eller noget. Jeg kan ikke fortælle hvad jeg gjorde forkert. Det er som om jeg sidder fast i programmet. Reenactment:
$ tidy
Mig: “Ups! Det er ikke det, jeg mente at skrive …”
:q
Mig: “Det fungerede ikke …”
:exit :quit exit quit /exit /quit -exit -quit -wtf???
Jeg ved, at jeg har skruet op, men hvordan kommer jeg tilbage til prompten uden at lukke terminalen?
Kommentarer
Svar
Du kan altid prøve de åbenlyse ting som ^C
, ^D
(eof), Escape osv., Men hvis alt mislykkes, ender jeg normalt med at suspendere kommandoen med ^Z
(Control-Z), som sætter mig tilbage i skallen.
Så laver jeg en ps
-kommando og noterer PID (proces-id) for kommandoen og udsteder derefter en kill thePID
(kill -9 thePID
hvis førstnævnte ikke fungerede) kommando om at afslutte applikationen.
Bemærk at dette ikke er et ryddeligt ( ingen ordspil beregnet) måde at afslutte applikationen / kommandoen på, og du risikerer måske ikke at gemme nogle data osv.
Et eksempel (jeg har brugt tidy
men jeg har det ikke installeret):
$ 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 undsætning. Mange tak.
- ^ \ (ctrl-backslash, SIGQUIT) arbejder i nogle stædige værktøjer, der ikke ' t svar på ^ C.
- Shh! Don ' t fortæl folk om ^ \ eller de ' ll start
SIG_IGN
' også det, hvad skal vi så gøre? - @godlygeek Kan du fortæl mig hvad %% betyder i Linux, eller hvilken slags ting er det? Jeg søgte meget.
- @Noumenon, se på
LESS='+/^JOB CONTROL' man bash
.%%
henviser til " nuværende job ".
Svar
Prøv at trykke på Ctrl – D eller Ctrl – C . Hvis det mislykkes, skal du dræbe processen.
Forsøg med tidy
kommandoen, du nævnte, Ctrl – D fungerer.
Kommentarer
-
CTRL+C
er også godt for Windows CMD.
Svar
En anden løsning (ikke allerede nævnt) er at sende SIGQUIT
signal ved hjælp af ctrl + \
Det er stærkere end 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 producerer de en kernel signal
Hvis du vil vide mere, skal du læse:
man 7 signal
Kommentarer
- Ctrl + D er slutningen af filen, og afslut ikke direkte.
:q
virkede faktisk for mig; er ' ikke en Vim-kommando?