Backup source of UNIX/コマンド/端末エミュレータ/screen(No. 13)

TITLE:screen - 仮想端末
#navi(UNIX/コマンド)

#contentsx

*概要 [#vd82246c]
screen コマンドで、ひとつの端末で複数の仮想端末を使用することができます。
簡単切り替えができて、ひとつのターミナルで全てができるようになります。
 % screen 
として仮想端末を生成します。
設定ファイルはUNIX/設定、設定ファイル/[[.screenrc]]の項を参照。
とりあえず [[Let's use SCREEN!>http://www.dekaino.net/screen/]] を参照した方が良いかもしれません。。

例えば、次のような状況で便利です。

これから一時間はかかりそうな処理(cp -auv でファイルのバックアップなど)をフォアグラウンドですでに実行してしまっていたとします(標準出力もするのでバックグラウンドで動作させたくはないとします)。そしてもちろんその他にも仕事があるとします。その場合今後の動作として、1つにはコンソール端末をクリックし、別の仮想端末を起動させ、起動した仮想端末をクリックし、作業に移る方法があると思います。また、1つには、Ctrl-z で一旦処理を中断、コマンドを打ち仮想端末を起動し、fg で処理を再開、起動した仮想端末をクリックし、作業に移る方法があると思います。
このような状況において、ログインするととりあえず screen を起動する癖がついてあれば、^A-c だけですぐに別の作業に移ることができるようになります。ちなみに、確認のため戻るには ^A-n または ^A-p を使用します。

その他全般的な利点をリストしておきます。
-ひとつの端末で複数の仮想端末を使用することができる
-2ストロークで仮想端末の切り替え、増減ができる(上述)
-画面上をキーカーソル移動できる(通常は現在プロンプトだけ)
-これにより、画面上の文字をマウスを使わずにコピーアンドペーストできる
-screen の環境を丸々保存(detach 切断)、後日復帰(reattach 再接続)出来る。例えば man を開いていればそのままの状態で保存しておけるため、ただのシェルの history に比べ優れる。
-複数の端末でひとつの画面を操作できる(共有)。
RIGHT:s1138001

最近は高機能な端末エミュレータが存在し、画面上をキーカーソル移動できたり、「タブ」という形で複数の仮想端末を生成、操作できたりもしますが、detach, reattach の機能は screen ならではと言えるでしょう。
また、多くの場合、それらの高機能端末エミュレータはリッチなローカルホスト環境でのみ利用可能なため、サーバにリモートログインするような場合、リモートログイン先での screen 起動は必須となるでしょう。
*操作 [#z5b6cf30]

**基本 [#h4b32c8e]
基本的な操作としては以下のようなものがあります。
^ というのは Ctrl キーのことです。
|^A-c | 画面(端末)の新規生成|
|^A-p |前の画面に移動|
|^A-n |次の画面に移動|
|^A-^A |直前作業していた画面に戻る|
|^A-[0-9](^A-数字) |数字の画面に移動|
|^A-w |画面の一覧の表示|
|^A-k |現在の画面の起動プロセスを終了. exit でも可|
|^A-? |簡略キーバインド一覧|

** コピー&ペースト [#y1f75255]

|^A-[|コピーモード(画面上のキーカーソル移動)開始。viと同じキーマップでカーソル移動、Enter2回で指定範囲をコピー|
|^A-]|コピーしたテキストを張り付け|
** 画面分割 [#pe47bee9]

|^A-S|画面を分割する。^A-<TAB> で移動し、^A-c で画面を作成する|
|^A-Q|現在の画面を残して、画面分割を閉じる|
|^A-<TAB>|分割した次の画面へ移動する|

** デタッチとアタッチ [#u55da5b2]

|^A-d|デタッチ。スクリーンを保存し、screen を起動する前のシェルに戻る。screen -ls でデタッチ中のスクリーンを確認できる。screen 中で実行されたプロセスはバックグラウンドで [[nohup]] 状態で動作し続ける。会津大学では迷惑かもしれない。|
|screen -r [プロセス番号]|アタッチ。デタッチしたスクリーンの復帰。プロセス番号は screen -ls で|
*参照 [#n34a575f]

-[[tips for screen -- screen の覚書>http://www.ayu.ics.keio.ac.jp/members/mukai/tips/screen.html]]
-[[Screenを使う>http://risky-safety.org/~zinnia/screen/]] - サイトで公開しているムービーを再生するプレーヤーはttyrec参照
-[[Let's use SCREEN!>http://www.dekaino.net/screen/]]

#navi(UNIX/コマンド,,footer)
xrea