#author("2024-02-11T11:04:51+09:00","","")
#author("2024-02-11T11:05:38+09:00","","")
#topicpath


////////////////////////////////////////////////////////////////////////////////
* 目次 [#vc249053]
#contents();

////////////////////////////////////////////////////////////////////////////////
* 設定 [#nece9c8d]
- 設定は、${HOME}/.screenrc に記述する。
- Debianなら、以下にサンプルがあるので、${HOME} 配下にリネームして持ってくると良い。
 /usr/share/doc/screen/examples/screenrc


////////////////////////////////////////////////////////////////////////////////
** エスケープキーを再定義する [#nb4285fb]
- デフォルトでは C-a になっているので、bashの「行先頭に移動」と被ってしまう。これを回避するのに便利。
- 以下は、エスケープキーを "@" に変更する例。screenの画面上で文字として "@" を入力したい場合は、 "@@" を打てばよい。
 escape @@

- 但し、&color(red){本頁では、screen のエスケープキーを一貫してデフォルトの "C-a" で記す。};

////////////////////////////////////////////////////////////////////////////////
** 画面最下段にハードステータス(ステータスライン)を表示する [#q83168b0]
 hardstatus alwayslastline "%Lw"
- 1行分、ステータス表示に使われる。
- ここに、タイトル等が表示される

////////////////////////////////////////////////////////////////////////////////
* 基本操作 [#z168decf]
//==============================================================================
** 新規生成 [#create-session]
 $ screen -S <session-name> -t <title> [command] [command-arg(s)] ...
- 必須の引数は特にない。が、attach/dettach などをするには、分かり易い session-name を付ける方が良い。
- -S <session-name>: セッション名を指定する。セッション名は、attachするとき等、セッションの識別に用いられる。指定しない場合、PID等を組み合わせて自動的にセッション名が割り当てられる。
- -t <title>:タイトルを指定する。タイトルは、ハードステータスに表示される
- screen は通常、新しいセッションの起動時にシェルを起動する。しかし、コマンドを引数に渡して起動した場合、シェルではなくそのコマンドを起動する。その場合、呼び出すコマンドとその引数は、screenに渡す引数の最後に置く。

//==============================================================================
** attach [#attach-session]
- どこからも attach されていない session を attach する
 $ screen -r <session-name>
- session を attach する。若し attach 中であればその前に detach する。
 $ screen -dr <session-name>
- 既にattachされているsessionを強制的にattachする
 $ screen -x <session-name>
- attach する場合に指定する <session-name> は、 [[screen の一覧>#list-session]]の中から部分一致で一つの session を特定出来るようなものであれば何でもよい。


//==============================================================================
** detach [#detach-session]
- 直接操作
 C-a d
- コマンドラインから(attach している terminal の windows が消されたにもかかわらず detach 状態にならなかった session を detach するのに使える)
- コマンドラインから(attach している terminal の window が消されたにもかかわらず detach 状態にならなかった session を detach するのに使える)
 $ screen -d <session-name>

//==============================================================================
** 画面の分割 [#split-display]
- 画面を分割し、新しい画面にウインドウを立ち上げ、ウインドウの分割を解除するまでの手順を示す:
+ 画面を分割する
-- 画面の分割(水平方向)
 C-a S
-- 画面の分割(垂直分割)
 C-a |
+ 分割された画面間の移動
 C-a [Tab]
+ 新しいウインドウを作る
 C-a c
-- 画面は分割しただけだと、新たに出来た方は shell が立ち上がっておらず、何も出来ない。それを使うにはこの操作が要る。
+ 画面分割の解除
 C-a X



//==============================================================================
** 起動している screen session の一覧 [#list-session]
- screen session 一覧の表示
 $ screen -ls
- 個々の出力は下記の書式になっている:
 <PID>.<session-name>


//==============================================================================
** 終了 [#terminate-session]
- ユーザがそのセッションを終了すべく操作するか、screenが起動したプロセス(デフォルトではシェル)が終了すると、そのセッションは終了する。
- セッションを直接終了する場合
 C-a K
- セッションとは違うウインドウ/コンソールから終了させる場合
 $ screen -S <session-name> -X kill
-- "-X <command>" で、指定したセッションにに対するコマンドとして <command> を送ることが出来る。 


////////////////////////////////////////////////////////////////////////////////
* 参考リンク [#s4934c2b]
- [[USING SCREEN EXAMPLE part2>http://www.dekaino.net/screen/03example.html]]
- [[Screen>http://risky-safety.org/zinnia/screen/]]
- [[SCREEN Quick Reference>https://aperiodic.net/screen/quick_reference]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS