こんにちは、鯨井貴博@opensourcetechです。
今回は、GNU screenの使い方をまとめてみようと思います。
screenとは、一つの端末の中で以下のように複数の仮想端末(ウィンドウと呼ばれる)を操作や表示などが出来るツールとなります。
なお、土台となるOSとしては、CentOS6.6(64ビット)を使用しています。
cat /etc/redhat-release
uname -r
まずは、yumでscreenをインストールします。
yum install screen
そして、screenの起動には、
ただ「screen」と入力すれば一つのセッションが開始されます。
screen
以下が起動後の表示ですが、見た目上は全く違いは分かりません。
キーボードの「Ctrl+a」の後「d」を押すと、
操作していたセッションからデタッチ(切断)を行います。
「screen -ls」や「screen -list」を実行すると、
現在のセッション一覧を表示してくれます。
再接続(reattach)したセッションがある場合、
「screen -r 5525」や「screen -r 5525.pts-0.MinimalLinux」などで
再接続が出来ます。
セッションに接続された状態で、
「ctrl+a」の後に「,(カンマ)」を実行すると、
screenのライセンスが表示されます。
セッションに接続された状態で、
「ctrl+a」の後に「K(大文字のk)」を実行すると、
操作しているウィンドウを閉じる(kill)する事が出来ます。
kill後、screen -lsとすると、
セッションがなくなっている事が確認出来ました。
なお、「pstree -p」でプロセスを確認してみると、
親プロセスの下にセッションのプロセスがいることが分かります。
セッションに接続された状態で、
「ctrl+a」の後に「S(大文字のs)」を実行すると、
使用している画面を分割(split)する事が出来ます。
この分割を行うと、以下のように上下で別々のコマンドを同時に実施する事が可能となります。
分割された画面間の移動は、「ctrl+a」の後に「tab(タブキー)」、
新規でコマンド操作を開始するには、「ctrl+a」の後に「c(小文字のc)」で出来ます。
操作している一つのウィンドウ以外を表示させないようにしたい場合は、
「ctrl+a」の後に「Q(大文字のq)」を実行します。
また、「ctrl+a」の後に「ctrl+n」で次(Next)ウィンドウへの移動、
「ctrl+a」の後に「ctrl+p」で前(Prev)ウィンドウへの移動も出来ます。
何かしらの理由で「Dead」状態になってしまったセッションがある場合は、「screen -wipe」で「Remove」する事が出来ます。
※「screen -wipe 5590」のようにセッション番号指定も可能。
使用するセッションに名前を付けたい場合は、
「screen -t top(ここではtopが名前)」とすれば名前の付いたセッションを生成する事が出来ます。
また、screenではテキストのコピー&ペーストも可能で、
「ctrl+a」・「[」の後でコピー開始位置と終了位置をカーソルで選択して「エンターキー」、「ctrl+a」・「]」でペーストが出来ます。
また、「ctrl+a」・「?」でヘルプの表示が出来ます。