Backup diff of UNIX/コマンド/端末エミュレータ/screen vs current(No. 5)


  • The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
TITLE:screen - 仮想端末
#navi(UNIX/コマンド)

|~作者||
|~ダウンロード|http://www.gnu.org/software/screen/#TOCdownloading|
|~関連サイト|http://www.gnu.org/software/screen/|
|~バージョン|4.00.02|
|~学内パス|/usr/local/gnu/bin/screen|
|~学内管理者|ISTC|
#contentsx

#contents

*概要 [#vd82246c]
screen コマンドで、ひとつの端末で複数の仮想端末を使用することができます。
簡単切り替えができて、ひとつのターミナルで全てができるようになります。
 % screen 
として仮想端末を生成します。
として仮想端末を生成します。^A-c で仮想端末を生成、^A-p, ^A-n で移動することができます。

基本的な操作としては以下のようなものがあります。
^ というのは Ctrl キーのことです。
|^A-c | 画面(端末)の新規生成|
|^A-p |前の画面に移動|
|^A-n |次の画面に移動|
|^A-^A |直前作業していた画面に戻る|
|^A-[0-9](^A-数字) |数字の画面に移動|
|^A-w |画面の一覧の表示|
|^A-k |現在の画面の起動プロセスを終了|
設定ファイルは[[.screenrc]]の項を参照してください。

おすすめ参考サイト:[[Let's use SCREEN!>http://www.dekaino.net/screen/]]

**利点 [#re91d268]

*利点 [#r625118f]

コメントを読むとscreenの利点をまとめた方がよいと思いますので、以下に挙げます。
以下のような利点があります。
-ひとつの端末で複数の仮想端末を使用することができる
-2ストロークで仮想端末の切り替え、増減ができる
-各々の仮想端末でバックスクロールができる
-仮想端末間でコピー、ヤンクができる。私はURLをコピー後w3mでヤンクといったことをよくします。
-detach(切断)、resume(再接続)ができる。例えば時間のかかる処理を実行したまま切断ログアウトし、後日ログイン再接続して同環境で始められ処理は終わっている。
-複数の端末でひとつの仮想端末を操作できる。これはvncに似てます
-画面上をキーカーソル移動できる(通常は現在プロンプトだけ)
-これにより、画面上の文字をマウスを使わずにコピーアンドペーストできる
-screen の環境を丸々保存(detach 切断)、後日復帰(resume or attach 再接続)出来る。何かのファイルを開いたままの状態で保存しておいたりできるため、ただのシェルの history に比べ優れる(ただし [[nohup]] しても文句を言われない環境が必要)
-複数の端末でひとつの画面を操作できる(共有)。

設定ファイルはUNIX/設定、設定ファイル/[[.screenrc]]の項を参照。
最近は高機能な端末エミュレータが存在し、画面上をキーカーソル移動できたり、「タブ」という形で複数の仮想端末を生成、操作できたりもしますが、detach, attach の機能は screen ならではと言えるでしょう。
また、多くの場合、それらの高機能端末エミュレータはリッチなローカルホスト環境でのみ利用可能なため、サーバにリモートログインするような場合、リモートログイン先での screen 起動は必須となるでしょう。

RIGHT:written by s1138001
RIGHT:s1138001
**欠点 [#nf65bf38]

* screenの技詳細((予定)) [#b6750b09]
以下のような欠点があります。
-端末エミュレータのスクロールバーが使えなくなる

画面上をキーカーソル移動する機能 ^A-[ でスクロールアップすることになります。./screenrc に 
 termcapinfo * ti@:te@
を書いておくことでスクロールバーを使用することもできますが、全ての画面でスクロール上部を共有しはじめるため、どの画面を開いているのかわかりにくくなり、混乱の元となります。

※これは screen というソフトが端末テキストの書き換えにより実現されている以上、なんともしようがないように思えます。
*操作 [#z5b6cf30]

デフォルトではすべて ^A (^ は Ctrl キーのこと)で始まりますが、これは [[.screenrc]] で設定することも出来ます。

**基本 [#h4b32c8e]
基本的な操作としては以下のようなものがあります。
|^A-c | 画面(端末)の新規生成|
|^A-p |前の画面に移動|
|^A-n |次の画面に移動|
|^A-^A |直前作業していた画面に戻る|
|^A-[0-9](^A-数字) |数字の画面に移動|
|^A-w |画面の一覧の表示|
|^A-k |現在の画面の起動プロセスを終了. exit でも可|
|^A-? |簡略キーバインド一覧|

** コピー&ペースト [#y1f75255]

|^A-[|コピーモード開始~ viと同じキーマップでカーソル移動、Enter2回で指定範囲をコピー|
|^A-[|コピーモード(画面上のキーカーソル移動)開始。viと同じキーマップでカーソル移動、Enter2回で指定範囲をコピー|
|^A-]|コピーしたテキストを張り付け|

** 画面分割 [#pe47bee9]

|^A-^s|画面を横に分割する|
|^A-S|画面を分割する。^A-<TAB> で移動し、^A-c で画面を作成する|
|^A-Q|現在の画面を残して、画面分割を閉じる|
|^A-<TAB>|分割した次の画面へ移動する|


** デタッチとアタッチ [#u55da5b2]

|^A-d|デタッチ。screen セッション(全体)を保存し、screen を起動する前のシェルに戻る。screen -ls でデタッチ中のスクリーンを確認できる。screen 中で実行されたプロセスはバックグラウンドで [[nohup]] 状態で動作し続ける。デタッチは [[nohup]] に比べプロセスを起動してしまった後でも nohup 状態にできるためありがたい。会津大学ではところ構わず nohup されると迷惑。|
|screen -r [pid]|リジューム or アタッチ。デタッチした screen セッションの復帰。pid ことプロセス番号は screen -ls でも ps でも確認できる。pid はデタッチした screen セッションが1つならば省略も可能。|
|screen -x|マルチアタッチ。既に開かれているセッションにアタッチすることができる。ローカルホスト自身で screen セッションを開き、他のコンピュータからそのホストにアクセス、screen -x することで、同じ画面を2つのコンピュータで共有したりできる。|
*シェル起動時自動起動 [#a3c27e64]

.bashrc もしくは .zshrc 用。シェル起動時に screen を自動起動する。
#pre{{
if [ $SHLVL = 1 ];then
  screen
fi
}}
if [ $TERM != 'screen']; でもいいだろう。

もしくは、
 screen -xR
と書いておく。すでに screen セッションがある場合そこに接続し、なければ作成する。
つまりこの場合、新しいシェルと以前から起動していたシェルでただ一つの screen セッションを共有する。
*参照 [#n34a575f]

-[[tips for screen -- screen の覚書>http://www.ayu.ics.keio.ac.jp/members/mukai/tips/screen.html]]
-[[Screenを使う>http://risky-safety.org/~zinnia/screen/]] - サイトで公開しているムービーを再生するプレーヤーはttyrec参照
-http://www.dekaino.net/screen/
-[[Screenを使う>http://risky-safety.org/~zinnia/screen/]] - サイトで公開しているムービーを再生するプレーヤーは[[ttyrec]] 参照
-[[Let's use SCREEN!>http://www.dekaino.net/screen/]]
-[[screen FAQ>http://www4.informatik.uni-erlangen.de/~jnweiger/screen-faq.html]] - English

#navi(UNIX/コマンド,,footer)
----
#vote2(役に立った[2],まあまあ[2],役に立たなかった[3],notimestamp)
役に立たなかった場合コメントをお願いします。
#comment(below)
-私は screen -x が必須の人なのでまた次元がアレですが…。 -- [[s1100051]] &new{2005-10-05 (水) 01:34:14};
-そんなことないと思うけどなー、そんな人にもscreenはおすすめできる。それにそれってX使用前提ですよね。 -- [[s1138001]] &new{2005-09-22 (木) 23:01:58};
-kterm をたくさん開いたりするのに抵抗がない人には何が嬉しいのかわからないかも知れないですね… -- [[s1100051]] &new{2005-05-29 (日) 16:28:43};
-screen コマンドがなのか?このページがなのか? --  &new{2005-05-27 (金) 03:59:13};
-やくたたずでしたよ〜 --  &new{2005-05-25 (水) 18:57:33};
-ぉ --  &new{2005-05-25 (水) 18:57:17};
-http://www.dekaino.net/screen/ このサイトもおすすめ -- [[s1100051]] &new{2005-04-25 (月) 01:10:01};

xrea