Jag förväntar mig att få lite flak för det här, men jag kan inte hitta svaret var som helst. Det verkar som om det borde vara så uppenbart. Ibland när jag skriv ett dåligt kommando i en bash-terminal, markören hoppar bara ner till nästa rad utan något fel eller något. Jag kan inte berätta vad jag gjorde fel. Det är som om jag fastnar i programmet. Reenactment:

$ tidy 

Jag: ”Hoppsan! Det är inte vad jag menade att skriva …”

:q 

Jag: ”Det fungerade inte …”

:exit :quit exit quit /exit /quit -exit -quit -wtf??? 

Jag vet att jag har klarat men hur kommer jag tillbaka till prompten utan att stänga terminalen?

Kommentarer

Svar

Du kan alltid prova de uppenbara saker som ^C, ^D (eof), Escape etc., men om allt misslyckas hamnar jag vanligtvis kommandot med ^Z (Control-Z) som sätter mig tillbaka i skalet.

Jag gör sedan ett ps -kommando och noterar PID (process-id) för kommandot och utfärdar sedan ett kill thePID (kill -9 thePID om den förra inte fungerade) kommandot för att avsluta applikationen.

Observera att detta inte är snyggt ( ingen ordspel avsedd) sätt att avsluta applikationen / kommandot och du riskerar att kanske inte spara vissa data etc.

Ett exempel (jag har använt tidy men jag har inte den installerad):

$ 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

  • Att ' är det !! ^ Z till undsättning. Tack så mycket.
  • ^ \ (ctrl-backslash, SIGQUIT) fungerar i några envisa verktyg som inte ' t svara på ^ C.
  • Shh! Don ' t berätta för folk om ^ \ eller de ' ll startar SIG_IGN ' om det också, vad ska vi göra?
  • @godlygeek Kan du berätta vad %% betyder i Linux eller vilken typ av saker det är? Jag sökte mycket.
  • @Noumenon, titta på LESS='+/^JOB CONTROL' man bash. %% avser " nuvarande jobb ".

Svar

Försök att trycka på Ctrl D eller Ctrl C . Om det misslyckas, döda processen.

Försök med kommandot tidy som du nämnde, Ctrl D fungerar.

Kommentarer

  • CTRL+C är också bra för Windows CMD.

Svar

En annan lösning (nämns inte redan) är att skicka SIGQUIT -signalen använder ctrl + \

Det är starkare än en ctrl + c

Svar

CTRL + D == exit shell command

och

CTRL + C == terminate the current process, Of course may be the given software handle it and CTRL + D doens"t work

Naturligtvis producerar de en kernel signal om du vill veta mer, läs:

man 7 signal 

Kommentarer

  • Ctrl + D är filens slut, avslutas inte direkt.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *