나는 이것에 대해 약간의 단점을 얻을 것으로 기대하지만 어디서나 답을 찾을 수는 없다. 너무 분명한 것 같습니다. 때로는 bash 터미널에 잘못된 명령을 입력하면 커서가 오류 나 아무것도없이 다음 줄로 넘어갑니다. 내가 뭘 잘못했는지 알 수 없습니다. 프로그램에 갇혀있는 것 같습니다. 재연 :
$ tidy
나 : “죄송합니다. 내가 입력하려는 것이 아닙니다 …”
:q
나 : “그건 작동하지 않았다 …”
:exit
:quit
exit
quit
/exit
/quit
-exit
-quit
-wtf???
내가 망했다는 것을 알고 있지만 터미널을 닫지 않고 프롬프트로 돌아가려면 어떻게해야합니까?
답변
당신은 항상 ^C
, ^D
(eof), Escape 등과 같은 명백한 것들을 시도 할 수 있지만, 모든 것이 실패하면 일반적으로 ^Z
(Control-Z)로 명령을 일시 중단 시켜 쉘로 돌아갑니다.
그런 다음 ps
명령 을 수행하고 명령의 PID (프로세스 ID)를 확인한 다음 kill thePID
( kill -9 thePID
이전이 작동하지 않은 경우) 명령을 실행하여 응용 프로그램을 종료하십시오.
이것은 응용 프로그램 / 명령을 종료 하는 깔끔한 방법이 아니며 데이터를 저장하지 않을 위험이 있습니다.
예 (사용 tidy
했지만 설치하지 않았습니다) :
$ 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
답변
Ctrl– D또는 Ctrl-를 눌러보십시오 C. 실패하면 프로세스를 종료하십시오.
과 노력 tidy
당신이 언급 한 명령 Ctrl– D작동합니다.
답변
아직 언급되지 않은 또 다른 해결책은 +를 SIGQUIT
사용 하여 신호 를 보내는 것입니다.ctrl\
그것은이다 강한 (A)보다 ctrl+c
답변
CTRL+D == exit shell command
과
CTRL+ C == terminate the current process, Of course may be the given software handle it and
CTRL+D doens't work
물론 kernel signal
더 알고 싶다면 다음을 읽으십시오.
man 7 signal