GNU screen の画面分割とかそんなのマルチウィンドウシステムなのにひとつのウィンドウ内でされても見にくいだけなんじゃ…ってことで自分が惹かれたのはアタッチ(attach)・デタッチ(detach)の機能。サーバでの作業を残したままログアウトできるなんてとても素敵。
まずは、
どこかのサーバにログイン。
$ telnet dokokano.nilab.info
$ uname -m -r -s -v
Linux 2.6.26-2-amd64 #1 SMP Tue Jan 25 05:59:43 UTC 2011 x86_64
screen を起動する (新しいウィンドウを生成する)。
$ screen
作業する。
とりあえず ls コマンドでも打っておく。
$ ls
0001.png 0003.png alice.jpg bob.jpg foo.txt hoge.txt zura.txt
0002.png 0004.png bar.txt dura.txt hage.txt zlash.txt
$
作業中断。
(´-`).。oO(あとで作業の続きをしたい)
デタッチ(detach)する。
Ctrl+a のあとに d を入力。
[detached]
どこかのサーバからログアウト。
$ exit
logout
Connection closed by foreign host.
(´-`).。oO(作業再開したい)
どこかのサーバにログイン。
$ telnet dokokano.nilab.info
screen のプロセス番号を調べる。
$ screen -ls
There is a screen on:
12636.pts-3.hoge (2011年03月26日 14時05分17秒) (Detached)
1 Socket in /var/run/screen/S-foobar.
再アタッチ(reattach)する。
-r オプションにプロセス番号を指定。
$ screen -r 12636
$ ls
0001.png 0003.png alice.jpg bob.jpg foo.txt hoge.txt zura.txt
0002.png 0004.png bar.txt dura.txt hage.txt zlash.txt
$
デタッチする前に実行した ls コマンドの結果が表示されたりして便利。
作業再開。
作業終了。screenを終了する。
$ exit
[screen is terminating]
どこかのサーバからログアウト。
$ exit
logout
Connection closed by foreign host.
余談。man screen したら「screen - VT100/ANSI 端末エミュレーション機能を持つ画面管理ソフトウェア」って日本語の名前がついてた。英語だと「screen - screen manager with VT100/ANSI terminal emulation」
Ref. GNU Screen - GNU Project - Free Software Foundation
tags: linux screen
Posted by NI-Lab. (@nilab)