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.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *