土曜日, 5月 31, 2008

gnu screen の使い方

先頭にある「^」はCtrlキーを指す。
例えば「^a」はCtrlキーを押しながらaを押す。


^a c 仮想画面の追加
^a n 切替え(昇順)
^a p 切替え(降順)
^a w リスト表示
^a [画面番号] 仮想画面の直接移動
^a^a 直前に表示していた仮想画面に移動
^a d デタッチ screenの一時的終了
screen -ls セッションリストの表示

screen -r [プロセス番号] アタッチ screenの再開(デタッチしたscreenが1つの場合、プロセス番号は省略可)

screen -d [プロセス番号] リモートデタッチ(アタッチ中のscreenが1つの場合、プロセス番号は省略可)

screen -D [プロセス番号] パワーデタッチ screenを実行しているシェルをログアウトさせる(アタッチ中のscreenが1つの場合、プロセス番号は省略可)

screen -x [プロセス番号] マルチアタッチ(アタッチ中のscreenが1つの場合、プロセス番号は省略可)



【リモートデタッチの使用例】
例えばsshを使用して 自宅→リモートサーバ に接続する場合、回線の状況により通信が切断してしまう事がある。
このような場合はリモートサーバにログインした後にscreenを起動し、そのscreen上で作業を行う。ここで通信断が発生した場合、起動したscreenはプロセスとして残っているが状態はアタッチ(使用)されている。
これを他のターミナルからデタッチするようリモートデタッチを実行し、その後にアタッチを行う事で作業を継続する事が出来る。


【マルチアタッチの使用例】
screenを実行しているサーバに対して別のターミナルからログインを行い、そこからマルチアタッチを実行すると先に起動していたscreenと画面共有を行う事ができる。教育目的で先生役と生徒役で画面共有を行うと有用。