Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

Ctrl-Sの端末ロックを無効にする

      2013/07/15

bashではCtrl-Sを入力してしまうと端末がロックされた状態になり何も受け付けなくなります。Ctrl-Qで解除できるが、普段ロックすることないしいらいらするから、無効にする方法を調べてみた。

方法はいたって簡単で

# stty stop undef

でOK。常に有効にしたい場合は.bashrcなどにどーぞ。

Ctrl-Rはreverse-i-searchでコマンド入力履歴をさかのぼって検索できますが、たまに行き過ぎて戻りたくなることがあります。上記の設定でCtrl-Sのロックを無効にすることでi-searchができるようになり、戻ることができます。

ちなみに、Ctrl-Cで実行中のプログラムを止めるのもこのsttyで無効にできます。どのような機能が定義されているかは”stty -a”コマンドでわかります。

$ stty -a
speed 38400 baud; rows 50; columns 127; line = 0;
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q;
stop = <undef>; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd 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   割り込み (interrupt) シグナルを送る。
quit   終了 (quit) シグナルを送る。
erase  最後にタイプされた文字を消去する。
kill   現在の行を消去する。
eof    ファイル終了 (end of file) を知らせる (入力を終了する)。
eol    行末 (end of the line)。
eol2 (np)
       行末を表す別の文字
swtch (np)
       別のシェル層 (shell layer) にスイッチする。
start  停止している出力を再開する。
stop   出力を停止する。
susp   端末に停止 (stop) シグナルを送る。
dsusp (np)
       入力をフラッシュしてから端末に停止 (stop) シグナルを送る。
rprnt (np)
       現在の行を再表示する。
werase (np)
       最後にタイプされた単語 (word) を消去する。
lnext (np)
       次にタイプされる文字を (特殊文字であっても) そのままの文字として受け取る。

—-

2009/11/2 追記

上記設定が原因のようで、上記サーバに対して、scpコマンドでファイルをコピーすると標準入力が不正という旨のエラーが発生しました。

 - IT技術 ,

336px

Message

メールアドレスが公開されることはありません。

  関連記事

no image
JavascriptエンジンRhinoを入れてみる@WindowsXP

Ajaxの実装や、OpenOfficeなどのマクロ用、ThunderbirdやF …

no image
PS3のハードディスク交換にあたって

PS3 20GBモデルはハードディスク容量がそのうち不足するだろうから、そのうち …

no image
radikoを出張先で聞く@Windows 7 or XP Professional 以上

普段は自宅が関東にあり、インターネットラジオradikoを聞いていたのですが、出 …

no image
ログファイル監視 + イベントスクリプト@ruby

ログファイルを監視して、ある文字列が出力されたらイベントを発生させたかったので、 …

no image
DLNAサーバ TVersity

PS3はDLNAクライアント機能があるため、ネットワーク上にある音楽や動画を再生 …

no image
rsyncでsshのアクセス先ポート番号を変更する

sshのポート番号を変更している場合、ssh コマンドの場合は -p オプション …

no image
gvfsを使用して、Windowsの共有フォルダを使用する@Ubuntu 9.04

今までmaznはWindowsの共有フォルダにLinuxからアクセスする時は、m …

no image
ICチップ付きクレジットカードの安全性

最近はクレジットカードにICチップがついていて、店頭での決済時に暗証番号を求めら …

no image
viで制御コードの入力

.vimrcといった設定ファイルを書いていると、制御コードを入力したいときがあり …

no image
ハードディスクなどのブロックデバイスを丸ごとscpでリモートにコピーする

ファイルを安全にリモートにコピーしたいとき、scp コマンド使うことはよくあるこ …