私はこれのためにいくつかのフレークを得ると期待していますが、私はどこにも答えを見つけることができません。それはとても明白なはずです。ときどき、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(しゃれたことはありません)の方法ではなく、一部のデータなどを保存しないリスクがあることに注意してください。
例(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+\
より強いより 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