- 2005-09-07 (水)
- Linux
先日とあるサイトで知った、UNIX系OS で動く screen なるツール。kterm とか teraterm 等の端末1つで、複数端末での作業をエミュレートするとかなんとか・・・って使ってみてびっくり、これすげー便利!乱暴に言えばタブブラウザの terminal 版って感じでしょうか。ざーっと man を読んだ上で、幾つか web からも知識を仕入れたのでここにメモっておきます(いうても使いそうな基礎操作のみ)。
screen の魅力
- 複数の(仮想)端末を同時に開いて作業する事ができる
- 仮想端末が開かれた状態を保ったまま端末ログアウト 〜 後日ログイン後、screen を呼び出す事によって前回の状態を復帰させることができる(回線が強制切断しちゃった際も復帰可能)
- 1端末の画面を上下 n 分割させる事ができる
- 2人で同じ screen プロセスに接続する事で shell の同時操作ができる (like 自動車免許教習)
表記について
以下の操作方法説明ではこれらの表記/用語に従って記述しています:
^A c → Ctrl + a を入力した上で c (=小文字) を入力する ^A C → Ctrl + a を入力した上で Shift + C (=大文字)を入力する ^A ^A → Ctrl + a を二連続で入力する window = 1つの仮想端末を指す region = 画面分割した際の1つの領域を指す
操作一覧
基本操作
- 新規 window を開く
- 別の window に移動する
- 直前に操作していた window に戻る
- 開いている window に名前をつける/変更する
- 存在する window 名を一覧表示する
- 任意の window に移動する
- 開いてる window を閉じる
- screen をサスペンド状態にして閉じる (detach)
- detach 状態の screen を一覧表示する
- detach 状態の screen を復帰させる (attach)
- detach せずに screen を終了する
その他操作
画面分割
複数ユーザ同時操作
カスタマイズ設定
基本操作
新規 window を開く
^A c
別の window に移動する
^A space # 昇順移動 ^A del # 降順移動 または ^A n # 昇順 Next の意味 ^A p # 降順 Previous の意味
直前に操作していた window に戻る
^A ^A
開いている window に名前をつける/変更する
^A A
存在する window 名を一覧表示する
^A w # * マークがついているのが今表示されているwindow
任意の window に移動する
^A window番号 # window番号は一覧↑に表示される番号
開いてる window を閉じる
^A k
screen をサスペンド状態にして閉じる (detach)
^A d
※回線切断等で tty が強制終了しても自動的にこの detach 状態になってくれます。
detach 状態の screen を一覧表示する
% screen -ls
detach 状態の screen を復帰させる (attach)
% screen -r PID番号
detach せずに screen を終了する
^A \
その他操作
画面バックスクロールモードにする
^A [
※バックスクロール中の操作方法は vi と同じ
テキストコピー (バックスクロール中)
1) カーソルを始点に移動させて Space (または Enter) キー 2) カーソルを終点に移動させて Space (または Enter) キー
テキストペースト
^A ]
window の操作ログをとりはじめる
^A H # もう一度 ^A H でログ取得終了
ログファイルは screen を起動したディレクトリ直下に 'screenlog.window番号' というファイル名で出力されます。
window のハードコピーをとる
^A h
※ハードコピー: 表示されている画面中の文字列をテキストファイルとして保存すること。screen 起動時のディレクトリ直下に 'hardcopy.window番号' というファイルが出力されます。
キー入力をロックする
^A x
※デフォルト設定の場合、復帰にはユーザログインパスワードを求められます。
画面分割
画面を上下に二分割させる
^A S
分割後:領域のフォーカスを切り替える
^A Tab
※分割直後は新領域に何も window が割り振られていないので、フォーカスを新領域に移した後に ^A space または ^A c で別の window を呼び出す必要があります。
分割をやめて元の1画面表示に戻す
^A Q
複数ユーザ同時操作
別のユーザが操作中の screen に参加する (multi session)
% screen -x PID番号
※デフォルト設定ではログインユーザは同一でないと駄目みたい(customize可能)。
カスタマイズ設定
キーバインドの変更、起動時のオプション指定等をする為にはユーザーのルートディレクトリに .screenrc ファイルを作成してそこに記述を追加するようです。追加できる項目の詳細は man を参照って事で。
^A (Ctrl + a) を別のキーに変更
escape ^Zz # Ctrl + z に変更
エンコードを指定する
defencoding eucJP # or SJIS or UTF-8
※なんかわからんけど、2byte文字がうまく使えなかった時に、ぜひ。
続き...
続 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 いろいろまとめ。
- Newer: 今日の茶豆
- Older: coLinux + Debian 導入メモ
Comments:1
- 歩行者 2007-02-17 (土) 21:36
-
こんにちは、 WebOS Goodies というブログを書いている歩行者と申します。
記事からリンク&トラックバックさせていただきました。
この記事の構成やデザインはすごくわかりやすいですね!
私も参考にさせていただきます。screen は便利ですよね。私も以前は使っていました。
サーバーを変えてからまだインストールしていないので、
こちらを参考にしてまた使い始めようと思います。それでは、今後ともよろしくお願いいたします。