端末がキー入力を受け付けなくなった場合の対処 †Windowsで動作するTera TermやPoderosaでssh接続時、文字入力を受け付けなくなった場合の対処方法を以下に記します。 関連資料 †win.just4fun.bizの記事です。 ターミナルが文字入力を受け付けなくなった原因と対処 †Ctrl + sを押しませんでしたか? Ctrl + s とCtrl + qについて †sttyコマンドでキーに割り当てられている動作を確認してみます。 [sakura@centos6 ~]$ stty -a speed 9600 baud; rows 24; columns 80; line = 0; intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr -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 上記の出力をみると、以下の記述が表示されています。 start = ^Q; stop = ^S つまり、Ctrl+Sはstop, Ctrl+Qはstartになります。 Ctrl+S(stop)を常に無効にする方法 †ついつい慣れていないと押してしまうCtrl+Sという状態であれば、.bashrcに以下の構文を追記します。 stty stop undef catコマンドで出力した.bashrcの内容です。 [sakura@centos6 ~]$ cat .bashrc # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions stty stop undef これにより、Ctrl+Sで端末がロックすることはなくなります。 しかし困ったことにscpコマンドでファイルを設定したマシンに対してコピーすると以下のようなエラーが発生してしまいます。 [sakura@centos6 ~]$ scp file localhost: sakura@localhost's password: stty: 標準入力: 無効な引数です file 100% 2 0.0KB/s 00:00 scpのエラー回避策は、接続後に端末でstty stop undefを入力し設定するか、以下のように.bashrcを設定します。 参考記事 : scpができなくなった時の対処法・bashrc編 上記では最後に以下の1行を追記しました。 stty stop undef これを以下のように変更します。 if [ "$SSH_TTY" != "" ]; then stty stop undef fi catコマンドで出力した.bashrcの内容です。 [sakura@centos6 ~]$ cat .bashrc # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions if [ "$SSH_TTY" != "" ]; then stty stop undef fi |