screenの使い方
screenとは
screenは、仮想端末管理ソフトです。ターミナルによるCUIを使う場合にとても便利なツールです。
Wikipedia GNU_Screen を参照
screenのススメ http://www.dekaino.net/screen/
screenを使うと何がよいか?
同時に複数の仮想端末を操作することができます。
一つのターミナルで複数の仮想端末を操作できるので、システムの稼働状況を確認しながら、別の画面でプログラムを編集、さらに別のサーバにリモートログインするといった作業が可能となります。
操作中の画面を切断した後、別の端末からでも作業を再開することができます。
事務室のパソコンからログインして操作していた画面を切断し、サーバ本体のコンソールで作業の続きを再開することが可能です。
ログイン中に不意にネットワーク回線が切れても大丈夫。
リモートログイン中にネットワーク回線が切れた場合でも、再接続して作業を再開することができます。 その他にも多くの機能があります。
インストール
CentOSなら
sudo yum install screen
Ubuntuなら
sudo apt-get install screen
その他のLinuxもパッケージがありますので、インストールはパッケージ管理ツールで可能。
基本操作
起動、終了
起動 : screen 終了 : 通常のログアウト操作と同様(exit, Ctrl+Dなど)
仮想画面の操作
Ctrl+A C : 仮想画面の生成 Ctrl+A SPACE : 昇順に切換 Ctrl+A A : 直前の画面に切換 Ctrl+A 画面番号 : 画面番号(0-9)を指定して直接切換 Ctrl+A H, Ctrl+A P : 降順に切換
バックスクロール
Ctrl+A ESC, Ctrl+A [ : バックスクロール(コピーモード)(操作はviと同じキー操作) ESC : バックスクロール(コピーモード)を抜ける
コピー&ペースト
Ctrl+A [ : コピーモードに入る 始点 : コピーしたい領域の始点でSPACEを押す 終点 : カーソルを移動し領域の終点でSPACEを押す Ctrl+A ] : コピーバッファからペーストする
デタッチ&アタッチ
Ctrl+A D : デタッチすると最初にscreenを起動したシェルに戻る screen -ls : screenセッションのリストを表示 screen -x [プロセス番号]:: プロセス番号を指定してアタッチする screen -R : デタッチされたセッションがあれば、最初のセッションを起動
通常起動するときもscreen -Rとすればよい。デタッチされたセッションが残っていない場合は新規のscreenを起動する。
初期設定は好みにより設定してください。
cat .screenrc
#shell /bin/zsh
hardstatus on
vbell off
caption always "%{=r dg}%H[%n]: %c %{-}%`%-w%{=b bw}%n %t%{-}%+w"
autodetach on
bind ^U encoding utf8
bind ^E encoding euc
上記の “^U” の “^” (ハット)は、文字としてのハットではなくコントロールコードですので、エディタなどで入力する場合は、Ctrl+Vに続けてCtrl+Uのように入力します。(コピー&ペーストでは入力できません)
コメントアウトしていますが、zshを使うと複数の仮想画面のヒストリーが統合できるなどのメリットがあるようです。
EmacsなどでCtrl+Aに機能を割り当てている場合は、.screenrcでキーシーケンスを変更することができます。例えばCtrl+Zに置き換える場合は、次のような設定を.screenrcに追加します。
escape ^Z^Z
キーシーケンスを変更した場合は、Ctrl+Aの部分を変更して割り当てたキーに読み替えてください。