Contents
- UNIX
- Windows
- サーバ
- プログラミング言語
- データベース
- プロトコル
- サービス
- オープンソース
- 規格・技術
- アプリケーション
- PC
- DEVICE
- その他(未分類)
お問合せ: メールフォーム
コマンド | 説明 |
---|---|
screen | 仮想端末マネージャ(virtual terminal manager) |
screen とは、ひとつの端末で複数の端末画面を持つことができるソフトウェアです。また、リモートホストに screen 経由でログインしている場合、回線が突然切れたり、ローカルマシンが落ちたとしても、リモートホストとのセッションは自動的にデタッチ状態に入るので、もう一度ログインすれば、アタッチして再度前回の続きから作業が可能になります。
現在のプロセスを端末から切断する行為。ただしプロセス自体はリモートサーバ内で生存し続ける。
デタッチしたプロセスに再接続する行為。
自分がログインするサーバすべての ~/.bashrc や ~/.zshrc に以下のように書いておくとよい
screen -d -R
※. デタッチ、アタッチオプションについてはお好みで
オプション | 説明 |
---|---|
-d | セッションをデタッチする |
-r | セッションをアタッチする |
-d -r | セッションを再アタッチする。必要ならばまずデタッチする |
-d -R | セッションを再アタッチする。必要ならばまずデタッチするか、あるいはセッションを生成する |
-d -RR | セッションを再アタッチする。必要ならばまずデタッチするか、あるいはセッションを生成する。複数のセッションをアタッチ可能な場合は、最初のセッションを使う |
-D -r | セッションを再アタッチする。必要ならばリモートのデタッチとログアウトを先に行う |
-D -R | アタッチを今ここで行う。具体的には、セッションが走っている場合には再アタッチを行い、必要ならばまずリモートのデタッチとログアウトを行う。動作中のセッションがなければ生成してユーザに知らせる |
-D -RR | アタッチを今ここで行う。参考: ときどき “screen -list” を使って、自分のセッションの状態をチェックすると良い |
-xR | セッションを再アタッチする。あるいはセッションを生成する |
コマンド割当キーを「Ctrl-T」に変更しています(変更方法は事項参照)。デフォルトは「Ctrl-A」です
画面を分割する
画面を分割している時、画面をロータリー式で移動する
カーソルがある画面内に新しい端末を作る
カーソルがある画面内に他の画面をロータリー式で切り替える
画面を分割している時、カーソルのある画面を削除する
画面を分割している時、カーソルがある画面にウィンドウ名を付けることができます
コマンドを実行すると「Set window's title to:」と対話形式で聞かれるので好きな名前を付ける
付けた名前はステータスバーで確認できます
※. 上記のキーバインドは .screenrc でカスタマイズすることで変更可能です
下記を .zshrc (or .bashrc) 等に記述することで、すでに screen セッションがある場合はそのセッションにアタッチし、なければ新規セッションを作成します。
以前起動していたシェルと新しいシェルとで、ひとつのセッションを共有することができます。
screen -xR
ちなみに、下記のように書いてもOK。
if [ "$WINDOW" = '' ]; then screen -d -R fi
escape ^Tt
hardstatus alwayslastline "[%Y-%m-%d(%D) %c:%s] %`%-w%{=b bw}%n %t%{-}%+w $STY"
↓こんな感じになる
[2006-10-02(Tue) 12:32:29] 0 sh 1 sh
bind r eval 'echo "Resize window"' 'command -c resize' bind -c resize ^] command bind -c resize j eval 'resize +1' 'command -c resize' bind -c resize k eval 'resize -1' 'command -c resize'