かなり基本的な操作について
screenを使ったことがない人は、たぶん<ctrl> + <a>という操作に慣れないと思う。慣れればなんてことはないだろうけど。
3つの目的別に説明。
(1)スクリーンでセッションを保存
(2)スクリーンで画面分割
(3)スクリーンでマウスを使わずにコピー&ペースト(画面のスクロール)
(1)スクリーンでセッションを保存
作業している状態を保存する。マシンの電源が切れない限り保持される。
たとえば、普通にログインしてジョブを流していると、いつの間にかsshの接続等が切れてjobが止まってしまうときがある。screenで生成したセッション内で計算を投入し、セッションからデタッチ(一時的に離れる)しておくことで、途中で計算プログラムが止まることがなくなる。
新しいセッションを作る
screen
セッションを一時的に離れる(デタッチ)
<ctrl> + <a>
d
一旦、コントロールとaを同時に押してから、dを入力する。
screenの状態を確認する (セッションの一覧表示)
screen -ls
アタッチする
screen -r
複数のセッションがある場合は、 screen -ls
で調べたIDを指定してセッションに戻る。
セッションに名前を付ける
screen -S hogehoge
として新規スクリーンを作ると、screen -r hogehoge
でアタッチできる。
小技
以下のように,IDの先頭が重複しないように名前を付けておくと,先頭の(数)文字を指定するだけでアタッチできるので,管理しやすい。
[hnishi@centos ~]$ screen -ls
There are screens on:
2947.a_bsc (Detached)
17657.b_test1 (Detached)
17897.c_test2 (Detached)
3 Sockets in /var/run/uscreens/S-k007200.
[hnishi@centos ~]$ screen -r b
既にアタッチされているスクリーンに強制的に入る
screen -rx ID
(2)スクリーンで画面分割
どんなターミナルでもscreenが入っていれば画面分割して作業できる。
水平方向に画面を分割
<ctrl> + <a>
S
コントロールキー+aを同時に押した後で、大文字のSを入力する。
分割された画面の移動
<ctrl> + <a>
<tab>
新しいウィンドウを作る
分割された画面にできた、何もないディスプレイに移動して以下を実行する。
<ctrl> + <a>
c
垂直方向に画面を分割
<ctrl> + <a>
|
分割したスクリーンを消して、元に戻す
<ctrl> + <a>
X
(3)スクリーンでマウスを使わずにコピー&ペースト
コマンドライン操作に慣れてくると、マウスを使うことが億劫になってくる。
スクリーンを使えば、キーボードだけでターミナル上の文字列をコピペできる。
コピーモードに入る(画面のスクロール)
<ctrl> + <a>
[
コピーモードに入ると、カーソルが矢印キーで自由に動かせるようになる。
PageUpとPageDownキーも画面を大きく動くときに利用できる。
コピーしたい始点でSpaceキーを押して、終点でもう一度SpaceキーもしくはEnterで、バッファーに一時保存できる。
なお、コピーモードではスクロールが自由。通常のスクリーンのセッションではマウスのホイールキーを使って端末の出力をさかのぼって見ることができないが、コピーモードを使って画面をスクロールするという使い方もできる。
ペースト
<ctrl> + <a>
]
スクリーンを起動していれば、どんな状態のときもコピーモードに移行とペーストが利用できる。
参考
ほかにもいろいろなscreenコマンドがある。
http://aperiodic.net/screen/quick_reference