私はほとんどの端末で Ctrl+C を使用して、書き込んでいた行を簡単にキャンセルし、新しい行を開いています。(実行中の bash スクリプトを強制終了するのではなく、新しい空白行を開くだけです) 理由は思いつきませんが、この機能は SSH によって開かれたリモート シェルでオフになってしまいました。
Ctrl+C は他のほとんどのケース (実行中のスクリプトの終了、VIM 挿入モードの終了など) では機能しますが、通常のシェルでは行をスキップして次の行に移動することはできなくなります。
これは Amazon Linux 2 で実行されているシェルですが、他の Amazon Linux 2 マシンではこの問題は発生しなかったため、おそらく私が行った何かが原因であると思われます...
何が起こったのか、またそれをどう修正できるのか、何か考えはありますか?
その間、Delete キーを押し続けることになりますが、キーの繰り返し時間を最小に設定したにもかかわらず、まだかなり遅いです。
編集 -
私は SSH を使用してターミナルに接続しますが、これは興味深いことです。SSH ターミナル内で ( を使用して) 新しいシェルを開くとbash
、CTRL+C が再び機能します。
答え1
これを修正するには、コマンドを使用してstty
リセットします。
$ stty intr \^c
現在設定されている内容を確認するには、以下intr
を使用します。
$ stty -a
$ stty -a
速度 38400 ボー; 行 21; 列 161; 行 = 0; intr = ^C; quit = ^\; 消去 = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
の機能はintr
マニュアルページで次のように説明されています:
先頭文字
CHARは割り込み信号を送信します