先日 とあるサイト で知った、UNIX系OS で動く screen なるツール。kterm とか teraterm 等の端末１つで、複数端末での作業をエミュレートするとかなんとか・・・って使ってみてびっくり、これすげー便利！乱暴に言えばタブブラウザの terminal 版って感じでしょうか。ざーっと man を読んだ上で、幾つか web からも知識を仕入れたのでここにメモっておきます（いうても使いそうな基礎操作のみ）。

screen の魅力

複数の（仮想）端末を同時に開いて作業する事ができる

仮想端末が開かれた状態を保ったまま端末ログアウト 〜 後日ログイン後、screen を呼び出す事によって前回の状態を復帰させることができる（回線が強制切断しちゃった際も復帰可能）

１端末の画面を上下 n 分割させる事ができる

２人で同じ screen プロセスに接続する事で shell の同時操作ができる (like 自動車免許教習）

表記について

以下の操作方法説明ではこれらの表記/用語に従って記述しています:

^A c → Ctrl + a を入力した上で c (=小文字) を入力する ^A C → Ctrl + a を入力した上で Shift + C (=大文字）を入力する ^A ^A → Ctrl + a を二連続で入力する window = １つの仮想端末を指す region = 画面分割した際の１つの領域を指す

操作一覧

基本操作

その他操作

画面分割

複数ユーザ同時操作

カスタマイズ設定

基本操作

新規 window を開く

^A c

▲RETURN TO TOP

別の window に移動する

^A space # 昇順移動 ^A del # 降順移動 または ^A n # 昇順 Next の意味 ^A p # 降順 Previous の意味

▲RETURN TO TOP

直前に操作していた window に戻る

^A ^A

▲RETURN TO TOP

開いている window に名前をつける／変更する

^A A

▲RETURN TO TOP

存在する window 名を一覧表示する

^A w # * マークがついているのが今表示されているwindow

▲RETURN TO TOP

任意の window に移動する

^A window番号 # window番号は一覧↑に表示される番号

▲RETURN TO TOP

開いてる window を閉じる

^A k

▲RETURN TO TOP

screen をサスペンド状態にして閉じる (detach)

^A d

※回線切断等で tty が強制終了しても自動的にこの detach 状態になってくれます。

▲RETURN TO TOP

detach 状態の screen を一覧表示する

% screen -ls

▲RETURN TO TOP

detach 状態の screen を復帰させる (attach)

% screen -r PID番号

▲RETURN TO TOP

detach せずに screen を終了する

^A \

▲RETURN TO TOP

その他操作

画面バックスクロールモードにする

^A [

※バックスクロール中の操作方法は vi と同じ

▲RETURN TO TOP

テキストコピー (バックスクロール中)

1) カーソルを始点に移動させて Space (または Enter) キー 2) カーソルを終点に移動させて Space (または Enter) キー

▲RETURN TO TOP

テキストペースト

^A ]

▲RETURN TO TOP

window の操作ログをとりはじめる

^A H # もう一度 ^A H でログ取得終了

ログファイルは screen を起動したディレクトリ直下に 'screenlog.window番号' というファイル名で出力されます。

▲RETURN TO TOP

window のハードコピーをとる

^A h

※ハードコピー: 表示されている画面中の文字列をテキストファイルとして保存すること。screen 起動時のディレクトリ直下に 'hardcopy.window番号' というファイルが出力されます。

▲RETURN TO TOP

キー入力をロックする

^A x

※デフォルト設定の場合、復帰にはユーザログインパスワードを求められます。

▲RETURN TO TOP

画面分割

画面を上下に二分割させる

^A S

▲RETURN TO TOP

分割後:領域のフォーカスを切り替える

^A Tab

※分割直後は新領域に何も window が割り振られていないので、フォーカスを新領域に移した後に ^A space または ^A c で別の window を呼び出す必要があります。

▲RETURN TO TOP

分割をやめて元の1画面表示に戻す

^A Q

▲RETURN TO TOP

複数ユーザ同時操作

別のユーザが操作中の screen に参加する (multi session)

% screen -x PID番号

※デフォルト設定ではログインユーザは同一でないと駄目みたい（customize可能）。

▲RETURN TO TOP

カスタマイズ設定

キーバインドの変更、起動時のオプション指定等をする為にはユーザーのルートディレクトリに .screenrc ファイルを作成してそこに記述を追加するようです。追加できる項目の詳細は man を参照って事で。

^A (Ctrl + a) を別のキーに変更

escape ^Zz # Ctrl + z に変更

▲RETURN TO TOP

エンコードを指定する

defencoding eucJP # or SJIS or UTF-8

※なんかわからんけど、2byte文字がうまく使えなかった時に、ぜひ。

▲RETURN TO TOP

続き...

続 screen の使い方 (2007/02/10 作成)

参考情報

man page - screen

screenのススメ

screenを使う

お世話になりました〜♪



川o・-・）＜2nd life: - プログラミングの開発環境

naoyaのはてなダイアリー - Perl の開発環境

共に Linux 上での開発環境についてのおはなし。自分は win/hidemaru + ffftp でソース反映... がごく自然なパターンなので参考になりまシタ。hidemaru ですら shift+F1/F2 の操作記録/再生と正規表現以外ろくに使ったことないしなぁ・・・（ヘッポコ

さらなる利便性追求

naoyaのはてなダイアリー - GNU screen いろいろまとめ。