screen - VT100/ANSI ターミナルエミュレーションを備えたスクリーンマネージャー
概要
screen [ -オプション ] [ コマンド [ 引数 ] ]
screen -r [[pid.]tty[.host]]
screen -r sessionowner/[[pid.]tty[.host]]
説明
Screen は、物理ターミナルを複数のプロセス(通常はインタラクティブシェル)間で多重化するフルスクリーンウィンドウマネージャーです。各仮想ターミナルは、DEC VT100 ターミナルの機能を提供し、さらに ISO 6429 (ECMA 48, ANSI X3.64) および ISO 2022 標準からのいくつかの制御機能(例:行の挿入/削除、複数の文字セットのサポート)を提供します。各仮想ターミナルには、スクロールバック履歴バッファーと、テキスト領域をウィンドウ間で移動できるコピー&ペーストメカニズムがあります。
screen が呼び出されると、シェル(または指定されたコマンド)を含む単一のウィンドウが作成され、その後、screen はユーザーの操作から離れて、通常どおりプログラムを使用できるようにします。その後、いつでも、他のプログラム(さらにシェルを含む)を含む新しい(フルスクリーン)ウィンドウを作成したり、既存のウィンドウを閉じたり、ウィンドウのリストを表示したり、出力ロギングのオン/オフを切り替えたり、ウィンドウ間でテキストをコピー&ペーストしたり、スクロールバック履歴を表示したり、必要な方法でウィンドウを切り替えたりできます。すべてのウィンドウは、互いに完全に独立してプログラムを実行します。プログラムは、現在表示されていないときや、画面セッション全体がユーザーのターミナルから切り離されているときでも実行され続けます。プログラムが終了すると、screen は(デフォルトでは)そのプログラムが含まれていたウィンドウを閉じます。このウィンドウがフォアグラウンドにあった場合、表示は前のウィンドウに切り替わります。ウィンドウが残っていない場合は、screen が終了します。シェルは通常、ログインシェルとして実行されるか、サブシェルとして実行されるかを区別します。Screen は、シェルをサブシェルとして実行します。ただし、必要に応じて変更できます(.screenrc ファイルの shell コマンドを参照)。
入力した内容はすべて、現在のウィンドウで実行されているプログラムに送信されます。ただし、ウィンドウマネージャーへのコマンドを開始するために使用される 1 つのキーストロークは例外です。デフォルトでは、各コマンドは control-a(以降 C-a と表記)で始まり、その後に別のキーストロークが続きます。コマンド文字とすべてのキーバインドは、必要に応じて完全にカスタマイズできますが、常に 2 つの文字の長さです。
Screen は、C- を control を意味するものとして認識しませんが、この表記は可読性のためにこのマニュアルで使用されています。たとえば、escape コマンドまたは -e オプションへの引数としては、キャレット表記(^A の代わりに C-a)を使用してください。Screen は、制御文字をキャレット表記で出力します。
新しいウィンドウを作成する標準的な方法は、C-a c と入力することです。これにより、シェルを実行する新しいウィンドウが作成され、現在のウィンドウで実行中のプロセスの状態に関係なく、そのウィンドウにすぐに切り替わります。同様に、キー操作にコマンドをバインド(.screenrcファイル内またはC-a : コマンドラインで)し、C-a c コマンドのように使用することで、カスタムコマンドを含む新しいウィンドウを作成することもできます。さらに、次のようなコマンドを実行して新しいウィンドウを作成することもできます。
screen emacs prog.c
これは、以前に作成されたウィンドウ内のシェルプロンプトから実行します。これにより、別の screen のコピーが実行されるのではなく、コマンド名とその引数がウィンドウマネージャー($STY 環境変数で指定)に渡され、ウィンドウマネージャーがそれを使用して新しいウィンドウを作成します。上記の例では、emacs エディター(prog.c を編集)が開始され、そのウィンドウに切り替わります。ただし、呼び出し元のシェルからアプリケーション(この場合は emacs)に環境変数を転送することはできません。これは、アプリケーションが呼び出し元のシェルではなく、親 screen プロセスからフォークされるためです。
^ run/utmp が screen によって書き込み可能である場合、各ウィンドウに対してこのファイルに適切なレコードが書き込まれ、ウィンドウが終了すると削除されます。これは、talk、script、shutdown、rsend、sccs などのプログラムで、utmp ファイルを使用してユーザーを識別する場合に役立ちます。screen がターミナル上でアクティブである限り、ターミナルのレコードは utmp ファイルから削除されます。C-a L も参照してください。
始め方
^ creen を使い始める前に、他の termcap/terminfo プログラムと同様に、ターミナルの種類を正しく選択していることを確認する必要があります。(test を使用してこれを行うことができます)。
辛抱強く待てず、さらに多くのドキュメントを読むことなくすぐに始めたい場合は、次のコマンドを覚えておく必要があります。C-a ?。これらの2つの文字を入力すると、利用可能な screen コマンドとそのキーバインドのリストが表示されます。各キー操作は、「DEFAULT KEY BINDINGS」セクションで説明されています。.screenrc の内容は、「CUSTOMIZATION」セクションで説明されています。
ターミナルが真の自動マージンターミナル(画面の最後の位置をスクロールせずに更新できない)である場合は、ターミナルの termcap で自動マージンが無効になっているバージョンを使用することを検討してください。これにより、すべての状況で画面の正確かつ最適な更新が保証されます。現在、ほとんどのターミナルにはマジックマージン(自動マージンと使用可能な最後の列)があります。これは VT100 スタイルのターミナルであり、screen に最適です。真の自動マージンターミナルしかない場合、screen はそれを使用しますが、画面の最後の位置に文字を配置すると、画面がスクロールするか、文字が何らかの方法で安全な位置に移動するまで、更新できない場合があります。この遅延は、挿入文字機能を持つターミナルを使用することで短縮できます。
コマンドラインオプション
Screenには、次のコマンドラインオプションがあります。
-a 各ウィンドウのターミナル機能に、いくつかの例外を除いて、すべての機能を組み込みます。これにより、Screenがディスプレイの一部を再描画して機能を実現する必要が生じる場合があります。
-A すべてのウィンドウのサイズを現在のターミナルのサイズに合わせます。デフォルトでは、Screenはリサイズ可能なターミナル(WSが記述に含まれるもの、例:suncmdまたは一部のxterm)にアタッチするときに、古いウィンドウサイズを復元しようとします。
-c file
デフォルトの構成ファイル `$HOME/.screenrc` をオーバーライドして、`file` を使用します。
-d|-D [pid.tty.host]
Screenセッションを開始せず、他の場所で実行されているScreenセッションからデタッチします。これは、Screenの制御ターミナルからC-a dと入力することと同じ効果があります。-Dは、強制デタッチキーと同等です。セッションをデタッチできない場合、このオプションは無視されます。-r/-Rオプションと組み合わせて使用すると、より強力な効果が得られます。
-d -r セッションにアタッチし、必要に応じて最初にデタッチします。
-d -R セッションにアタッチし、必要に応じてデタッチまたは作成します。
-d -RR セッションにアタッチし、必要に応じてデタッチまたは作成します。複数のセッションが利用可能な場合は、最初のセッションを使用します。
-D -r セッションにアタッチします。必要に応じて、最初にリモートでデタッチしてログアウトします。
-D -R ここでアタッチします。詳細:セッションが実行中の場合は、再アタッチします。必要に応じて、最初にリモートでデタッチしてログアウトします。実行中でない場合は、作成してユーザーに通知します。これは作者のお気に入りです。
-D -RR ここでアタッチします。それがどういう意味であれ、とにかく実行します。
注:`screen -list` を使用して、セッションの状態をチェックすることをお勧めします。
-e xy
コマンド文字をx、リテラルコマンド文字を生成する文字をy(コマンド文字の後にタイプした場合)として指定します。デフォルトはC-aと`a`で、これは-e^Aaとして指定できます。Screenセッションを作成するとき、このオプションはデフォルトのコマンド文字を設定します。マルチユーザーセッションで追加されたすべてのユーザーは、このコマンド文字で開始します。ただし、すでに実行中のセッションにアタッチする場合、このオプションはアタッチするユーザーのコマンド文字のみを変更します。このオプションは、`defescape`または`escape`コマンドと同等です。
-f、-fn、および-fa
フロー制御をオン、オフ、または自動切り替えモードに設定します。これは、`defflow .screenrc`コマンドを通じて定義することもできます。
-h num
ヒストリースクロールバックバッファーの高さをnum行に設定します。
-i
フロー制御がオンの場合、割り込みキー(通常はC-c)がディスプレイをすぐに割り込みます。詳細については、`defflow .screenrc`コマンドを参照してください。このオプションの使用は推奨されません。
-lおよび-ln
ログインモードをオンまたはオフにします(`/run/utmp`の更新用)。これは、`deflogin .screenrc`コマンドを通じて定義することもできます。
-ls [match]
-list [match]
画面を開始するのではなく、pid.tty.host 文字列と作成タイムスタンプのリストを出力し、
画面セッションを識別します。`detached` とマークされたセッションは、`screen -r` を使用して再開できます。
`attached` とマークされたセッションは実行中であり、制御端末があります。セッションが
マルチユーザーモードで実行されている場合、`multi` とマークされます。`unreachable` とマークされたセッションは、別のホストで実行されているか、`dead` です。到達不能なセッションは、その名前が
ローカルホストの名前、または指定されたパラメータのいずれかと一致する場合、`dead` と見なされます。`-r` フラグの説明については、`-r` フラグを参照してください。`dead` とマークされたセッションは、
徹底的に確認し、削除する必要があります。不明な場合は、システム管理者に問い合わせてください。`-wipe` オプションを使用してセッションを削除します。
-L 画面で、ウィンドウの自動出力ロギングを有効にします。
-Logfile file
デフォルトのログファイル名は `screenlog.0` です。`-Logfile` オプションを使用して、新しいログファイル名を指定できます。
-m 画面で `$STY` 環境変数を無視するようにします。`screen -m` を使用すると、画面が別の画面セッションから呼び出されたかどうかに関わらず、新しいセッションの作成が強制されます。このフラグは、`-d` オプションとの組み合わせで特別な意味を持ちます。
-d -m 画面をデタッチモードで開始します。これにより、新しいセッションが作成されますが、それにアタッチされません。これは、システム起動スクリプトで役立ちます。
-D -m これも画面をデタッチモードで開始しますが、新しいプロセスをフォークしません。セッションが終了すると、コマンドは終了します。
-O 端末に最適な出力モードを、真の VT100 エミュレーションではなく選択します(`LP` を持たない自動マージン端末にのみ影響します)。これは、`.screenrc` で `OP` を termcap コマンドとして指定することによって設定することもできます。
-p number_or_name|-|=|+
ウィンドウを事前に選択します。これは、特定のウィンドウに再アタッチしたい場合、または `-X` オプションを介して特定のウィンドウにコマンドを送信したい場合に役立ちます。画面の `select` コマンドと同様に、`-` は空白のウィンドウを選択します。再アタッチの場合、`=` は空白のウィンドウにウィンドウリストを表示し、`+` は新しいウィンドウを作成します。指定されたウィンドウが見つからなかった場合、コマンドは実行されません。
-q エラーメッセージの表示を抑制します。`-ls` と組み合わせると、終了値は次のようになります。9 はセッションのないディレクトリを示します。10 は実行中であるがアタッチできないセッションを含むディレクトリを示します。11 (またはそれ以上) は、1 つ (またはそれ以上) の使用可能なセッションがあることを示します。`-r` と組み合わせると、終了値は次のようになります。10 は再開するセッションがないことを示します。12 (またはそれ以上) は、再開するセッションが 2 つ以上あり、どちらを選択するかを指定する必要があることを示します。これ以外の場合、`-q` には影響しません。
-Q 一部のコマンドは、このフラグを使用してリモートセッションからクエリできるようになりました。例: `screen -Q windows`。コマンドは応答をクエリプロセスの stdout に送信します。コマンドでエラーが発生した場合、クエリプロセスはゼロ以外のステータスで終了します。
現在クエリできるコマンドは次のとおりです。 echo info lastmsg number select time title windows
-r [pid.tty.host]
-r sessionowner/[pid.tty.host]
デタッチされた screen セッションを再開します。他のオプション(-d/-D との組み合わせを除く)は指定できません。オプションとして、[pid.]tty.host のプレフィックスが必要になる場合があります。これは、複数のデタッチされた screen セッションを区別するためです。2 番目の形式は、マルチユーザーモードで実行されている別のユーザーの screen セッションに接続するために使用されます。これは、setuid-root が必要です。
-R screen が再開するセッションが一意に決まる場合(通常、デタッチされた screen セッションが 1 つしかない場合)にのみ、screen を再開します。そうでない場合は、利用可能なセッションを一覧表示します。-RR は、最も新しい(作成時間に基づいて)デタッチされた screen セッションを再開しようとします。成功した場合、他のすべてのコマンドラインオプションは無視されます。デタッチされたセッションが存在しない場合は、-R が指定されていないかのように、新しいセッションを開始します。このオプションは、screen がログインシェルとして実行されている場合にデフォルトで設定されます(実際には、screen は -xRR を使用します)。-d/-D オプションとの組み合わせについては、それらの説明を参照してください。注:時間ベースのセッション選択は、Debian の追加機能です。
-s program
デフォルトのシェルを、環境変数 $SHELL に設定されている値の代わりに、指定されたプログラムに設定します(または、定義されていない場合は /bin/sh)。これは、シェル .screenrc コマンドを使用して定義することもできます。詳細については、それも参照してください。
-S sessionname
新しいセッションを作成するときに、このオプションを使用して、セッションに意味のある名前を指定できます。この名前は、screen -list および screen -r アクションでセッションを識別します。デフォルトの [tty.host] サフィックスを置き換えます。この名前の長さは 80 文字を超えてはなりません。
-t name
デフォルトのシェルまたは指定されたプログラムのタイトル(別名)を設定します。シェルtitle .screenrc コマンドも参照してください。
-T term
指定されたターミナルを使用して、環境変数 $TERM を設定します。そうでない場合は、screen のデフォルト設定が使用されます。
-U screen を UTF-8 モードで実行します。このオプションは、ターミナルが UTF-8 でエンコードされた文字を送信および理解すること、および新しいウィンドウのデフォルトのエンコーディングを `utf8` に設定することを screen に伝えます。
-v バージョン番号を表示します。
-wipe [match]
screen -ls と同じことを行いますが、破壊されたセッションを「dead」としてマークする代わりに削除します。到達不能なセッションは、その名前がローカルホストの名前と一致する場合、または明示的に指定されたパラメーターと一致する場合に、dead と見なされます。-r フラグの記述を参照して、一致の構築方法を確認してください。
-x デタッチされていない screen セッションにアタッチします(マルチディスプレイモード)。screen は、自身の中からアタッチすることを拒否します。ただし、複数の screen をカスケードする場合、ループは検出されないため、注意してください。
-X 指定されたコマンドを、実行中の screen セッションに送信します。複数の screen セッションを実行している場合は、-S オプションを使用して screen セッションを指定できます。-d または -r オプションを使用して、screen にアタッチされているセッションまたはデタッチされているセッションのみを検索するように指示できます。ただし、セッションがパスワードで保護されている場合は、このコマンドは機能しません。
-4 ホスト名を IPv4 アドレスにのみ解決します。
-6 ホスト名を IPv6 アドレスにのみ解決します。
デフォルトのキーバインド
前述のとおり、各 screen コマンドは C-a に続いて別の 1 つの文字で構成されます。利便性のために、小文字にバインドされているすべてのコマンドは、対応する制御文字にもバインドされます(ただし、C-a a は例外です。以下を参照)。したがって、C-a c と C-a C-c のどちらも、ウィンドウを作成するために使用できます。コマンドの説明については、[カスタマイズ] セクションを参照してください。
次の表は、デフォルトのキーバインドを示しています。複数のキーストロークエントリを持つボックスの末尾にあるコンマは区切り文字であり、バインドの一部ではありません。
C-a ' (select) ウィンドウ名または番号の入力を促し、そのウィンドウに切り替えます。
C-a " (windowlist -b) すべてのウィンドウのリストを表示して、選択できるようにします。
C-a digit (select 0-9) ウィンドウ番号 0 ~ 9 に切り替えます。
C-a - (select -) ウィンドウ番号 0 ~ 9、または空白のウィンドウに切り替えます。
C-a tab (focus) 入力フォーカスを次の領域に切り替えます。split、remove、only も参照してください。
C-a C-a (other) 以前に表示されていたウィンドウに切り替えます。このバインドは、デフォルトではコマンド文字を 2 回入力することになりますが、上書きできます。たとえば、-e]x オプションを使用すると、このコマンドは ]] になります。
C-a a (meta) コマンド文字(C-a)をウィンドウに送信します。エスケープコマンドを参照してください。
C-a A (title) 現在のウィンドウの名前を入力できるようにします。
C-a b, (break) ウィンドウにブレーク信号を送信します。
C-a C-b
C-a B (pow_break) ターミナル行を再開し、ブレーク信号を送信します。
C-a c, (screen) シェルを含む新しいウィンドウを作成し、そのウィンドウに切り替えます。
C-a C-c
C-a C (clear) 画面をクリアします。
C-a d, (detach) このターミナルから screen をデタッチします。
C-a C-d
C-a D D (pow_detach) デタッチしてログアウトします。
C-a f, (flow) フローを切り替え(オン、オフ、または自動)します。
C-a C-f
C-a F (fit) ウィンドウを現在の領域サイズにサイズ変更します。
C-a C-g (vbell) screen の視覚ベルモードを切り替えます。
C-a h (hardcopy) 現在のウィンドウのハードコピーをファイル hardcopy.n に書き込みます。
C-a H (log) 現在のウィンドウのログをファイル screenlog.n に記録し始めたり、停止したりします。
C-a i, (info) このウィンドウに関する情報を表示します。
C-a C-i
C-a k, (kill) 現在のウィンドウを破棄します。
C-a C-k
C-a l, (redisplay) 現在のウィンドウを完全に再表示します。
C-a C-l
C-a L (login) このウィンドウのログインスロットを切り替えます。これは、スクリーンが utmp データベースを更新するように構成されている場合にのみ使用できます。
C-a m, (lastmsg) メッセージ行に表示された最後のメッセージを繰り返します。
C-a C-m
C-a M (monitor) 現在のウィンドウの監視を切り替えます。
C-a space, (next) 次のウィンドウに切り替えます。
C-a n,
C-a C-n
C-a N (number) 現在のウィンドウの番号(およびタイトル)を表示します。
C-a backspace, (prev) 前のウィンドウに切り替えます(C-a n の反対)。
C-a C-h,
C-a p,
C-a C-p
C-a q, (xon) 現在のウィンドウに制御文字 q を送信します。
C-a C-q
C-a Q (only) 現在の領域以外のすべての領域を削除します。 split、remove、focus も参照してください。
C-a r, (wrap) 現在のウィンドウの行折り返し設定を切り替えます(現在のウィンドウの自動マージンをオン/オフにします)。
C-a C-r
C-a s, (xoff) 現在のウィンドウに制御文字 s を送信します。
C-a C-s
C-a S (split) 現在の領域を水平方向に 2 つの新しい領域に分割します。 only、remove、focus も参照してください。
C-a t, (time) システム情報を表示します。
C-a C-t
C-a v (version) バージョンとコンパイル日を表示します。
C-a C-v (digraph) ダイグラフを入力します。
C-a w, (windows) ウィンドウのリストを表示します。
C-a C-w
C-a W (width) 80/132 列を切り替えます。
C-a x または C-a C-x (lockscreen) このターミナルをロックします。
C-a X (remove) 現在の領域を削除します。 split、only、focus も参照してください。
C-a z, (suspend) スクリーンを一時停止します。システムが BSD スタイルのジョブ制御をサポートしている必要があります。
C-a C-z
C-a Z (reset) 仮想ターミナルを電源投入時の値にリセットします。
C-a . (dumptermcap) .termcap ファイルを出力します。
C-a ? (help) キーバインディングを表示します。
C-a \ (quit) すべてのウィンドウを閉じ、スクリーンを終了します。
C-a : (colon) コマンド行モードに入ります。
C-a [, (copy) コピー/スクロールバックモードに入ります。
C-a C-[,
C-a esc
C-a C-], (paste .) ペーストバッファーの内容を現在のウィンドウの stdin キューに書き込みます。
C-a ]
C-a {, (history) 前の(コマンド)行をコピーして貼り付けます。
C-a }
C-a > (writebuf) バッファーの内容をファイルに書き出す。
C-a < (readbuf) 画面交換ファイルをバッファーに読み込む。
C-a = (removebuf) C-a < および C-a \> で使用されるファイルを削除する。
C-a , (license) screen の出所、行き先、および使用できる理由を表示する。
C-a _ (silence) 現在のウィンドウの非アクティブ状態を監視する(開始/停止)。
C-a | (split -v) 現在の領域を垂直方向に 2 つの新しい領域に分割する。
C-a * (displays) 現在接続されているすべてのディスプレイの一覧を表示する。
カスタマイズ
ソケットディレクトリは、デフォルトでは $HOME/.screen、または単に /tmp/screens、または好ましくは /run/screen に設定されます。これはコンパイル時に選択されます。screen が setuid-root でインストールされている場合、管理者は適切な(NFS マウントされていない)ソケットディレクトリで screen をコンパイルする必要があります。screen が setuid-root で実行されていない場合、ユーザーは環境変数 $SCREENDIR で任意のモード 700 のディレクトリを指定できます。
screen が起動されると、/etc/screenrc およびデフォルトのファイルから初期化コマンドが実行されます。これらは、次の方法でオーバーライドできます。グローバルな screenrc ファイルの場合、screen は環境変数 $SYSSCREENRC を検索します(このオーバーライド機能はコンパイル時に無効にすることができます)。ユーザー固有の screenrc ファイルは、$SCREENRC、次に $HOME/.screenrc で検索されます。コマンドラインオプション -c は、上記のユーザー screenrc ファイルよりも優先されます。
これらのファイル内のコマンドは、オプションを設定したり、キーに機能をバインドしたり、screen セッションの開始時に 1 つ以上のウィンドウを自動的に確立したりするために使用されます。コマンドは 1 行に 1 つずつリストされ、空行は無視されます。コマンドの引数は、タブまたはスペースで区切られ、単一引用符または二重引用符で囲むことができます。# は、引用符内を除いて、その行の残りの部分をコメントにします。意味不明な行は警告され、無視されます。コマンドには、環境変数への参照を含めることができます。構文は、シェルと同様の $VAR または ${VAR} です。これにより、以前の screen バージョンとの互換性が損なわれることに注意してください。なぜなら、$ 文字は、変数置換を実行しない場合は、\ で保護する必要があるからです。単一引用符で囲まれた文字列も、変数置換から保護されます。
2 つの構成ファイルが、screen ディストリビューションの例として出荷されます: etc/screenrc および etc/etcscreenrc。これらには、さまざまなコマンドの多くの有用な例が含まれています。
カスタマイズは「オンライン」でも行うことができます。コマンドモードに入るには、C-a : と入力します。def で始まるコマンドは、デフォルト値を変更する一方、他のコマンドは現在の設定を変更します。
次のコマンドが利用可能です。
acladd usernames [crypted-pw]
addacl usernames
この screen セッションに完全にアクセスできるようにユーザーを有効にします。ユーザー名は、1 人またはカンマで区切られたユーザーのリストにすることができます。このコマンドは、screen セッションに接続できるようにし、aclchg usernames +rwx "#?" と同等の操作を実行します。実行されます。制限付きアクセスでユーザーを追加するには、aclchg コマンドを使用します。オプションの 2 番目のパラメーターが指定されている場合、それは指定されたユーザーの暗号化されたパスワードである必要があります。Addacl は acladd のエイリアスです。マルチユーザーモードのみ。
aclchg ユーザー名 権限ビット リスト
chacl ユーザー名 権限ビット リスト
コンマで区切られたユーザーリストに対して、権限を変更します。権限ビットは r、w、x で表されます。+ をプレフィックスとして付けると権限を付与し、- をプレフィックスとして付けると権限を削除します。3 番目のパラメーターは、コマンドまたはウィンドウのコンマ区切りのリストです (番号またはタイトルで指定します)。特殊なリスト # はすべてのウィンドウを指し、? はすべてのコマンドを指します。ユーザー名が単一の * で構成されている場合、既知のすべてのユーザーに影響します。
コマンドは、ユーザーがそのコマンドに対して x ビットを持っている場合に実行できます。ユーザーがウィンドウの w ビットをセットし、他のユーザーがそのウィンドウに対して書き込みロックを取得していない場合、ユーザーはそのウィンドウに何かを入力できます。他のビットは現在無視されます。別のユーザーからウィンドウ 2 の書き込みロックを取り消すには、aclchg ユーザー名 -w+w 2 を使用します。読み取り専用アクセスを許可するには、aclchg ユーザー名 -w "#" を使用します。ユーザーの名前が screen に知られていると、そのユーザーはセッションに接続でき、(デフォルトでは)すべてのコマンドとウィンドウに対して完全な権限を持ちます。acl コマンド、at などのコマンドの実行権限も削除するか、ユーザーが書き込み権限を再度取得できる可能性があります。特殊なユーザー名 nobody の権限は変更できません (su コマンドを参照)。chacl は aclchg の同義語です。マルチユーザーモードでのみ使用できます。
acldel ユーザー名
screen のアクセス制御リストからユーザーを削除します。現在接続されている場合、そのユーザーのすべての表示はセッションから切断されます。ユーザーは再接続できません。マルチユーザーモードでのみ使用できます。
aclgrp ユーザー名 [グループ名]
共通のアクセス権を共有するユーザーのグループを作成します。グループの名前は、グループリーダーのユーザー名です。グループの各メンバーは、グループリーダーに付与された権限を継承します。つまり、ユーザーがアクセスチェックに失敗した場合、グループリーダーに対する別のチェックが行われます。ユーザーは、特殊な値 none をグループ名として使用することで、すべてのグループから削除されます。2 番目のパラメーターが省略された場合、ユーザーが属するすべてのグループがリストされます。
aclumask [[ ユーザー ] +ビット | [ ユーザー ] -ビット... ]
umask [[ ユーザー ] +ビット | [ ユーザー ] -ビット... ]
これにより、コマンドの呼び出し者が作成するウィンドウに対して、他のユーザーが持つアクセスが指定されます。ユーザーは、no、one、または既知のユーザー名のコンマ区切りリストのいずれかになります。ユーザーが指定されていない場合、現在知られているすべてのユーザーのリストが想定されます。ビットは、aclchg コマンドで定義されているアクセス制御ビットの任意の組み合わせです。特殊なユーザー名 ? は、まだ知られていないユーザーに、どのウィンドウにも最初に付与されるアクセスを定義します。特殊なユーザー名 ?? は、まだ知られていないユーザーに、どのコマンドにも最初に付与されるアクセスを定義します。特殊なユーザー名 nobody の権限は変更できません (su コマンドを参照)。umask は aclumask の同義語です。
アクティビティメッセージ
バックグラウンドウィンドウで何らかのアクティビティが発生した場合、画面にメッセージ行に通知が表示されます。通知メッセージは、activity コマンドを使用して再定義できます。メッセージ内の各 %' は、アクティビティが発生したウィンドウの番号に置き換えられ、各^Gは、termcap` で定義されたベル(通常は可聴ベル)に置き換えられます。デフォルトのメッセージは次のとおりです。
「ウィンドウ %n にアクティビティがあります」
注:デフォルトでは、すべてのウィンドウでの監視はオフになっていますが、`monitor` コマンド (C-a M) を使用して変更できます。
allpartial [ on | off ]
^ n に設定すると、ウィンドウが変更されたときに現在のカーソル行のみが更新されます。これはすべてのウィンドウに影響し、通信速度が遅い端末で役立ちます。各ウィンドウの完全/部分更新の以前の設定は、allpartial を off にすることで復元されます。これはグローバルフラグであり、すぐにすべてのウィンドウに影響を与え、部分設定をオーバーライドします。これは、新しく作成されたウィンドウのデフォルトの再描画動作を変更しません。
altscreen [ on | off ]
^ n に設定すると、仮想端末で xterm と同様の「代替画面」サポートが有効になります。初期設定は off です。
at [識別子][#|*|%] コマンド [引数 ...]
別のディスプレイまたはウィンドウで、コマンドがそこで入力されたかのように実行します。`at` は、コマンドのコンテキスト(「現在のウィンドウ」または「現在のディスプレイ」設定)を変更します。最初のパラメータが一意でないコンテキストを記述する場合、コマンドは複数回実行されます。最初のパラメータが `識別子*` の形式の場合、`識別子` はユーザー名と照合されます。コマンドは、選択されたユーザーの各ディスプレイに対して 1 回実行されます。最初のパラメータが `識別子%` の形式の場合、`識別子` はディスプレイと照合されます。ディスプレイは、それらがアタッチされている tty の名前で命名されます。識別子から `/dev/` または `/dev/tty` のプレフィックスを省略できます。`識別子` に `#` または何も追加されていない場合、プレフィックスマッチが実行されるため、すべてのユーザー、ディスプレイ、またはウィンドウが選択されます。影響を受けるディスプレイに短いメッセージが表示され、何が起こったかが説明されます。`at` コマンドの開始者の権限がチェックされ、影響を受けるディスプレイの所有者の権限はチェックされません。`#` 文字は、空白で始まる場合、コメントの導入文字として機能します。これをエスケープするには、`\` をプレフィックスとして付けます。`at` コマンドの開始者の権限がチェックされ、影響を受けるディスプレイの所有者の権限はチェックされません。
注意:ウィンドウとの照合では、コマンドはウィンドウごとに少なくとも 1 回実行されます。ウィンドウの内部配置を変更するコマンド (たとえば、`other`) は、もう一度呼び出される場合があります。共有ウィンドウの場合、コマンドは各アタッチされたディスプレイに対して繰り返されます。`login!` のように、状態を切り替えるコマンドを発行する場合は注意してください。一部のコマンド (たとえば、`process`) では、ターゲットウィンドウにディスプレイが関連付けられている必要があります。これらのコマンドは、ウィンドウをループ処理する `at` の下では正しく機能しない場合があります。
attrcolor attrib [attribute/color-modifier]
このコマンドは、テキストの色を変更することで属性を強調するために使用できます。属性 attrib が使用されている場合、指定された属性/カラーモディファイアも適用されます。モディファイアが指定されていない場合、現在のモディファイアが削除されます。モディファイアの構文については、「STRING ESCAPES」の章を参照してください。Screen は、i は高輝度フォアグラウンド色、I は高輝度背景色を表す 2 つの疑似属性を認識しています。
例:
attrcolor b "R"
太字のテキストを印刷する場合、色を明るい赤に変更します。
attrcolor u "-u b"
下線ではなく、代わりに青いテキストを使用します。
attrcolor b ".I"
太字のテキストに明るい色を使用します。ほとんどのターミナルエミュレーターは、これをすでに実行します。
attrcolor i "+b"
明るい色のテキストも太字にします。
autodetach [ on | off ]
Screen がハングアップ時に自動的にデタッチするかどうかを設定します。これにより、すべての実行中のプログラムが保存され、screen -r コマンドで再開できるようになります。オフにすると、ハングアップ信号は screen とそのすべてのプロセスを終了します。autodetach はデフォルトでオンになっています。
autonuke [ on | off ]
クリア画面シーケンスが、ターミナルに書き込まれていないすべての出力を破棄するかどうかを設定します。obuflimit も参照してください。
backtick id lifespan autorefresh cmd args...
backtick id
数値 ID id を使用して、バックティックコマンドをプログラムします。このコマンドの出力は、%` 文字列エスケープの置換に使用されます。指定されたライフスパンは、出力が有効と見なされる秒数です。この時間が経過すると、対応する文字列エスケープが見つかった場合に、コマンドが再度実行されます。autorefresh パラメータは、指定された秒数後にキャプションとハードステータス文字列の自動更新をトリガーします。置換には、出力の最後の行のみが使用されます。
ライフスパンと autorefresh パラメータの両方がゼロの場合、バックティックプログラムはバックグラウンドで実行され、時折出力を生成することが予想されます。この場合、コマンドはすぐに実行され、screen は出力の最後の行を保存します。新しい行が出力されると、screen はハードステータスまたはキャプションを自動的に更新します。
2 番目の形式のコマンドは、数値 ID id を持つバックティックコマンドを削除します。
bce [ on | off ]
background-color-erase 設定を変更します。bce がオンに設定されている場合、消去/挿入/スクロール/クリア操作によって消去されたすべての文字は、現在の背景色で表示されます。それ以外の場合は、デフォルトの背景色が使用されます。
bell_msg [message]
ベル文字がバックグラウンドウィンドウに送信されると、screen はメッセージ行に通知を表示します。通知メッセージは、このコマンドで再定義できます。メッセージ内の各 % は、ベルが送信されたウィンドウの番号に置き換えられ、各 ^G は、ターミナル定義 (通常は可聴ベル) でベルの定義に置き換えられます。デフォルトのメッセージは次のとおりです。
「ウィンドウにベルを鳴らす %n」
空のメッセージを bell_msg コマンドに渡すと、メッセージ行の出力が抑制されます (bell_msg "")。パラメータを指定せずに実行すると、現在のメッセージが表示されます。
`bind [class] key [command [args]]`
キーにコマンドをバインドします。デフォルトでは、screen によって提供されるほとんどのコマンドは、DEFAULT KEY BINDINGS セクションに示すように、1 つまたは複数のキーにバインドされます。たとえば、新しいウィンドウを作成するコマンドは、C-c と c にバインドされています。bind コマンドを使用して、キーバインドを再定義したり、新しいバインドを定義したりできます。key 引数は、単一の文字、^x という形式の 2 文字のシーケンス(C-x を意味します)、バックスラッシュの後に続く 8 進数(文字の ASCII コードを指定します)、またはバックスラッシュの後に続く 2 番目の文字(例: \^ または \\)です。引数は引用符で囲むこともできます。それ以上の引数が指定されていない場合、このキーに対する以前に確立されたバインドはすべて削除されます。command 引数は、このセクションにリストされている任意のコマンドにすることができます。
^ c オプションを使用してコマンドクラスが指定された場合、キーは指定されたクラスに対してバインドされます。command コマンドを使用してクラスをアクティブにします。コマンドクラスを使用して、複数のコマンドキーまたはマルチ文字バインドを作成できます。
いくつかの例を次に示します。
bind ' ' windows
bind ^k
bind k
bind K kill
bind ^f screen telnet foobar
bind \033 screen -ln -t root -h 1000 9 su
これは、スペースキーを、通常 C-a C-w で呼び出されるコマンドを表示するコマンドにバインドします(したがって、C-a C-w で呼び出されるコマンドは、C-a スペースとしても利用できるようになります)。次の 3 行は、C-a C-k と C-a k からのデフォルトの kill バインドを削除します。次に、C-a K を kill コマンドにバインドします。次に、C-f を、TELNET 接続で foobar に接続するウィンドウを作成するコマンドにバインドし、エスケープを、別名 root の非ログインウィンドウをスロット #9 に作成し、1000 行のスクロールバックバッファを持つスーパーユーザーシェルを持つコマンドにバインドします。
bind -c demo1 0 select 10
bind -c demo1 1 select 11
bind -c demo1 2 select 12
bindkey "^B" command -c demo1
これにより、C-b 0 はウィンドウ 10 を選択し、C-b 1 はウィンドウ 11 を選択し、C-b 2 はウィンドウ 12 を選択します。
bind -c demo2 0 select 10
bind -c demo2 1 select 11
bind -c demo2 2 select 12
bind - command -c demo2
これにより、C-a - 0 はウィンドウ 10 を選択し、C-a - 1 はウィンドウ 11 を選択し、C-a - 2 はウィンドウ 12 を選択します。
`bindkey [-d] [-m] [-a] [[-k|-t] string [cmd-args]]`
このコマンドは、screen の入力変換テーブルを管理します。各テーブルのエントリは、特定の文字シーケンスに遭遇した場合に screen がどのように反応するかを伝えます。3 つのテーブルがあります。1 つはユーザーがプログラムしたアクション用、1 つはターミナルエミュレーションに使用されるデフォルトのアクション用、もう 1 つは screen のカーソル移動用のコピーモード用です。INPUT TRANSLATION セクションには、デフォルトのキーバインドがリストされています。
-d オプションが指定された場合、bindkey はデフォルトテーブルを変更します。-m はコピーモードテーブルを変更し、どちらのオプションも指定されていない場合は、ユーザーテーブルが選択されます。引数文字列は、アクションがバインドされる文字のシーケンスです。これは、固定文字列または termcap キーボード機能名(-k オプションで選択可能)のいずれかです。
VT100 ターミナルの一部のキーは、アプリケーションモードがオンになっている場合に異なる文字列を送信します(例:カーソルキー)。これらのキーは、変換テーブルに 2 つのエントリがあります。-a オプションを指定することで、アプリケーションモードのエントリを選択できます。
-t オプションは、screen に文字間タイミングを行わないように指示します。termcap 機能が使用されている場合、タイミングをオフにすることはできません。
cmd は、任意の数の引数を伴う screen のコマンドのいずれかです。cmd が省略された場合、キーバインドはテーブルから削除されます。
キーバインドの例を次に示します。
bindkey -d
すべてのデフォルトのキーバインドを表示します。アプリケーションモードのエントリは、[A] でマークされます。
bindkey -k k1 select 1
「F1」キーでウィンドウ 1 に切り替えます。
bindkey -t foo stuff barfoo
「foo」を「barfoo」の省略形にします。タイムアウトが無効になっているため、ユーザーはゆっくりと入力できます。
bindkey "\024" mapdefault
このキーバインドは、^T をキーバインドのエスケープ文字にします。上記の stuff barfoo バインドを行った場合、^Tfoo と入力することで「foo」を入力できます。^T を挿入するには、キーを 2 回押す必要があります(つまり、エスケープバインドをエスケープします)。
bindkey -k F1 command
F11(F1 ではありません!)キーを、代替の screen エスケープ(^A に加えて)にします。
break [duration]
このウィンドウに duration * 0.25 秒のブレーク信号を送信します。POSIX 以外のシステムでは、時間間隔が完全な秒数に切り上げられる場合があります。これは、シェルプロセスではなく、文字デバイスがウィンドウにアタッチされている場合に最も役立ちます(「ウィンドウの種類」の章も参照)。ブレーク信号の最大期間は 15 秒です。
blanker
画面ブランクをアクティブにします。まず、画面がクリアされます。ブランクプログラムが定義されていない場合、カーソルがオフになります。そうでない場合は、プログラムが開始され、その出力が画面に書き込まれます。画面ブランクは、最初にキーが押されると終了し、読み取られたキーは破棄されます。
このコマンドは通常、アイドルコマンドと組み合わせて使用されます。
blankerprg [program-args]
画面ブランクプログラムを定義します。空の引数が与えられた場合、画面ブランクプログラムを無効にします。引数が与えられない場合、現在設定されている画面ブランクプログラムを表示します。
breaktype [tcsendbreak|TIOCSBRK|TCSBRK]
ターミナルデバイスのブレーク信号を生成する利用可能な方法の中から 1 つを選択します。このコマンドは、現在のウィンドウにのみ影響を与える必要があります。ただし、defbreaktype と同じように動作します。これは将来変更されます。パラメータなしで breaktype を呼び出すと、現在のウィンドウのブレークメソッドが表示されます。
bufferfile [exchange-file]
ペーストバッファを使用して読み書きするファイル名を変更します。 bufferfile コマンドにオプションの引数が指定されていない場合、デフォルト設定(/tmp/screen-exchange)が再アクティブ化されます。 以下の例は、システムのパスワードファイルを画面ウィンドウに貼り付けます(ペーストバッファにコピーが残ります)。
C-a : bufferfile /etc/passwd
C-a < C-a ]
C-a : bufferfile
bumpleft
ウィンドウリストの前のウィンドウと交換します。
bumpright
ウィンドウリストの次のウィンドウと交換します。
c1 [ on | off ]
c1コードの処理を変更します。 c1 on は、128~159の入力文字を制御文字として扱います。 この8ビットコードは通常、ESCの後に対応する7ビットコードが続くものと同じです。 デフォルト設定はc1コードを処理することであり、defc1コマンドで変更できます。 フォントのc1位置に利用可能な文字があるユーザーは、これをオフにすることを検討する場合があります。
caption [ top | bottom ] always|splitonly[string]
caption string [string]
このコマンドは、ウィンドウキャプションの表示を制御します。 通常、キャプションは、複数のウィンドウがディスプレイに表示される場合にのみ使用されます(分割画面モード)。 ただし、タイプをalwaysに設定すると、画面には1つのウィンドウのみが表示されてもキャプションが表示されます。 デフォルトはsplitonlyです。
2番目の形式は、キャプションに使用するテキストを変更します。 STRING ESCAPESの章にあるすべてのエスケープシーケンスを使用できます。 画面はデフォルトで%3n %tを使用します。
追加の引数として文字列を指定することで、両方の形式を組み合わせることができます。
キャプションは、ウィンドウの上部または下部に表示できます。 デフォルトは下部です。
charset set
現在の文字セットスロット指定と文字セットマッピングを変更します。 セットの最初の4文字は文字セット指定子として扱われ、5番目と6番目の文字は0~3の範囲で、GL/GR文字セットマッピングを設定します。 各位置に.を使用して、対応する文字セット/マッピングを変更しないことを示すことができます(セットは内部的に.文字を追加して6文字にパディングされます)。 新しいウィンドウには、エンコーディングコマンドがアクティブでない限り、デフォルトでBBBB02という文字セットが設定されます。 現在の設定は、infoコマンドで確認できます。
chdir [directory]
画面の現在のディレクトリを、指定されたディレクトリに変更します。引数なしで呼び出した場合は、ホームディレクトリ(環境変数$HOMEの値)に変更します。 .screenrc内またはC-a : screen ...またはC-a cを使用して作成されたすべてのウィンドウは、これをデフォルトのディレクトリとして使用します。 chdirコマンドがない場合、これは画面が呼び出されたディレクトリになります。
ハードコピーファイルとログファイルは常に、ウィンドウのデフォルトディレクトリに書き込まれます。プロセスの現在のディレクトリではありません。 このコマンドを.screenrcで複数回使用して、さまざまなウィンドウを異なるデフォルトディレクトリで開始できますが、最後のchdirの値は、対話的に作成するすべてのウィンドウに影響します。
cjkwidth [ on | off ]
あいまいな幅の文字を全角/半角として扱います。
clear
現在のウィンドウをクリアし、その画像をスクロールバックバッファに保存します。
collapse
ウィンドウリスト内のウィンドウを再配置し、ウィンドウ番号間のギャップを削除します。
colon [prefix]
^ screenrcコマンドラインを入力できます。キーバインディングの変更、特定のウィンドウの作成、設定の変更などに役立ちます。setキーワードはもう存在しません。通常、コマンドは現在のウィンドウに影響し、今後のウィンドウのデフォルト設定には影響しません。デフォルトを変更するには、def...で始まるコマンドを使用します。
これをscreenの「Exコマンドモード」と見なす場合、C-a esc(コピーモード)をその「Viコマンドモード」と見なすことができます。
command [ -c class"]"
このコマンドは、screenエスケープ文字(^A)を入力するのと同じ効果があります。おそらく、キーバインディングにのみ役立ちます。-cオプションが与えられた場合、指定されたコマンドクラスを選択します。bindおよびbindkeyも参照してください。
compacthist [ on | off ]
screenが、テキストを履歴バッファにスクロールアップするときに、末尾の空白行を抑制するかどうかを指定します。
console [ on | off ]
マシンのコンソール出力をウィンドウにキャプチャまたはキャプチャ解除します。注:/dev/consoleの所有者のみがコンソール出力をキャプチャできます。このコマンドは、マシンがTIOCCONSioctlをサポートしている場合にのみ使用できます。
copy
コピー/スクロールバックモードに入ります。これにより、現在のウィンドウとその履歴からテキストをペーストバッファにコピーできます。このモードでは、viのような「フルスクリーンエディター」がアクティブになります。エディターの移動キーは次のとおりです。
h、C-h、 カーソルを左に移動します。
左矢印
j、C-n、 カーソルを下に移動します。
下矢印
k、C-p、 カーソルを上に移動します。
上矢印
l ('el')、 カーソルを右に移動します。
右矢印
0(ゼロ)、C-a カーソルを最も左の列に移動します。
+ と - 1行上に、下に移動します。
H、M、L カーソルをウィンドウの上部、中央、または下部の最も左の列に移動します。
| 指定された絶対列に移動します。
g または home バッファーの先頭に移動します。
G または end 指定された絶対行に移動します(デフォルト:バッファーの末尾)。
% バッファーの指定されたパーセンテージにジャンプします。
^ または $ カーソルを最も左の列に移動し、行の最初または最後の空白以外の文字に移動します。
w、b、および e カーソルを単語ごとに移動します。
B、E カーソルをWORDごとに移動します(viの場合と同様)。
f/F、t/T カーソルをターゲットの次の出現箇所に前方/後方に移動します(例:「3fy」はカーソルを右側の3番目の「y」に移動します)。
; と、 最後のf/F/t/Tコマンドを同じ方向または逆方向に繰り返します。
C-e と C-y カーソル位置を保持しながら、表示を1行上に/下にスクロールします。
C-u と C-d カーソル位置を保持しながら、指定された量の行数だけ表示を上に/下にスクロールします(デフォルト:画面の半分)。
C-b と C-f で、表示を 1 画面分上にスクロール/下にスクロールします。
注:Emacs スタイルの移動キーは、`.screenrc` コマンドでカスタマイズできます(例:`markkeys "h=^B:l=^F:$=^E"`)。多重文字コードを使用するため、完全な Emacs スタイルのキーマップを簡単に作成する方法はありません。
いくつかのキーは、マークと置換操作を実行するように定義されています。
コピー範囲は、2 つのマークを設定することで指定されます。これらのマーク間のテキストが強調表示されます。
スペースまたは Enter キーを押すと、それぞれ最初のマークまたは 2 番目のマークが設定されます。`mousetrack` が `on` に設定されている場合、左クリックでもマークを設定できます。
Y と y を使用すると、1 行全体または行の先頭からマークできます。
W で正確に 1 つの単語をマークします。
これらのコマンドのいずれにも、数字を押すことで繰り返しの回数を指定できます。
.9 は繰り返しの回数として解釈されます。
例:C-a C-[ H 10 j 5 Y を実行すると、11 行から 15 行をペーストバッファーにコピーします。
次の検索キーが定義されています。
/ Vi スタイルの前方検索。
? Vi スタイルの後方検索。
C-a s Emacs スタイルの前方インクリメンタル検索。
C-r Emacs スタイルの逆方向インクリメンタル検索。
n 次の検索パターンを見つける。
N 前の検索パターンを見つける。
ただし、一部のキーは vi とは異なる動作をします。vi では、長方形のテキストブロックをヤンクすることはできませんが、screen では可能です。
c または C を押して、それぞれ左または右の余白を設定します。繰り返しの回数が指定されていない場合、どちらも現在のカーソルの位置をデフォルトとします。
例:かなり多くのテキストが表示されている画面で、これを試してみてください。
C-a [ M 20 l SPACE c 10 l 5 j C SPACE。
これにより、画面の中央の行に移動し、20 カラム左に移動し、ペーストバッファーの開始位置をマークし、左の余白を設定し、5 カラム下に移動し、右の余白を設定し、ペーストバッファーの終了位置をマークします。次に、これを試してみてください。
C-a [ M 20 l SPACE 10 l 5 j SPACE
そして、コピーされるテキストの量に違いがあることに注目してください。
J は行を結合します。4 つのモードの間で切り替わります。改行文字で区切られた行 (012)、シームレスに結合された行、単一の空白で区切られた行、およびコンマで区切られた行です。キャリッジリターン文字を改行文字の前に付加するには、`crlf on` を発行します。
v または V は、`:set numbers` を使用しているすべての vi ユーザー向けです。左の余白を 9 列と 1 列の間で切り替えます。
最後のスペースキーの前に a を押すと、追加モードに切り替わります。したがって、ペーストバッファーの内容は上書きされるのではなく、追加されます。
A は追加モードに切り替え、(2 番目の) マークを設定します。
> は、(2 番目の) マークを設定し、ペーストバッファーの内容を画面交換ファイル(デフォルトでは /tmp/screen-exchange)に書き込みます。これは、コピーモードが終了したときに発生します。
この例は、スクロールバックバッファー全体をそのファイルにダンプする方法を示しています。C-A [ g SPACE G $ >。
C-g は、現在の行と列に関する情報を提供します。
x または o は、最初のマークと現在のカーソル位置を交換します。これにより、すでに配置されたマークを調整できます。
C-l ('el') は、画面を再描画します。
@ は何も行いません。コピーモードを終了することさえありません。
ここに記述されていないキーはすべてコピーモードを終了します。
copy_reg [キー]
もはや存在しません。代わりに readreg を使用してください。
crlf [ on | off ]
これは、`C-a [` コマンドでテキスト領域をコピーするときに影響します。`on` に設定されている場合、
行は 2 文字のシーケンス CR - LF で区切られます。それ以外の場合(デフォルト)、LF のみが使用されます。パラメーターが指定されていない場合、状態が切り替わります。
debug [ on | off ]
実行時のデバッグをオンまたはオフにします。スクリーンが -DDEBUG オプションでコンパイルされている場合、デバッグが利用可能になり、デフォルトでオンになります。ただし、このコマンドは、メインの SCREEN プロセスからのデバッグ出力にのみ影響します。アタッチプロセスからのデバッグ出力は、一度オフにすると、それ以降はオフのままになります。
defc1 [ on | off ]
c1 コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。初期設定は`on`です。
defautonuke [ on | off ]
autonuke コマンドと同じですが、新しい表示のデフォルト設定が変更されます。初期設定は`off`です。AN ターミナル機能を使用すると、ターミナルタイプに依存させることができます。
defbce [ on | off ]
bce コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。初期設定は`off`です。
defbreaktype [tcsendbreak|TIOCSBRK|TCSBRK]
ターミナルデバイスにブレーク信号を生成するために使用できる方法から1つを選択します。優先される方法は tcsendbreak および TIOCSBRK です。3番目の TCSBRK は、ブレーク期間中にスクリーンセッション全体をブロックしますが、長いブレークを生成できる唯一の方法である場合があります。tcsendbreak および TIOCSBRK は、長いブレークを生成するかどうか、またはスパイク(たとえば、1秒あたり4つ)を生成するかどうかは、システムによって異なります。また、シリアルボードドライバーによっても異なります。パラメーターなしで defbreaktype を呼び出すと、現在の設定が表示されます。
defcharset [セット]
charset コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。引数なしで呼び出すと、現在のデフォルトが表示されます。
defdynamictitle [ on | off ]
新しいウィンドウで、適切なエスケープシーケンスが表示された場合にスクリーンがウィンドウタイトルを変更するかどうかのデフォルトの動作を設定します。「ウィンドウに名前を付ける」セクションも参照してください。
defescape xy
デフォルトのコマンド文字を設定します。これは escape と同じですが、マルチユーザーセッションでのみ役立ちます。マルチユーザーセッションでは、escape は呼び出しユーザーのコマンド文字を変更し、defescape は後で追加されるユーザーのデフォルトのコマンド文字を変更します。
defflow [ on | off | auto [ interrupt ]]
flow コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。初期設定は`auto`です。defflow auto interrupt を指定することは、コマンドラインオプション -fa および -i と同じです。
defgr [ on | off ]
gr コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。初期設定は`off`です。
defhstatus [ステータス]
すべての新しいウィンドウに設定されるハードステータス行は、ステータスに設定されます。このコマンドは、すべてのウィンドウのハードステータスにウィンドウ番号、タイトルなどを表示させるのに役立ちます。ステータスには、ウィンドウメッセージで使用できるものと同じディレクティブを含めることができますが、ディレクティブのエスケープ文字は % ではなく ^E(8進数 005)です。これは、プログラムによって生成されたハードステータス行の誤った解釈を防ぐためです。パラメーターのステータスが省略された場合、現在のデフォルト文字列が表示されます。デフォルトでは、新しいウィンドウのハードステータス行は空です。
defencoding enc
encoding コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。初期設定は、ターミナルから取得したエンコーディングです。
deflog [ on | off ]
log コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。初期設定は off です。
deflogin [ on | off ]
login コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。これは、配布時に on で初期化されます (config.h.in を参照)。
defmode mode
新しく割り当てられた擬似端末のモードは、mode に設定されます。mode は 8 進数です。defmode コマンドが指定されていない場合、モード 0622 が使用されます。
defmonitor [ on | off]
monitor コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。初期設定は off です。
defmousetrack [ on | off ]
mousetrack コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。初期設定は off です。
defnonblock [ on | off | numsecs]
nonblock コマンドと同じですが、表示のデフォルト設定が変更されます。初期設定は off です。
defobuflimit limit
obuflimit コマンドと同じですが、新しい表示のデフォルト設定が変更されます。初期設定は 256 バイトです。必要に応じて、特別な OL ターミナル機能をターミナルの種類に依存させることができます。
defscrollback num
scrollback コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。初期設定は 100 です。
defshell command
shell .screenrc コマンドの同義語です。そちらを参照してください。
defsilence [ on | off ]
silence コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。初期設定は off です。
defslowpaste msec
slowpaste コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。初期設定は 0 ミリ秒で、これは off を意味します。
defutf8 [ on | off ]
utf8 コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。screen が -U オプションで起動された場合は初期設定は on、それ以外の場合は off です。
defwrap [ on | off ]
wrap コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。最初は行の折り返しがオンになっており、wrap コマンド (C-a r) または "C-a : wrap on|off" を使用して切り替えることができます。
defwritelock [ on | off | auto ]
writelock コマンドと同じですが、新しいウィンドウのデフォルト設定が変更されます。最初は writelock はオフになります。
detach [-h]
screen セッションをデタッチします (ターミナルから切断し、バックグラウンドで実行します)。これにより、screen を起動したシェルに戻ります。デタッチされた screen は、-r オプションを使用して screen を起動することで再開できます (セクション コマンドラインオプションも参照)。-h オプションは、screen にターミナルへの接続を直ちに閉じる (ハングアップ) ように指示します。
dinfo
ターミナルがどのように認識されているかを表示します。色や代替文字セットなどの機能が動作しない理由を知りたい場合に便利です。
displays
現在接続されているすべてのユーザーフロントエンド(ディスプレイ)の表形式リストを表示します。これは、マルチユーザーセッションで最も役立ちます。次のキーは、ディスプレイリストで使用できます。
k、C-p、または上矢印キー 1行上に移動します。
j、C-n、または下矢印キー 1行下に移動します。
C-aまたはHomeキー 最初の行に移動します。
C-eまたはEndキー 最後の行に移動します。
C-uまたはC-d 半ページ上にまたは下に移動します。
C-bまたはC-f 1ページ上にまたは下に移動します。
マウスクリック 選択した行に移動します。mousetrackがオンになっている場合に利用できます。
スペースキー リストを更新します。
d そのディスプレイからデタッチします。
D そのディスプレイから強制デタッチします。
C-g、Enterキー、またはEscapeキー リストを終了します。
以下は、displaysがどのように表示されるかの例です。
xterm 80x42 jnweiger@/dev/ttyp4 0(m11) &rWx
facit 80x24 mlschroe@/dev/ttyhf nb 11(tcsh) rwx
xterm 80x42 jnhollma@/dev/ttyp5 0(m11) &R.x
(A) (B) (C) (D) (E) (F) (G) (H) (I)
凡例は次のとおりです。
(A) screenが認識するターミナルの種類。
(B) ディスプレイのジオメトリ(幅x高さ)。
(C) ディスプレイにログインしているユーザー名。
(D) ディスプレイまたはアタッチされたデバイスのデバイス名。
(E) ディスプレイがブロッキングモードまたはノンブロッキングモードであるか。利用可能なモードは、"nb"、"NB"、"Z<"、"Z>"、および"BL"です。
(F) ウィンドウ番号。
(G) ウィンドウの名前/タイトル。
(H) ウィンドウが共有されているかどうか。
(I) ウィンドウの権限。3つの文字で構成されます。
┌─────────────────────────────────────────────────────────┐
│ ウィンドウ権限インジケーター │
├──────────────────┬──────────────────┬───────────────────┤
│ 1文字目 │ 2文字目 │ 3文字目 │
├─────┬────────────┼─────┬────────────┼─────┬─────────────┤
│ - │読み取りなし │ - │書き込みなし │ - │実行なし │
├─────┼────────────┼─────┼────────────┼─────┼─────────────┤
│ r │読み取り │ w │書き込み │ x │実行 │
├─────┼────────────┼─────┼────────────┼─────┼─────────────┤
│ │ │ W │own wlock │ │ │
├─────┴────────────┴─────┴────────────┴─────┴─────────────┤
│外部のwlockによって抑制された権限のインジケーター │
├─────┬────────────┬─────┬────────────┬─────┬─────────────┤
│ R │読み取り専用 │ . │書き込みなし │ │ │
└─────┴────────────┴─────┴────────────┴─────┴─────────────┘
ディスプレイは、10文字以上の幅と5文字以上の高さを持つ領域に表示される必要があります。
`digraph [preset[unicode-value]]`
このコマンドは、ユーザーにダイグラフシーケンスの入力を促します。次にタイプされた2つの文字は、組み込みのテーブルで検索され、その結果の文字が入力ストリームに挿入されます。たとえば、ユーザーが「a"」と入力した場合、ウムラウト付きの「a」が挿入されます。最初の文字が「0」(ゼロ)の場合、screenはその後の文字(最大3つ)を8進数として扱います。オプションの引数presetは、ユーザー入力として扱われるため、ウムラウトキーを作成できます。たとえば、「bindkey ^K digraph '"'」というコマンドを使用すると、ユーザーはCTRL-K aと入力することでウムラウト付きの「a」を生成できます。
ゼロ以外のunicode-valueが指定された場合、指定されたpresetを持つ新しいダイグラフが作成されます。unicode-valueにゼロを指定すると、ダイグラフは削除されます。
`dumptermcap`
現在アクティブなウィンドウ用に最適化された仮想ターミナルのtermcapエントリを、ユーザーの$HOME/.screenディレクトリ(またはscreenがソケットを保存する場所。以下「FILES」セクションを参照)にある.termcapファイルに書き込みます。このtermcapエントリは、screenが各ウィンドウ用に設定する環境変数$TERMCAPの値と同じです。terminfoベースのシステムでは、captoinfoなどのコンバーターを実行してから、ticでエントリをコンパイルする必要があります。
`dynamictitle [ on | off ]`
ウィンドウが適切なエスケープシーケンスを受信したときに、screenがウィンドウタイトルを変更するかどうかを制御します。 「TITLES(ウィンドウの名前付け)」セクションも参照してください。
`echo [-n] message`
^ choコマンドは、screenユーザーを「その日のメッセージ」で悩ませるために使用できます。通常は、グローバルな/etc/screenrcにインストールされます。-nオプションを使用して、改行を抑制できます。sleepも参照してください。echoは、環境変数をオンラインで確認するためにも役立ちます。
`encoding enc [enc]`
screenに入力/出力をどのように解釈するかを伝えます。最初の引数は、現在のウィンドウのエンコーディングを設定します。各ウィンドウは異なるエンコーディングをエミュレートできます。オプションの2番目のパラメーターは、接続されたターミナルのエンコーディングを上書きします。screenはロケール設定を使用してエンコーディングを検出するため、通常は必要ありません。また、KJ termcapエントリを使用して、ターミナルの種類に応じてターミナルエンコーディングを選択する方法もあります。
サポートされているエンコーディングは、eucJP、SJIS、eucKR、eucCN、Big5、GBK、KOI8-R、KOI8-U、CP1251、UTF-8、 ISO8859-2、ISO8859-3、ISO8859-4、ISO8859-5、ISO8859-6、ISO8859-7、ISO8859-8、ISO8859-9、 ISO8859-10、ISO8859-15、jisです。
`defencoding` も参照してください。これは、新しいウィンドウのデフォルト設定を変更します。
`escape xy`
コマンド文字を x に、リテラルコマンド文字(メタコマンドをトリガーする文字)を生成する文字を y に設定します(-e オプションと同様)。各引数は、単一の文字、^x の形式の2文字のシーケンス(C-xを意味)、バックスラッシュの後に続く8進数(文字のASCIIコードを指定)、またはバックスラッシュの後に続く2番目の文字(\ や \\ など)のいずれかです。デフォルトは ^Aa です。
`eval command1[command2 ...]`
各引数を個別のコマンドとして解析および実行します。
`exec [[fdpat]newcommand [args ...]]`
現在のウィンドウで、Unixサブプロセス(実行可能パス newcommand およびそのオプションの引数で指定)を実行します。newcommand の stdin/stdout/stderr、最初にウィンドウで開始されたプロセス(「アプリケーションプロセス」と呼びます)、および screen 自体(ウィンドウ)間のデータの流れは、ファイル記述子パターン fdpat によって制御されます。このパターンは基本的に、newcommand の stdin、stdout、stderr を表す3文字のシーケンスです。ドット(.) は、ファイル記述子を screen に接続します。感嘆符(!) は、ファイル記述子をアプリケーションプロセスに接続します。コロン(:) は、両方を組み合わせます。ユーザー入力は、newcommand に送信されます。ただし、newcommand がアプリケーションプロセスの出力を受信する場合(fdpat の最初の文字が ! または : の場合)、またはパイプ記号 (|) が末尾の fdpat に追加された場合を除きます。
引数なしで exec を呼び出すと、このウィンドウで現在実行されているサブプロセスの名前と引数が表示されます。各ウィンドウで同時に実行できるサブプロセスは1つだけです。
サブプロセスが実行されている場合、kill コマンドはウィンドウのプロセスではなく、そのサブプロセスに影響します。
すべての21の可能な組み合わせを図で示した、doc/fdpat.ps というポストスクリプトファイルを参照してください。各図には、newcommand の3つのファイル記述子を表す数字 2、1、0 が表示されます。W とマークされたボックスは、アプリケーションプロセスがスレーブ側に存在する通常の pty です。P とマークされたボックスは、screen がマスター側に存在する2番目の pty です。
省略形:`exec` と `fdpat` の間、およびコマンドの間の空白は省略できます。末尾のドットと、ドットのみで構成される `fdpat` は省略できます。単純な `|` はパターン `!..|` と同義です。`exec` という単語は、ここで省略でき、常に `!` に置き換えることができます。
例:
exec ... /bin/sh
exec /bin/sh
!/bin/sh
同じウィンドウで別のシェルを起動し、元のシェルは実行状態を維持します。両方のシェルの出力が表示され、ユーザー入力は新しい /bin/sh に送信されます。
exec !.. stty 19200
exec ! stty 19200
!!stty 19200
ウィンドウの tty の速度を設定します。stty コマンドが標準出力に対して動作する場合、もう 1 つの ! を追加します。
exec !..| less
|less
これにより、ページャーがウィンドウ出力に追加されます。ユーザーがページャーを制御できるように、特別な文字 | が必要です。ページャーはウィンドウのプロセスの入力を受け取ります。これは、less が標準エラー出力 (標準入力が tty でない場合) をリッスンするためです。less の新しいバージョン (177 以降) はここでうまく機能しません。古い pg は機能します。
!:sed -n s/.*Error.*/\007/p
ウィンドウの出力をユーザーと sed コマンドの両方に送信します。sed は、ウィンドウ出力にベル文字 (8 進数 007) を挿入します。これにより、文字列 "Error" がウィンドウに表示されるたびに、「ウィンドウ x でベルが鳴りました」というメッセージが表示されます。
fit
ウィンドウのサイズを現在のリージョンのサイズに変更します。このコマンドが必要なのは、ウィンドウが複数回表示される場合に、screen がウィンドウのサイズを自動的に調整しないためです。
flow [ on | off | auto]
このウィンドウのフロー制御モードを設定します。パラメーターなしで実行すると、現在のウィンドウのフロー制御設定が「自動」から「オン」へ、そして「オフ」へと切り替わります。詳細については、「フロー制御」のセクションを参照してください。この動作は、将来のリリースで変更される可能性があります。デフォルトは defflow で設定されます。
focus [ next | prev | up | down | left | right | top | bottom ]
入力フォーカスを次のリージョンに移動します。これは循環的に行われ、最下部の左側のリージョンが選択されると、最上部の左側のリージョンが選択されます。オプションが指定されていない場合は、デフォルトで next になります。次に選択されるリージョンは、リージョンがどのようにレイヤー化されているかによって決定されます。通常、次のリージョンは同じレイヤーのリージョンになります。ただし、その次のリージョンに 1 つ以上のレイヤーが含まれている場合、最初に最上位のレイヤーの最初のリージョンが選択されます。現在のレイヤーの最後のリージョンにいる場合、next はフォーカスを下位レイヤーの次のリージョンに移動します (下位レイヤーが存在する場合)。Prev は逆方向にサイクルします。詳細については、split を参照してください。
残りのオプション (up、down、left、right、top、bottom) は、レイヤーに対してあまり影響を与えません。up オプションは、フォーカスを、現在のリージョンの左上隅に触れているリージョンに上に移動します。Down は、フォーカスを、現在のリージョンの左下隅に触れているリージョンに下に移動します。left オプションは、フォーカスを、現在のリージョンの左上隅に触れているリージョンに左に移動し、right は、フォーカスを、現在のリージョンの右上隅に触れているリージョンに右に移動します。一番左のリージョンから左に移動したり、一番右のリージョンから右に移動したりしても、何も起こりません。
`top` オプションは、画面の左上隅にある最初の領域にフォーカスを移動し、`bottom` オプションは、画面の右下隅にある領域に移動します。 最も上の領域から上に移動したり、最も下の領域から下に移動したりしても、何も起こりません。
便利なバインディングは(viのh、j、k、lのように) bind h focus left bind j focus down bind k focus up bind l focus right bind t focus top bind b focus bottom 注意:kは伝統的にkillコマンドにバインドされています。
focusminsize [ ( width|max|_ ) ( height|max|_ ) ]
これにより、現在選択されている領域が、指定された最小の幅と高さに自動的にリサイズされます。 他の周囲の領域も、それに合わせてリサイズされます。 この制約は、フォーカスコマンドが使用されるたびに適用されます。 リサイズコマンドを使用して、領域のどちらかの寸法を大きくすることができますが、focusminsizeで設定された値以下には小さくすることはできません。 アンダーバー `_` は、maxの同義語です。 幅と高さを `0 0` (ゼロゼロ) に設定すると、制約が解除され、手動でリサイズできるようになります。 パラメータを指定せずに使用すると、現在の最小幅と高さが表示されます。
gr [ on | off ]
GR文字セット切り替えをオン/オフにします。 screenが8ビットが設定された入力文字を検出すると、GRスロットに保存されている文字セットを使用し、8ビットを削除した状態で文字を出力します。 デフォルト(`defgr`も参照)では、GR切り替えは処理されません。これは、そうしないとISO88591文字セットが機能しないためです。
group [grouptitle]
現在のウィンドウが属するグループを変更または表示します。 ウィンドウは、宛先グループの名前を指定することで、異なるグループ間で移動できます。 グループ名を指定せずに使用すると、現在のグループのタイトルが表示されます。
hardcopy [-h] [file]
現在表示されている画像をファイルに書き出します。ファイル名を指定しない場合は、`hardcopy.n`という名前で、現在のウィンドウ番号nが付いたファイルがデフォルトのディレクトリに作成されます。 このファイルは、存在する場合は追加されるか、上書きされます。 以下の説明を参照してください。 `-h`オプションが指定された場合、スクロールバックバッファの内容もダンプします。
hardcopy_append [ on | off ]
`on`に設定されている場合、screenは、`C-a h`コマンドによって作成された`hardcopy.n`ファイルに追加します。そうでない場合は、これらのファイルは毎回上書きされます。 デフォルトは`off`です。
hardcopydir directory
hardcopyファイルが配置されるディレクトリを定義します。 設定されていない場合、hardcopyはscreenの現在の作業ディレクトリにダンプされます。
hardstatus [ on | off ]
hardstatus [ always ] firstline | lastline | message | ignore [ string ]
hardstatus string [ string ]
このコマンドは、端末のハードステータスラインの使用とエミュレーションを構成します。 最初の形式は、screenがハードウェアステータスラインを使用してメッセージを表示するかどうかを切り替えます。 フラグが`off`に設定されている場合、これらのメッセージは、表示行に逆色のオーバーレイとして表示されます。 デフォルト設定は`on`です。
2番目の形式は、端末にハードステータス行がない場合に、screenが何をするかを指示します(つまり、termcap/terminfo機能「hs」、「ts」、「fs」、および「ds」が設定されていない場合)。firstline/lastlineが使用されると、screenはディスプレイの最初/最後の行をハードステータス用に予約します。messageは、screenのメッセージングメカニズムを使用し、ignoreは、screenにハードステータスを絶対に表示しないように指示します。タイプ(例:alwayslastline)の先頭にalwaysという単語を付けると、screenは端末がハードステータスをサポートしている場合でも、そのタイプを使用します。
3番目の形式は、ハードステータス行の内容を指定します。「%h」はデフォルトの文字列として使用されます。これは、現在のウィンドウに保存されているハードステータス(ESC]0;<string>^GまたはESC_<string>ESC\によって設定可能)を表示します。STRING ESCAPESの章の脱字を含む、好きな文字列にカスタマイズできます。引数の文字列を省略すると、現在の文字列が表示されます。
2番目と3番目の形式を組み合わせて、文字列を別の引数として提供できます。
height [-w|-d] [lines [cols]]
ディスプレイの高さが指定された行数に設定されます。引数が指定されていない場合、24行と42行の表示の間で切り替わります。幅を指定して、両方の値を変更することもできます。-wオプションは、screenにディスプレイサイズを変更せずに、ウィンドウサイズのみを設定するように指示し、-dは逆です。
help[class]
厳密にはオンラインヘルプではありませんが、キーバインドをすべて表示するヘルプ画面を表示します。最初のページには、すべての内部コマンドとその現在のバインドが表示されます。その後のページには、カスタムコマンドが1つずつ表示されます。各ページを読み終わったらスペースキーを押すか、Returnキーを押して早期に終了します。他のすべての文字は無視されます。-cオプションが指定されている場合は、指定されたコマンドクラスにバインドされているすべてのコマンドを表示します。DEFAULT KEY BINDINGSセクションも参照してください。
history
通常、ユーザーは、以前のコマンドに簡単にアクセスできるシェルを使用します。たとえば、cshには、最後に実行されたコマンドを繰り返すためのコマンド「!!」があります。screenを使用すると、起動したコマンドを呼び出すための簡単な方法があります。単にそのコマンドの最初の文字を入力してから、`C-a 'を押すと、screenはそのプロンプト文字の左にあるカーソルの位置にある一致する前の行を検索します。この行は、このウィンドウの入力キューに貼り付けられます。したがって、粗いコマンド履歴(表示されているウィンドウとそのスクロールバックバッファーによって構成される)が作成されます。
hstatus status
ウィンドウのハードステータス行を文字列statusに変更します。
idle [timeout[cmd-args]]
指定された秒数の非アクティブ時間が経過した後に実行されるコマンドを設定します。このコマンドは通常、画面を消去するためのブランクコマンドになりますが、任意のscreenコマンドにすることができます。コマンドが指定されていない場合、タイムアウトのみが設定されます。タイムアウトをゼロ(または特殊なタイムアウトオフ)に設定すると、タイマーが無効になります。引数が指定されていない場合、現在の設定が表示されます。
ignorecase [ on | off ]
Screenに対し、検索時の文字の大文字と小文字を区別しないように指示します。デフォルトは`off'です。オプションなしで実行すると、ignorecaseの状態が切り替わります。
info
現在のウィンドウに関する情報をメッセージ行に表示します。カーソルの位置(1,1から始まる列、行)、ターミナルの幅と高さ、およびスクロールバックバッファーのサイズ(行数)を表示します。例:(80,24)+50。現在のウィンドウのXON/XOFFフロー制御の状態は、次のように表示されます(セクション「フロー制御」も参照してください)。
┌──────────┬──────────────────────────────────────────────────────────┐
│ +flow │ 自動フロー制御、現在オン。 │
├──────────┼──────────────────────────────────────────────────────────┤
│ -flow │ 自動フロー制御、現在オフ。 │
├──────────┼──────────────────────────────────────────────────────────┤
│ +(+)flow │ フロー制御が有効。自動制御と一致します。 │
├──────────┼──────────────────────────────────────────────────────────┤
│ -(+)flow │ フロー制御が無効。自動制御と一致しません。 │
├──────────┼──────────────────────────────────────────────────────────┤
│ +(-)flow │ フロー制御が有効。自動制御と一致しません。 │
├──────────┼──────────────────────────────────────────────────────────┤
│ -(-)flow │ フロー制御が無効。自動制御と一致します。 │
└──────────┴──────────────────────────────────────────────────────────┘
現在の行折り返し設定(`+wrap'は有効、`-wrap'は無効)も表示されます。フラグins、org、app、log、mon、またはnoredは、ウィンドウがそれぞれ挿入モード、オリジンモード、アプリケーションキーパッドモード、出力ロギング、アクティビティ監視、または部分的な再描画が有効になっている場合に表示されます。
現在アクティブな文字セット(G0、G1、G2、またはG3)と、角かっこで囲まれた現在のG0からG3に割り当てられているターミナル文字セットが表示されます。ウィンドウがUTF-8モードの場合、文字列UTF-8が表示されます。
ステータスラインの最後に、ウィンドウの種類に応じて追加のモードが表示されます(「ウィンドウの種類」の章も参照)。
端末エミュレータの状態マシンがデフォルト以外の状態にある場合、情報行は現在の状態を識別する文字列で始まります。
システム情報については、time コマンドを使用します。
ins_reg [key]
(廃止。代わりに `paste` を使用します。)
kill
現在のウィンドウを終了します。
^ xec コマンドが実行中の場合、それは終了されます。それ以外の場合、ウィンドウで実行されているプロセス(シェル)は HANGUP シグナルを受け取り、ウィンドウ構造が削除され、screen(ディスプレイ)は別のウィンドウに切り替わります。最後のウィンドウが破棄されると、screen は終了します。kill コマンドの実行後、screen は以前に表示されていたウィンドウに切り替わります。
注:Emacs ユーザーは、行を終了するときにこのコマンドを念頭に置いておく必要があります。screen のエスケープキーとして C-a を使用したり、`kill` コマンドを C-a K に再バインドしたりしないことをお勧めします。
lastmsg
メッセージ/ステータスラインの最後の内容を再表示します。メッセージが表示されたときに何かを入力している場合、メッセージはキーを押すと消えてしまうため(ターミナルにハードウェアのステータスラインがない場合)、便利です。詳細な調整については、msgwait および msgminwait コマンドを参照してください。
layout new [title]
新しいレイアウトを作成します。screen は 1 つのリージョンに変わり、空白のウィンドウに切り替わります。ここから、リージョンとリージョンに表示するウィンドウを、希望どおりに構築します。新しいレイアウトには、0 から始まる最小の利用可能な整数で番号が付けられます。必要に応じて、レイアウトにタイトルを付けることができます。タイトルが指定されていない場合、デフォルトのタイトルとして「layout」が使用されます。後で、layout title コマンドを使用してタイトルを変更できます。
layout remove [n|title]
指定されたレイアウトを削除します。番号またはタイトルを指定できます。どちらも指定しない場合、screen は現在のレイアウトを削除します。
レイアウトを削除しても、設定されたウィンドウやリージョンには影響しません。
layout next
次のレイアウトに切り替えます。
layout prev
前のレイアウトに切り替えます。
layout select [n|title]
目的のレイアウトを選択します。番号またはタイトルを指定できます。どちらも指定しない場合、screen はプロンプトを表示して、どのレイアウトが必要か尋ねます。利用可能なレイアウトを確認するには、layout show コマンドを使用します。
layout show
メッセージ行に、利用可能なレイアウトの番号とタイトルを一覧表示します。現在のレイアウトにはフラグが設定されます。
layout title [title]
現在のレイアウトのタイトルを変更または表示します。文字列を指定すると、その文字列がレイアウトの名前に使用されます。オプションを指定せずに実行すると、現在のタイトルと番号がメッセージ行に表示されます。
layout number [n]
現在のレイアウトの番号を変更または表示します。整数を指定すると、その整数がレイアウトの番号として使用されます。オプションを指定せずに実行すると、現在の番号とタイトルがメッセージ行に表示されます。
layout attach [title|:last]
再アタッチするレイアウトを変更または表示します。デフォルトは :last で、これは、切り離す直前に使用されていた最後のレイアウトに再アタッチするように screen に指示します。タイトルを指定すると、どのレイアウトが使用されていたかに関係なく、特定のレイアウトに再アタッチするように screen に指示できます。オプションなしで実行すると、再アタッチするレイアウトがメッセージ行に表示されます。
layout save [n|title]
現在のリージョンの配置を記憶します。使用すると、screen は、垂直および水平に分割されたリージョンの配置を記憶します。この配置は、screen セッションが再アタッチされたとき、または別のレイアウトから切り替わったときに復元されます。セッションが終了するか、screen プロセスが終了すると、レイアウトの配置は失われます。この場合、レイアウトダンプコマンドが役立ちます。数値またはタイトルを指定すると、screen は、特定のレイアウトの配置を記憶します。オプションなしで実行すると、現在のレイアウトが記憶されます。
リージョンの保存は、layout autosave コマンドを使用して自動的に行うことができます。
layout autosave [on | off]
レイアウトを自動的に保存する機能を変更または表示します。デフォルトは on で、これは、screen が切り離されたとき、または別のレイアウトに変更されたときに、リージョンとウィンドウの配置がその時点で記憶され、再アタッチ時に復元されることを意味します。autosave を off に設定すると、その配置は、layout save を使用した最後の手動保存、またはレイアウトが最初に作成されたときの単一リージョンと単一ウィンドウの状態にのみ復元されます。on または off を指定しない場合、現在のステータスがメッセージ行に表示されます。
layout dump [filename]
現在のレイアウトで実行された分割の順序をファイルに書き込みます。これは、現在のレイアウトで使用されているリージョンの順序を再作成するのに役立ちます。現在のレイアウトのみが記録されます。リージョンの順序は記録されますが、それらのリージョンのサイズや、どのウィンドウがどのリージョンに対応するかは記録されません。ファイル名を指定しない場合、デフォルトは layout-dump で、screen プロセスが開始されたディレクトリに保存されます。ファイルがすでに存在する場合、layout dump はそのファイルに追加します。例:
C-a : layout dump /home/user/.screenrc
は、レイアウトをユーザーの .screenrc ファイルに保存または追加します。
license
免責事項ページを表示します。これは、オプションなしで screen が起動されたときに実行され、通常は十分です。startup_message コマンドも参照してください。
lockscreen
このディスプレイをロックします。screenlock プログラムを呼び出します。screen は、このプログラムが終了するまでコマンドキーを受け入れません。一方、ウィンドウ内のプロセスは、ウィンドウが detached 状態にあるため、引き続き実行されます。screenlock プログラムは、環境変数 $LOCKPRG (screen が開始されたシェルで設定する必要がある) を通じて変更でき、ユーザーの uid と gid を使用して実行されます。
警告:他のシェルをロック解除したままにしていて、screen にパスワードを設定していない場合、ロックは無効になります。ロック解除されたシェルから簡単に再アタッチできます。この機能は、むしろ lockterminal と呼ばれるべきです。
log [on | off]
現在のウィンドウの出力をファイル screenlog.n に書き込み始めるか、書き込みを停止します。n は現在のウィンドウ番号です。このファイル名は、logfile コマンドで変更できます。引数が指定されていない場合、ロギングの状態が切り替えられます。セッションログは、ファイルがすでに存在する場合は、以前の内容に追加されます。現在の内容とスクロールバック履歴はセッションログに含まれません。デフォルトは off です。
logfile filename
logfile flush secs
ログファイルが使用する名前を定義します。デフォルトは screenlog.%n です。2 番目の形式は、screen がログファイルバッファーをファイルシステムにフラッシュするまでの秒数を変更します。デフォルト値は 10 秒です。
login [on | off]
現在のウィンドウのエントリを utmp データベースファイルに追加または削除します。これにより、ウィンドウが「ログインしている」状態が制御されます。引数が指定されていない場合、ウィンドウのログイン状態が切り替えられます。この切り替えに加えて、log in と log out のキーを割り当てるのが便利です。たとえば、bind I login on および bind O login off は、これらのキーを C-a I および C-a O にマッピングします。デフォルト設定(config.h.in 内)は、suid-root で実行される screen の場合は on にする必要があります。deflogin コマンドを使用して、新しいウィンドウのデフォルトのログイン状態を変更します。これらのコマンドは、screen が utmp サポートでコンパイルされている場合にのみ存在します。
logtstamp [on|off]
logtstamp after [secs]
logtstamp string
[string]
このコマンドは、screen のログファイルタイムスタンプメカニズムを制御します。タイムスタンプがオンになっている場合、screen は 2 分間の非アクティブ状態の後、ログファイルに現在の時間を含む文字列を追加します。出力が継続し、さらに 2 分以上経過した場合、2 番目のタイムスタンプが追加され、出力の再開が記録されます。2 番目の形式のコマンドを使用して、このタイムアウトを変更できます。3 番目の形式は、タイムスタンプ文字列をカスタマイズするために使用されます(デフォルトは -- %n:%t -- time-stamp -%M/%d/%y %c:%s --\n です)。
mapdefault
次の入力文字は、デフォルトの bindkey テーブルでのみ検索するように screen に指示します。bindkey も参照してください。
mapnotnext
mapdefault と同様ですが、デフォルトの bindkey テーブルでさえ検索しません。
maptimeout [timeout]
入力シーケンス検出のインター文字タイマーを、timeout ミリ秒に設定します。デフォルトのタイムアウトは 300ms です。引数なしで maptimeout を使用すると、現在の設定が表示されます。bindkey も参照してください。
markkeys string
これは、コピー/履歴モードで使用するキーマップを変更する方法です。文字列は、oldchar=newchar ペアで構成され、コロン (:) で区切られます。例: 文字列 B=^B:F=^F は、キー C-b と C-f を vi スタイルのバインドに変更します(ページを上にスクロール/下にスクロール)。これは、B と F のデフォルトのバインドです。markkeys h=^B:l=^F:$=^E コマンドは、emacs スタイルのバインドのモードを設定します。ターミナルがコピーモードを中止させる文字を送信する場合、このコマンドは、これらの文字を何もしないようにバインドすることで役立つ場合があります。何もしない文字は @ であり、次のように使用します: markkeys @=L=H。この例に示すように、複数のキーを 1 つのステートメントで 1 つの関数に割り当てることができます。
maxwin num
画面が作成する最大ウィンドウ数を設定します。すでに存在するウィンドウには影響しません。 ウィンドウが存在しない場合にのみ、この数を増やすことができます。
meta
現在のウィンドウの入力ストリームにコマンド文字(C-a)を挿入します。
monitor [ on | off ]
ウィンドウの活動監視を切り替えます。監視がオンになっている場合、対象のウィンドウがバックグラウンドに切り替えられると、最初の出力時にステータス行にアクティビティ通知メッセージが表示され、ウィンドウもウィンドウステータス表示に `@' マークされます。初期状態では、すべてのウィンドウで監視はオフになっています。
mousetrack [ on | off ]
このコマンドは、screenがマウスのクリックを監視するかどうかを決定します。このコマンドが有効になっている場合、さまざまな方法で分割された領域は、マウスで指し示して左クリックすることで選択できます。onまたはoffを指定せずに使用すると、現在の状態が表示されます。デフォルトの状態は、defmousetrackコマンドによって決定されます。
msgminwait sec
画面に新しいメッセージが表示されるまでの時間を定義します。現在メッセージが表示されている場合、この時間遅延が発生します。デフォルトは1秒です。
msgwait sec
他のアクティビティによって画面が中断されない場合に、メッセージが表示される時間を定義します。デフォルトは5秒です。
multiuser [ on | off ]
シングルユーザーモードとマルチユーザーモードを切り替えます。標準のscreen操作はシングルユーザーモードです。マルチユーザーモードでは、acladd、aclchg、aclgrp、およびacldelコマンドを使用して、他のユーザーがこのscreenセッションにアクセスできるように(およびアクセスできないように)することができます。
nethack [ on | off ]
screenで使用するエラーメッセージの種類を変更します。ゲームnethackに慣れている場合は、事実を少しぼかすものの、はるかに面白いメッセージであるnethackスタイルのメッセージを楽しむことができるでしょう。いずれにせよ、標準のメッセージもしばしば不明瞭になる傾向があります。
このオプションは、screenがNETHACKフラグを定義してコンパイルされた場合にのみ使用できます。デフォルト設定は、環境変数$NETHACKOPTIONSとファイル~/.nethackrcの存在によって決定されます。これらのいずれかが存在する場合、デフォルトはオンになります。
next
次のウィンドウに切り替えます。このコマンドを繰り返し使用すると、ウィンドウのリストを順番に切り替えることができます。
nonblock [ on | off | numsecs ]
ユーザーインターフェイス(ディスプレイ)が出力を受け付けなくなった場合に、screenがどのように処理するかを指示します。これは、ユーザーが^Sキーを押すか、TCP/モデム接続が切断されたもののハングアップが受信されない場合に発生する可能性があります。nonblockがオフ(デフォルト)の場合、screenはディスプレイが再起動して出力を受け付けるようになるまで待ちます。
^ onblockがオンの場合、screenはタイムアウトに達するまで待ちます(オンは1秒として扱われます)。ディスプレイがまだ文字を受信しない場合、screenはそれをブロックされたとみなし、ディスプレイへの文字の送信を停止します。ディスプレイがいつか文字の受信を再開した場合、screenはそのディスプレイのブロックを解除し、更新されたウィンドウの内容を再表示します。
number [[+|-]n]
現在のウィンドウの番号を変更します。指定された番号 n が別のウィンドウで使用されている場合、両方のウィンドウは番号を交換します。引数が指定されていない場合、現在のウィンドウの番号(およびタイトル)が表示されます。+ または - を使用すると、ウィンドウの番号が指定された相対量だけ変更されます。
obuflimit [limit]
出力バッファーに指定された制限よりも多くのバイトが含まれている場合、ウィンドウからそれ以上のデータは読み込まれません。デフォルト値は 256 です。高速な表示(xterm など)を使用している場合は、より高い値に設定できます。引数が指定されていない場合、現在の設定が表示されます。
only
現在のリージョン以外のすべてのリージョンを削除します。
other
以前に表示されていたウィンドウに切り替えます。このウィンドウが存在しない場合、other は next と同じ効果を持ちます。
partial [ on | off ]
ウィンドウを切り替えた後に、表示をリフレッシュするかどうか(redisplay と同様)を定義します。このコマンドは現在のウィンドウにのみ影響します。すべてのウィンドウにすぐに影響を与えるには、allpartial コマンドを使用します。デフォルトは off です。このデフォルトは固定されており、defpartial コマンドは現在ありません。
password [crypted_pw]
^ screenrc ファイルに暗号化されたパスワードを配置すると、誰かがデタッチされたセッションを再開しようとしたときに、screen はそれを要求します。これは、screen で特権プログラムを実行しており、他のユーザーが自分のユーザー ID を偽装してセッションを再アタッチすることを防ぎたい場合に役立ちます(つまり、スーパーユーザー)。暗号化されたパスワードが指定されていない場合、screen は 2 回パスワードの入力を促し、それをクリップボードに配置します。デフォルトは none で、これによりパスワードチェックが無効になります。
paste [registers [dest_reg]]
指定されたレジスタの内容(連結されたもの)を、現在のウィンドウの stdin キューに書き込みます。レジスタ . は、クリップボードとして扱われます。パラメーターが指定されていない場合、ユーザーは貼り付けるレジスタを 1 つ入力するように求められます。クリップボードには、copy、history、readbuf コマンドでコンテンツを埋めることができます。他のレジスタには、register、readreg、paste コマンドでコンテンツを埋めることができます。paste コマンドに 2 番目の引数を付けて呼び出すと、指定されたレジスタの内容が、名前付きの宛先レジスタに貼り付けられます。ウィンドウに貼り付けるのではなく、2 番目の引数として . を使用すると、表示のクリップボードが宛先になります。paste は、さまざまなリソースを使用します。2 番目の引数が指定されている場合は、現在のウィンドウは必要ありません。ソースの指定にレジスタ(クリップボードではない)のみが含まれている場合、表示(ターミナルがアタッチされている)は必要ありません。レジスタはグローバルリソースであるためです。クリップボードは、ユーザーごとに 1 つ存在します。
pastefont [ on | off ]
ペーストバッファにフォント情報を含めるように screen に指示します。デフォルトでは、これは行われません。このコマンドは、特に漢字のようなマルチキャラクターフォントの場合に役立ちます。
pow_break
ウィンドウのターミナルラインを再開し、割り込み信号を送信します。`break` を参照してください。
pow_detach
Power detach。detach とほぼ同じですが、screen の親プロセスにも HANGUP 信号を送信します。注意:screen がログインシェルから起動された場合、これはログアウトを引き起こします。
pow_detach_msg [メッセージ]
ここで指定されたメッセージは、`Power detach` が実行されるたびに表示されます。ログアウトメッセージの代わりに使用したり、ボーレートをリセットしたりできます。パラメータなしで使用すると、現在のメッセージが表示されます。
prev
番号が 1 つ小さいウィンドウに切り替えます。このコマンドは繰り返し使用することで、ウィンドウのリストを循環できます。
printcmd [コマンド]
cmd が空の文字列でない場合、screen はターミナル機能の po/pf を使用せず、代わりに ANSI 印刷シーケンス ESC [ 5 i を検知した場合は、その出力を cmd にパイプします。通常、これは lpr や printcmd などのコマンドです。printcmd をパラメータなしで使用すると、現在の設定が表示されます。ANSI シーケンス ESC [ 4 i は印刷を終了し、パイプを閉じます。
警告:このコマンドには注意が必要です!他のユーザーがターミナルへの書き込みアクセス権を持っている場合、それらは印刷コマンドを発行できます。
process [キー]
指定されたレジスタの内容を screen の入力キューに挿入します。引数が指定されていない場合、レジスタ名を入力するように求められます。テキストは、ユーザーがキーボードから入力したかのように解析されます。このコマンドを使用して、単一のキーに複数のアクションをバインドできます。
quit
すべてのウィンドウを終了し、screen を終了します。VT100 スタイルのターミナルでは、C-4 と C-\ のキーが同じであることに注意してください。これにより、デフォルトのバインドが危険になる可能性があります。C-a C-4 を入力してウィンドウ番号 4 を選択しないように注意してください。空の bind コマンド (bind '^\' など) を使用して、キーバインドを削除します。
readbuf [エンコーディング] [ファイル名]
指定されたファイルの内容をペーストバッファに読み込みます。-e オプションを使用して、ファイルのエンコーディングを screen に指示できます。ファイルが指定されていない場合、screen-exchange ファイルが使用されます。bufferfile コマンドも参照してください。
readreg [エンコーディング] [レジスタ [ファイル名]]
引数の数に応じて、次のいずれかの処理を行います。引数が 0 または 1 の場合、ペーストバッファの内容を指定されたレジスタに複製するか、プロンプトでレジスタを入力します。引数が 2 の場合、readbuf が screen-exchange ファイルをペーストバッファに読み込むのと同じように、指定されたファイルの内容をレジスタに読み込みます。-e オプションを使用して、ファイルのエンコーディングを screen に指示できます。次の例は、システムのパスワードファイルを screen ウィンドウに貼り付けます (レジスタ p にコピーを保持します)。
C-a : readreg p /etc/passwd
C-a : paste p
redisplay
現在のウィンドウを再表示します。部分的な再描画モードで完全に再表示する必要がある場合に役立ちます。
register [-eエンコーディング]キー文字列
指定された文字列を、指定されたキーのレジスタに保存します。文字列のエンコーディングは、-eオプションで指定できます。pasteコマンドも参照してください。
remove
現在のリージョンを削除します。リージョンが1つしかない場合は、何もしません。
removebuf
writebufおよびreadbufコマンドで使用される画面交換ファイルを解除します。
rendition [bell | monitor | silence | so] 属性 [色]
monitorまたはbellフラグがcaption、hardstatus、またはwindowlistに設定されているウィンドウのタイトルをscreenがレンダリングする方法を変更します。STRING ESCAPESの章を参照して、修飾子の構文を確認してください。monitorのデフォルトは現在=b(太字、アクティブカラー)、bellは=ub(下線、太字、アクティブカラー)、silenceは=uです。
reset
仮想端末を起動時の値にリセットします。アプリケーションによって、スクロール領域やグラフィックス文字セットなどの奇妙な設定が残っている場合に役立ちます。
resize [-h|-v|-b|-l|-p] [[+|-] n[%] |=|max|min|_|0]
現在のリージョンのサイズを変更します。スペースは、分割の順序に応じて、周囲のリージョンから削除または追加されます。サイズ変更に使用できるオプションは、`-h'(水平)、-v'(垂直)、-b'(両方)、-l'(レイヤーローカル)、-p'(垂直)です。水平方向のサイズ変更は、リージョンの幅にスペースを追加または削除し、垂直方向のサイズ変更は、高さにスペースを追加または削除し、両方のサイズ変更は、両方の次元にスペースを追加または削除します。ローカルと垂直は、水平と垂直に似ていますが、リージョンがどのように分割されたかを考慮します。リージョンの最後の分割が水平方向の場合、ローカルでのサイズ変更は垂直方向のサイズ変更のように機能します。リージョンの最後の分割が垂直方向の場合、ローカルでのサイズ変更は水平方向のサイズ変更のように機能します。垂直方向のサイズ変更は、ローカル方向のサイズ変更とは逆の方法で機能します。
オプションが指定されていない場合、デフォルトはローカルです。
サイズを変更する行数または列数を、いくつかの異なる方法で表現できます。数値nのみを指定すると、リージョンはその絶対量でサイズ変更されます。プラス+またはマイナス-を量に付けて、相対量を指定することもできます。たとえば、+n行を追加するか、-n行を削除します。サイズ変更は、パーセント記号%を付けて、絶対値または相対値のパーセントで表現することもできます。ゼロ0はminの同義語であり、アンダースコア_はmaxの同義語です。
いくつかの例を以下に示します。
resize +N
現在のリージョンをNだけ大きくします
resize -N
現在のリージョンをNだけ小さくします
resize N
現在のリージョンをNに設定します
resize 20%
現在のリージョンを元のサイズの20%に設定します
resize +20%
現在のリージョンを20%大きくします
resize -b =
すべてのウィンドウを均等にします
resize max
現在のリージョンを最大化します
resize min
現在のリージョンを最小化します
引数を指定しない場合、screenは現在のリージョンをどのようにサイズ変更するかを尋ねます。
リージョンが持つことができる最小サイズを制限する場合は、focusminsizeを参照してください。
screen [-opts] [n] [cmd [args]|//group]
新しいウィンドウを確立します。フロー制御オプション (-f、-fn、-fa)、タイトル(別名)オプション (-t)、ログインオプション (-l、-ln)、ターミナルタイプオプション (-T <term>)、全機能フラグ (-a)、スクロールバックオプション (-h <num>) は、各コマンドで指定できます。オプション (-M) は、このウィンドウの監視を有効にします。オプション (-L) は、このウィンドウの出力ロギングを有効にします。オプションの数値 n (範囲は 0..MAXWIN-1) が与えられた場合、新しいウィンドウにはウィンドウ番号 n が割り当てられます(または、この番号がすでに使用されている場合、次の使用可能な番号が割り当てられます)。screen の後にコマンドが指定されている場合、そのコマンド(指定された引数付き)は、新しいウィンドウで開始されます。そうでない場合は、シェルが作成されます。//group が指定された場合、他のウィンドウを内部に作成できるコンテナタイプのウィンドウが作成されます。
したがって、.screenrc に次の行が含まれている場合:
# .screenrc の例:
screen 1
screen -fn -t foobar -L 2 telnet foobar
^ creen は、シェルウィンドウ(ウィンドウ #1 内)と、TELNET 接続をマシン foobar に確立するウィンドウ(フロー制御なし、タイトルは foobar、ウィンドウ #2)を作成し、telnet セッションのログファイル (screenlog.2) を書き込みます。注意すべき点は、screen の以前のバージョンとは異なり、.screenrc ファイルに screen コマンドが含まれている場合、追加のデフォルトウィンドウは作成されないことです。初期化が完了すると、screen は .screenrc ファイル内の最後のウィンドウに切り替わるか、それがない場合は、デフォルトのウィンドウ #0 を開きます。
^ creen は、cu や telnet の一部の機能を組み込んでいます。また、[WINDOW TYPES] の章も参照してください。
^ crollback num\
現在のウィンドウのスクロールバックバッファーのサイズを num 行に設定します。デフォルトのスクロールバックは 100 行です。defscrollback コマンドと、現在の設定を確認するための info コマンドも参照してください。スクロールバックバッファー内のコンテンツにアクセスして使用するには、copy コマンドを使用します。
^ elect [WindowID]\
^ indowID で識別されるウィンドウに切り替えます。これは、ウィンドウタイトルのプレフィックス(英数字のウィンドウ名)またはウィンドウ番号にすることができます。パラメーターはオプションであり、省略すると、識別子がプロンプト表示されます。新しいウィンドウが確立されると、最初の使用可能な番号がそのウィンドウに割り当てられます。したがって、最初のウィンドウは select 0 でアクティブにすることができます。ウィンドウの数は、MAXWIN 構成パラメーター(デフォルトは 100)によって設定されますが、maxwin コマンドを使用して変更できます。2 つの特別な WindowID があります。- は内部の空のウィンドウを選択し、. は現在のウィンドウを選択します。後者は、screen の -X オプションで使用する場合に役立ちます。
^ essionname [name]\
現在のセッションの名前を変更します。screen -list では、名前がプロセス ID と共に表示されます。引数 name が省略された場合、このセッションの名前が表示されます。注意:既存のシェルでは、$STY 環境変数は古い名前を保持します。これにより混乱が生じる可能性があります。このコマンドの使用は一般的には推奨されません。新しいセッションに名前を付ける場合は、-S コマンドラインオプションを使用してください。デフォルトは、tty 名とホスト名から構築されます。
`setenv [var [string]]`
環境変数 var を string に設定します。var のみ指定した場合、ユーザーに値の入力を求められます。パラメーターが指定されていない場合、ユーザーに変数と値の両方の入力を求められます。環境は、後続でフォークされたすべてのシェルによって継承されます。
`setsid [ on | off ]`
通常、screen はウィンドウに対して異なるセッションとプロセスグループを使用します。setsid をオフにすると、この動作が無効になり、すべてのウィンドウが screen バックエンドプロセスと同じプロセスグループに配置されます。これによりジョブコントロールも中断されるため、注意が必要です。デフォルトはオンです。このコマンドはおそらくまれな状況でのみ役立ちます。
`shell command`
新しいシェルを作成するために使用するコマンドを設定します。これは、環境変数 $SHELL の値をオーバーライドします。tty エンハンサーを実行し、$SHELL に指定されたプログラムを実行させたい場合に役立ちます。コマンドが '-' 文字で始まる場合、シェルはログインシェルとして起動されます。通常のシェルは、ログインシェルとして起動されない場合、最小限の初期化しか行いません。たとえば、Bash は、ログインシェルとして起動されない場合、~/.bash_profile を読み込みません。
`shelltitle title`
起動時または C-A C-c コマンドで作成されたすべてのシェルのタイトルを設定します。タイトルの詳細については、「タイトルの命名」というセクションを参照してください。
`silence [ on | off | sec ]`
ウィンドウのサイレンス監視を切り替えます。サイレンスがオンになっている場合、対象のウィンドウがバックグラウンドに切り替えられると、指定された非アクティブ期間 (サイレンス) の後にステータスラインにサイレンス通知メッセージが表示されます。デフォルトのタイムアウトは、silencewait コマンドを使用して変更するか、on または off ではなく秒数を指定することで変更できます。サイレンスは、すべてのウィンドウに対して最初はオフになっています。
`silencewait sec`
サイレンス監視するすべてのウィンドウが、メッセージを表示する前に待機する時間を定義します。デフォルトは 30 秒です。
`sleep num`
このコマンドは、.screenrc ファイルの実行を num 秒間一時停止します。キーボード操作によってスリープが終了します。echo によって出力されたメッセージをユーザーが読むことができるようにするために使用できます。
`slowpaste msec`
ペースト (C-a ]) コマンドで現在のウィンドウにテキストを挿入する速度を定義します。slowpaste の値がゼロでない場合、テキストは文字ごとに書き込まれます。screen は、アプリケーションが入力処理できるように、各文字の書き込み後に msec ミリ秒の一時停止を行います。システムで大量のテキストをペーストするときにフロー制御の問題が発生する場合にのみ、slowpaste を使用してください。
`sort`
ウィンドウをウィンドウタイトルのアルファベット順にソートします。
`source file`
ファイル file からコマンドを読み込み、実行します。source コマンドは最大 10 回までネストできます。file が絶対パスではなく、screen がすでに source コマンドを処理している場合、新しいコマンドファイルを検索する際に、実行中の source コマンドファイルの親ディレクトリが、screen の現在のディレクトリの前に使用されます。
termcap/terminfo/termcapinfo コマンドは起動時と再アタッチ時にのみ有効であるため、効果を発揮させるには、デフォルトの screenrc ファイルからアクセスする必要があります。
sorendition [attr[color]]
このコマンドは非推奨です。代わりに "rendition so" を使用してください。
split[-v]
現在のリージョンを2つの新しいリージョンに分割します。ディスプレイ上のすべてのリージョンは、新しいリージョンにスペースを空けるようにサイズが調整されます。新しいリージョンには空白のウィンドウが表示されます。デフォルトでは、水平方向に分割され、新しいリージョンが上下に配置されます。-v を使用すると、垂直方向に分割され、新しいリージョンが左右に並んで表示されます。remove または only コマンドを使用してリージョンを削除します。focus コマンドを使用してリージョン間で切り替えます。
リージョンが以前に分割された方向とは逆方向に分割された場合(つまり、垂直方向から水平方向、または水平方向から垂直方向)、新しいレイヤーが作成されます。レイヤーは、同じ方向に分割されたリージョンをグループ化するために使用されます。通常、ユーザーはレイヤーを認識したり、気にする必要はありませんが、レイヤーは focus や resize などのコマンドの動作に影響を与えます。
現在の screen の実装では、垂直方向に分割されたリージョンでデータがスクロールされる速度が、そうでないリージョンよりも大幅に遅くなる可能性があります。cat や tail -f などのシステムコマンドを使用する必要がある場合は、この点を考慮する必要があります。
startup_message [ on | off ]
起動時に著作権表示を表示するかどうかを選択します。デフォルトは on です。
status [ top | up | down | bottom ] [ left | right ]
ステータスウィンドウはデフォルトで画面の左下隅にあります。このコマンドを使用すると、ステータスメッセージを画面の任意の隅に移動できます。top は up と同じで、down は bottom と同じです。
stuff [string]
文字列 string を現在のウィンドウの入力バッファーに挿入します。これは paste コマンドに似ていますが、オーバーヘッドがはるかに少なくなっています。パラメーターがない場合、screen は挿入する文字列をプロンプトで要求します。stuff コマンドを使用して、大きなバッファーを貼り付けることはできません。キーバインドに使用するのに最も適しています。bindkey も参照してください。
su [username [password [password2]]]
表示されているユーザーを置き換えます。コマンドは、省略されたパラメーターについてプロンプトを表示します。パラメーターとしてパスワードが指定されている場合、パスワードは暗号化されていない状態で指定する必要があります。最初のパスワードはシステムのパスワードデータベースと照合され、2番目のパスワードは acladd または password コマンドで設定された screen のパスワードと照合されます。su コマンドは、screen 管理者がマルチユーザー構成をテストする場合に役立つ場合があります。識別が失敗した場合、ユーザーは detach、license、version、help、および displays コマンドにアクセスできます。
suspend
screen を中断します。ウィンドウは detached 状態になります。この機能は、シェルがジョブ制御を実行できることに依存します。
term term
screen が開く各ウィンドウの環境では、$TERM 変数はデフォルトで screen に設定されます。ただし、ローカルの termcap または terminfo データベースに screen の説明がインストールされていない場合は、$TERM を -vt100 などに設定できます。これはあまり問題ありません。screen は VT100/ANSI 互換性があるためです。term コマンドの使用は、デフォルト以外の目的には推奨されません。たとえば、$TERM の特別な設定(例:vt100)を screen -T vt100 rlogin othermachine コマンドの次に使用する場合などです。デフォルトの設定を繰り返して設定およびリセットするのではなく、この方法を使用してください。
termcap term terminal-tweaks[window-tweaks]
terminfo term terminal-tweaks[window-tweaks]
termcapinfo term terminal-tweaks[window-tweaks]
このコマンドを使用すると、カスタム termcap エントリを作成する手間をかけずに、ターミナルの termcap エントリを変更できます。 さらに、必要に応じて、ウィンドウ用に生成される termcap をカスタマイズできます。 これらのコマンドは、ターミナル エミュレーターが起動した後に意味がないため、screenrc の起動ファイルに配置する必要があります。
システムで terminfo データベースを使用している場合は、screen は terminfo コマンドを理解します。このコマンドは、termcap コマンドと同じ効果を持ちます。 2 つの個別のコマンドが提供されているのは、パラメータ補間 (%) が必要な場合など、微妙な構文の違いがあるためです。 termcap 名の機能は、terminfo コマンドで使用する必要があります。
多くの場合は、引数が terminfo と termcap の両方の構文で有効である場合、termcapinfo コマンドを使用できます。これは、同じ引数を持つ termcap コマンドと terminfo コマンドのペアの単なる省略形です。
最初の引数は、この定義の影響を受けるターミナルを指定します。 | で区切って複数のターミナル名を指定できます。 * を使用してすべてのターミナルに一致させ、vt* を使用して vt で始まるすべてのターミナルに一致させます。
各調整引数には、適切な termcap エントリの先頭に挿入される 1 つ以上の termcap 定義が含まれます。これにより、termcap エントリが拡張または既存の値が上書きされます。 各定義は : で区切られます。 最初の調整はターミナルの termcap を変更し、ターミナルが特定の機能を実行するために使用する定義が含まれます。 null 文字列を指定して、この値を変更しないようにすることができます (例: ``)。 2 番目 (オプション) の調整は、すべてのウィンドウ termcap を変更し、screen が理解できる定義 (仮想ターミナル セクションを参照) を含める必要があります。
いくつかの例:
termcap xterm* LP:hs@
^ term で始まるすべてのターミナルは、最後の画面位置を更新できるファーム オートマージン (LP) を持つことを screen に伝えますが、実際にはステータス行はありません ( hs の後ろに @ を追加してエントリをオフにします)。 vt で始まるすべてのターミナル名について、termcap コマンドを指定しない限り、LP を想定していることに注意してください。
termcap vt* LP
termcap vt102|vt220 Z0=\E[?3h:Z1=\E[?3l
^ t で始まるすべてのターミナルについて、ファームマージン機能 LP を指定し、2 番目の行には、VT102 または VT220 の場合、132 文字/行モードに切り替えるエスケープシーケンス (Z0) と、そのモードから切り替えるエスケープシーケンス (Z1) を追加します。 (幅を変更するコマンドを使用するには、termcap に Z0 と Z1 を指定する必要があります)。
termcap vt100 "" l0=PF1:l1=PF2:l2=PF3:l3=PF4
これは、vt100ターミナルのtermcapを変更せずに、各ウィンドウのtermcapエントリにファンクションキーラベルを追加します。
termcap h19|z19 am@:im=\E@:ei=\EO dc=\E[P
h19またはz19のtermcapを取り、自動マージン(am@)をオフにし、挿入モード(im)と終了挿入(ei)機能を有効にします(im文字列の@は=の後に続くため、文字列の一部です)。ターミナルのtermcapにimとeiの定義を追加すると、screenは各ウィンドウのtermcapで文字挿入機能を自動的に広告するようになります。また、各ウィンドウにdelete-character機能(dc)がtermcapに追加され、screenはこれをターミナルに対する行更新に変換します(文字削除をサポートしていないと仮定します)。
各ウィンドウのtermcapエントリを完全に指定する場合は、代わりにscreenを実行する前に$SCREENCAP変数を設定する必要があります。このマニュアルの「バーチャルターミナル」に関する説明と、termcap(5)のマニュアルページを参照してください。
time [string]
メッセージ行を使用して、時刻、ホスト名、および1分、5分、15分の平均負荷を表示します(システムで利用可能な場合)。ウィンドウ固有の情報については、infoを使用してください。
文字列が指定された場合、STRING ESCAPESの章で説明されているように、時刻レポートの形式が変更されます。screenはデフォルトで「%c:%s %M %d %H%? %l%?」を使用します。
title [windowtitle]
現在のウィンドウの名前をwindowtitleに設定します。名前が指定されていない場合、screenは名前の入力を求めます。このコマンドは、以前のリリースではakaと呼ばれていました。
unbindall
すべてのバインディングを解除します。これは、screenが分離機能のみに使用される場合に役立ちます。たとえば、コンソールアプリケーションをデーモンとして実行する場合です。何らかの理由で、これ以降コマンドをバインドする必要がある場合は、「screen -X」を使用します。
unsetenv var
環境変数を削除します。
utf8 [ on | off [ on | off ]]
現在のウィンドウで使用されるエンコーディングを変更します。utf8が有効になっている場合、ウィンドウに送信される文字列はUTF-8エンコードされ、その逆も行われます。パラメータを省略すると、設定が切り替わります。2番目のパラメータが与えられた場合、ディスプレイのエンコーディングも変更されます(これはscreenの-Uオプションを使用して行う方が適切です)。また、defutf8は新しいウィンドウのデフォルト設定を変更します。
vbell [ on | off ]
このウィンドウの視覚ベル設定を設定します。パラメータを省略すると、設定が切り替わります。vbellがオンになっているが、ターミナルが視覚ベルをサポートしていない場合、ベル文字(^G)を受信すると、ステータス行にvbell-messageが表示されます。ターミナルの視覚ベルのサポートは、termcap変数vb(terminfo:flash)によって定義されます。
デフォルトでは、vbell はオフになっているため、音声ベルが使用されます。 bell_msg も参照してください。
vbell_msg [メッセージ]
ウィンドウがベル文字 (^G) を受信し、vbell がオンに設定されているが、端末が視覚ベルをサポートしていない場合に、ステータスラインにメッセージを表示します。デフォルトのメッセージは「Wuff, Wuff!!」です。パラメータなしで呼び出すと、現在のメッセージが表示されます。
vbellwait 秒
画面の視覚ベルメッセージが表示されるたびに、秒単位で遅延を設定します。デフォルトは 1 秒です。
verbose [ オン | オフ ]
verbose をオンにすると、ウィンドウが作成されたとき (またはゾンビ状態から復元されたとき) にコマンド名がエコーされます。デフォルトはオフです。パラメータなしで呼び出すと、現在の設定が表示されます。
version
現在のバージョンとコンパイル日をステータスラインに表示します。
wall メッセージ
すべてのディスプレイにメッセージを送信します。メッセージは端末のステータスラインに表示されます。
width [-w|-d] [cols [lines]]
ウィンドウの幅を 80 列と 132 列の間で切り替えるか、引数が指定された場合は cols 列に設定します。これには、端末と termcap エントリ Z0 および Z1 が必要です。詳細については、termcap コマンドを参照してください。また、-w オプションを指定すると、ディスプレイのサイズは変更せずにウィンドウのサイズのみを設定し、-d オプションを指定すると、その逆を行います。
windowlist [ -b ] [ -m ] [ -g ]
windowlist 文字列 [文字列]
windowlist タイトル [タイトル]
視覚的なウィンドウ選択のために、すべてのウィンドウを表形式で表示します。screen がウィンドウグループ内にあった場合、screen はグループから抜け出し、そのグループ内のウィンドウを表示します。-b オプションが指定された場合、screen は最初にブランクウィンドウに切り替えてからリストを表示するため、現在のウィンドウも選択できるようになります。-m オプションは、ウィンドウの順序を変更します。screen はウィンドウ番号でソートする代わりに、内部の最も最近使用されたリストを使用します。-g オプションは、そのレベルおよびそれ以下のレベルのグループ内のウィンドウを表示します。
次のキーは、windowlist 内でのナビゲーションに使用されます。
k、C-p、または上矢印 1 行上に移動します。
j、C-n、または下矢印 1 行下に移動します。
C-g または Esc windowlist を終了します。
C-a または Home 最初の行に移動します。
C-e または End 最後の行に移動します。
C-u または C-d 半ページ上にまたは下に移動します。
C-b または C-f 1 ページ上にまたは下に移動します。
.9 数字キーを使用して、選択した行に移動します。
マウスクリック 選択した行に移動します。mousetrack がオンの場合に利用可能です。
/ 検索します。
n 前方方向に検索を繰り返します。
N 後方方向に検索を繰り返します。
m MRU を切り替えます。
g グループのネストを切り替えます。
a すべてのウィンドウを表示します。
C-h または Backspace グループから戻ります。
, 前のウィンドウとの番号を切り替えます。
. 次のウィンドウとの番号を切り替えます。
K そのウィンドウを終了します。
スペースまたはEnterキー そのウィンドウを選択します。
テーブルの形式は、文字列とタイトルオプションを使用して変更できます。タイトルはテーブルのヘッダーとして表示され、行は文字列設定を使用して作成されます。デフォルト設定は、タイトルに「Num Name%=Flags」、行に「%3n %t%=%f」です。詳細については、「文字列エスケープ」の章を参照してください(例:カラー設定)。
ウィンドウリストには、少なくとも10文字幅、6文字高さの領域サイズが必要です。
windows [ string ]
メッセージ行を使用して、すべてのウィンドウのリストを表示します。各ウィンドウは番号と、ウィンドウで開始されたプロセスの名前(またはタイトル)でリスト表示されます。現在のウィンドウには*、前のウィンドウには-、ログインしているすべてのウィンドウには$、バックグラウンドウィンドウでベルが鳴った場合は!、バックグラウンドウィンドウで監視対象であり、アクティビティが発生した場合は@、出力ロギングが有効になっているウィンドウには(L)、他のユーザーが使用しているウィンドウには&、ゾンビ状態のウィンドウにはZが付加されます。このリストが端末のステータス行に収まらない場合、現在のウィンドウ周辺の部分のみが表示されます。オプションの文字列パラメータは、文字列エスケープの形式に従います。文字列パラメータが渡された場合、出力サイズは無制限になります。パラメータなしのデフォルトコマンドは、1024バイトに制限されます。
wrap [ on | off ]
現在のウィンドウの行折り返し設定を設定します。行折り返しがオンの場合、行の最後の列で連続する2番目の印刷可能な文字が出力されると、次の行の先頭に折り返されます。さらに、バックスペース(^H)も左マージンを通過して前の行に折り返します。デフォルトはonです。オプションなしでコマンドを実行すると、折り返し状態が切り替わります。
writebuf [-e encoding] [filename]
ペーストバッファの内容を指定されたファイルに書き込みます。ファイルが指定されていない場合、パブリックアクセス可能なスクリーン交換ファイルに書き込みます。これは、同じホスト上のスクリーンユーザー間の基本的な通信手段です。エンコーディングが指定された場合、ペーストバッファは指定されたエンコーディングにリアルタイムで再エンコードされます。ファイル名はbufferfileコマンドで設定でき、デフォルトは/tmp/screen-exchangeです。
writelock [ on | off | auto]
アクセス制御リストに加えて、すべてのユーザーが同じウィンドウに同時に書き込めるわけではありません。デフォルトでは、writelockはautoモードになっており、特定のウィンドウに最初に切り替えたユーザーに排他的な入力権を付与します。そのユーザーがウィンドウを離れると、他のユーザーがwritelockを取得できます(自動的に)。現在のウィンドウのwritelockは、writelock offコマンドで無効になります。ユーザーがwritelock onコマンドを発行すると、他のウィンドウに切り替えても排他的な書き込み権を保持します。
xoff
xon
現在のウィンドウのstdinキューにCTRL-s / CTRL-q文字を挿入します。
zmodem [ off | auto | catch | pass ]
zmodem sendcmd [文字列]
zmodem recvcmd [文字列]
Screen は、zmodem リクエストを検出すると、2 つの異なるモードを理解します。それは、pass と catch です。モードが pass に設定されている場合、Screen は、送信の終了に達するまで、すべてのデータをアタッチ先に転送します。catch モードでは、Screen は zmodem エンドポイントとして機能し、対応する rz/sz コマンドを開始します。モードが auto に設定されている場合、Screen は、ウィンドウが tty (例: シリアルライン) の場合、catch を使用し、そうでない場合は pass を使用します。
catch モードで Screen が使用するテンプレートは、2 番目と 3 番目の形式で定義できます。
また、これは実験的な機能であることに注意してください。
zombie [キー[onerror]]
デフォルトでは、Screen ウィンドウは、ウィンドウのプロセス (例: シェル) が終了するとすぐに、ウィンドウリストから削除されます。2 つのキーの文字列を zombie コマンドに指定すると、「dead」ウィンドウはリストに残ります。kill コマンドを使用して、そのようなウィンドウを削除できます。dead ウィンドウで最初のキーを押すと、同じ効果が得られます。2 番目のキーを押すと、Screen はウィンドウを再起動しようとします。最初にウィンドウで実行されていたプロセスが再度起動されます。
パラメータなしで zombie を呼び出すと、zombie 設定がクリアされ、ウィンドウのプロセスが終了するとウィンドウが消えます。
zombie 設定は、すべてのウィンドウに対してグローバルに操作されるため、このコマンドは defzombie と呼ばれるべきですが、そうではありません。
オプションで、キーワード onerror をキーの後に配置できます。これにより、Screen はウィンドウで実行されているプロセスの終了ステータスを監視します。正常に終了した場合 (「0」)、ウィンドウは消えます。それ以外の終了値の場合、ウィンドウは zombie になります。
zombie_timeout[秒]
デフォルトでは、Screen ウィンドウは、ウィンドウのプロセス (例: シェル) が終了するとすぐに、ウィンドウリストから削除されます。zombie キーが定義されている場合 (上記 zombie コマンドと比較)、Screen が dead Screen ウィンドウを自動的に再接続しようとするタイミングを設定することもできます。
メッセージライン
Screen は、メッセージラインに情報メッセージやその他の診断情報を表示します。このラインは、画面の最下部に表示されるように分散されますが、コンパイル中に画面の上部に表示されるように定義することもできます。ターミナルに termcap で定義されたステータスラインがある場合、Screen はそれを使用してメッセージを表示します。そうでない場合は、現在の画面の 1 行が一時的に上書きされ、出力が一時的に中断されます。メッセージラインは、数秒の遅延後に自動的に削除されますが、(ステータスラインのないターミナルでは) 入力を開始することで、早期に削除することもできます。
メッセージライン機能は、現在のウィンドウで実行されているアプリケーションが ANSI プライバシーメッセージ制御シーケンスを使用して利用できます。たとえば、シェル内で次のようなことを試してください。
echo '<esc>^Hello world from window '$WINDOW'<esc>\\'
ここで、'<esc>' はエスケープ文字、'^' はリテラルの上矢印、'\' は単一のバックスラッシュになります。
ウィンドウの種類
Screen は 3 つの異なるウィンドウタイプを提供します。新しいウィンドウは、Screen の screen コマンドを使用して作成されます(「カスタマイズ」の章も参照)。screen コマンドの最初のパラメータは、作成するウィンドウのタイプを定義します。異なるウィンドウタイプはすべて、通常のタイプの特殊なケースです。これらは、Screen を 100 以上のウィンドウを備えたコンソールマルチプレクサとして効率的に使用できるように追加されました。
通常のウィンドウには、シェル(パラメータが指定されていない場合のデフォルト)またはシェルから実行できるその他のシステムコマンド(例:slogin など)が含まれます。
最初のパラメータとして tty(文字特殊デバイス)の名前(例:/dev/ttya)が指定された場合、ウィンドウは直接このデバイスに接続されます。このウィンドウタイプは、screen cu -l /dev/ttya と似ています。デバイスノードへの読み書きアクセスが必要であり、接続ラインをビジーとしてマークするために、ノードの排他的なオープンが試行されます。オプションのパラメータとして、stty(1) で使用される表記のカンマ区切りのフラグのリストを指定できます。
<ボーレート>
通常は 300、1200、9600、または 19200 です。これは、送信と受信の両方の速度に影響します。
cs8 または cs7
8 ビット(または 7 ビット)/バイトの送信を指定します。
cstopb または -cstopb
1 文字あたり 2 つのストップビット(- を使用すると 1 つ)を指定します。
parenb または -parenb
出力でパリティビットを生成し、入力でパリティビットを予期します。
parodd または -parodd
奇数パリティ(- を使用すると偶数パリティ)を設定します。
ixon または -ixon
ソフトウェアフロー制御(データ送信の CTRL-S / CTRL-Q)を有効または無効にします。
ixoff または -ixoff
データ受信のソフトウェアフロー制御を有効または無効にします。
istrip または -istrip
受信した各バイトの 8 番目のビットをクリア(または保持)します。
可能な限り多くのオプションを指定できます。指定されていないオプションの場合、ターミナルドライバはパラメータ値を決定します。これらの値はシステムに依存し、デフォルトであるか、以前の接続から保存された値である可能性があります。
tty ウィンドウの場合、info コマンドはステータス行にモデム制御ラインの一部を表示します。これには、'RTS'、'CTS'、'DTR'、'DSR'、'CD' などが含まれる場合があります。これは、利用可能な ioctl() およびシステムヘッダーファイル、およびシリアルボードの物理的な機能によって異なります。論理的にロー(非アクティブ)の信号は、名前の前に感嘆符(!)が付いて表示されます。それ以外の場合、信号は論理的にハイ(アクティブ)です。ハードウェアによってサポートされていないが、ioctl() インターフェイスで利用可能な信号は、通常はローで表示されます。
^ LOCAL ステータスビットが true の場合、モデム信号のセット全体は、中括弧({および})で囲まれます。CRTSCTS または TIOCSOFTCAR ビットが設定されている場合、信号 CTS または CD はそれぞれ括弧で囲んで表示されます。
tty ウィンドウの場合、break コマンドは、指定された時間、データ送信ライン(TxD)をローに設定します。これは、反対側でブレーク信号として解釈されることが期待されます。ブレークが発行された場合、データは送信されず、モデム制御ラインは変更されません。
最初のパラメータが //telnet の場合、2 番目のパラメータはホスト名であり、オプションの 3 番目のパラメータで TCP ポート番号(デフォルトは 10 進数の 23)を指定できます。Screen は、リモートホストでリッスンしているサーバーに接続し、telnet プロトコルを使用してそのサーバーと通信します。
telnet ウィンドウの場合、コマンド情報には、ステータス行の末尾にある角かっこ ([ と ]) の中に接続に関する詳細が表示されます。
b BINARY。接続はバイナリモードです。
e ECHO。ローカルエコーが無効になっています。
c SGA。接続は「文字モード」(デフォルトは「行モード」)です。
t TTYPE。ターミナルタイプはリモートホストによって要求されています。Screen は、特別な指示がない限り、名前 screen を送信します(`term` コマンドも参照)。
w NAWS。リモートサイトにウィンドウサイズの変更が通知されます。
f LFLOW。リモートホストはフロー制御情報を送信します。(現在は無視されます。)
追加のデバッグフラグは、x、t、および n(XDISPLOC、TSPEED、および NEWENV)です。
telnet ウィンドウの場合、break コマンドは、telnet コード IAC BREAK(10 進数 243)をリモートホストに送信します。
このウィンドウタイプは、Screen が ENABLE_TELNET オプションを定義してコンパイルされた場合にのみ使用できます。
文字列エスケープ
Screen は、現在の時刻などの情報をメッセージまたはファイル名に挿入するためのエスケープメカニズムを提供します。エスケープ文字は % であり、唯一の例外は、ウィンドウのハードステータス内では ^%(^E)が使用されることです。
サポートされているエスケープの完全なリストを次に示します。
% エスケープ文字自体
E エスケープ文字が押された場合に `%?` を true に設定します。
e エンコーディング
f ウィンドウのフラグ。ウィンドウのフラグについては、ウィンドウを参照してください。
F ウィンドウがフォーカスを持っている場合に `%?` を true に設定します。
h ウィンドウのハードステータス
H システムのホスト名
n ウィンドウ番号
P 現在の領域がコピー/ペーストモードにある場合に `%?` を true に設定します。
S セッション名
s ウィンドウサイズ
t ウィンドウタイトル
u このウィンドウ上の他のすべてのユーザー
w すべてのウィンドウ番号と名前。`-` 修飾子を使用すると、現在のウィンドウまで。`+` 修飾子を使用すると、現在のウィンドウの次のウィンドウから開始します。
W 現在のウィンドウを除くすべてのウィンドウ番号と名前
x このウィンドウで実行されているコマンド(引数を含む)
X このウィンドウで実行されているコマンド(引数を含まない)
? `%?` の次の `%?` の部分は、`%` エスケープ内の部分が空でない文字列に展開される場合にのみ表示されます。
: それ以外の場合は、`%?` の部分
= 文字列を指定されたディスプレイ幅に合わせて埋めます(TeX の `hfill` のように)。数値が指定された場合は、ウィンドウの幅のパーセンテージに合わせて埋めます。`0` 修飾子は、Screen に数値を絶対位置として扱うように指示します。`+` 修飾子を追加して、最後の絶対位置に対して相対的に埋めるか、`-` を使用して右端に対して相対的に埋めることができます。埋め込み位置が現在の位置より前にある場合、文字列が切り捨てられます。`L` 修飾子を追加すると、この動作を変更できます。
< '%=' と同じですが、空白で埋めるのではなく、単に切り捨てます。
> 現在のテキスト位置を、次の切り捨てのためにマークします。画面が切り捨てを行う必要がある場合、マークされた位置が、出力領域の指定されたパーセンテージに移動するように、可能な限り切り捨てを行います。(領域は、最後の絶対位置のパディングから始まり、切り捨て演算子によって指定された位置で終わります。) 'L' 修飾子は、画面に切り捨てられた部分に '...' を付けてマークするように指示します。
{ 次の } で終わる属性/カラー修飾子文字列。
` 「バッククォート」コマンドの出力で置き換えます。長さ修飾子は、コマンドを識別するために誤って使用されます。
'c' および 'C' エスケープは、'0' で修飾して、画面でスペースの代わりにゼロをフィル文字として使用できます。 '0' 修飾子は、'=' エスケープで絶対位置を使用することも意味します。 'n' および '=' エスケープは、長さ修飾子 (例: '%3n') を理解します。 'D' および 'M' は、'L' をプレフィックスにして、長い名前を生成できます。 'w' および 'W' に 'L' が付いている場合、ウィンドウフラグも表示されます。
属性/カラー修飾子は、属性またはカラー設定を変更するために使用されます。その形式は、[属性修飾子] [カラー記述] です。属性修飾子は、カラー記述と区別できるように、変更タイプインジケーターでプレフィックスを付ける必要があります。次の変更タイプがわかっています。
+ 指定されたセットを現在の属性に追加します
- 現在の属性から指定されたセットを削除します
! 現在の属性で指定されたセットを反転します
= 現在の属性を指定されたセットに変更します
属性セットは、16 進数または次の文字の組み合わせで指定できます。
d 薄暗くする
u 下線
b 太字
r 反転
s /目立たせる
B 点滅
色は、16 進数または、目的とする背景色と前景色の 2 つの文字でコード化されます (この順序で)。次の色がわかっています。
k 黒
r 赤
g 緑
y 黄
b 青
m マゼンタ
c シアン
w 白
d デフォルトの色
. 色を変更しない
文字の大文字バージョンは、明るい色を指定します。また、疑似色 'i' を使用して、明るさのみを設定し、色を変更せずに残すこともできます。
1 桁/文字のカラー記述は、現在の属性に応じて、前景または背景色として扱われます。逆転モードが設定されている場合、前景色の代わりに背景色が変更されます。これを好まない場合は、カラーの前に '..' を付けてください。2 文字のカラー記述についても、'..' でプレフィックスを付けると、同じ動作になります。
特殊なケースとして、%{-} は、最後の変更の前に設定されていた属性と色を復元します (つまり、カラー変更スタックから 1 つレベルポップします)。
例:
G 色を明るい緑に設定
+b r 太字の赤を使用
= yd すべての属性をクリアし、デフォルトの色で黄色の背景に書き込む。
%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<
現在のウィンドウを中心に、利用可能なウィンドウを表示し、利用可能な幅に切り捨てる。
現在のウィンドウは、青色の背景に白い文字で表示される。これは、`hardstatus alwayslastline`で使用できる。
%?%F%{.R.}%?%3n %t%? [%h]%?
ウィンドウ番号、タイトル、およびウィンドウのハードステータス(設定されている場合)を表示する。また、アクティブなウィンドウの場合は、赤い背景色を使用する。キャプション文字列として使用するのに便利。
フロー制御
各ウィンドウには、フロー制御設定があり、XON文字とXOFF文字(およびおそらく割り込み文字)に対するscreenの処理方法を決定する。フロー制御が無効になっている場合、screenはXON文字とXOFF文字を無視するため、ユーザーはこれらの文字を現在のプログラムに単純に入力として送信できる(たとえば、emacsエディターの場合)。ただし、通常のプログラムからの出力がXOFFに応答して一時停止するまでに時間がかかる。フロー制御が有効になっている場合、XON文字とXOFF文字を使用して、現在のウィンドウの出力をすぐに一時停止できる。これらの文字を現在のプログラムに送信することもできるが、適切な2文字のscreenコマンド(通常はC-a q(xon)およびC-a s(xoff))を使用する必要がある。xon / xoffコマンドは、ターミナルがこれらの文字をインターセプトする際に、C-sとC-qをタイプするのにも役立つ。
各ウィンドウには、-fオプションまたは.screenrcコマンドのdefflowを使用して、初期フロー制御値が設定される。デフォルトでは、ウィンドウは自動フロー切り替えに設定される。フロー制御は、C-a fにバインドされたflowコマンドを使用して、対話的に「固定でオン」、「固定でオフ」、および「自動」の3つの状態の間で切り替えることができる。
自動フロー切り替えモードは、TIOCPKTモード(rloginで使用されているモード)を使用してフロー制御を処理する。ttyドライバーがTIOCPKTをサポートしていない場合、screenはアプリケーションキーパッドの現在の設定に基づいて適切なモードを判断しようとする。キーパッドが有効になっている場合、フロー制御はオフになり、無効になっている場合は、フロー制御がオンになる。もちろん、必要に応じて手動でフロー制御を操作することもできる。
フロー制御を有効にして実行し、割り込みキー(通常はCc)を押しても、表示が停止するまでにさらに6〜8行スクロールされることに気付いた場合は、screenを割り込みオプション(.screenrcのflowコマンドに割り込みフラグを追加するか、-iコマンドラインオプションを使用する)で実行してみてください。これにより、screenがインターセプトしたプログラムから蓄積された出力がフラッシュされる。1つの欠点は、仮想ターミナルのメモリにフラッシュされていない出力のバージョンが含まれているため、まれに、出力にわずかな不正確さが発生する可能性があることである。たとえば、画面を切り替えて戻るか、C-a lで画面を更新すると、割り込みがオンになっていなかった場合に得られる出力のバージョンが表示される。また、フロー制御をオフにするか(または、フロー制御を必要に応じて自動的にオフにするように自動フローモードを使用する)、フロー制御が有効になっているときに、割り込み文字を入力として予期するプログラムを実行する必要がある場合がある。これは、仮想ターミナルから物理ターミナルへの出力をフロー制御が有効になっているときに割り込む可能性があるためである。これが発生した場合、C-a lで画面を簡単に更新すると、画面が復元される。各モードを試してみて、最も快適なモードを使用してください。
タイトル(ウィンドウの名前設定)
ウィンドウ表示(C-a wコマンドで表示)で各ウィンドウの名前をカスタマイズするには、いずれかのタイトルコマンドを使用します。通常、表示される名前は、ウィンドウで作成されたプログラムの実際のコマンド名です。ただし、同じ名前のプログラムを区別したり、ウィンドウの現在の状態を反映するように名前を動的に変更したりすることが役立つ場合があります。
すべてのシェルウィンドウのデフォルト名は、.screenrcファイルでshelltitleコマンドを使用して設定でき、他のすべてのウィンドウはscreenコマンドで作成されるため、-tオプションを使用して名前を設定できます。対話的に使用できるのは、title-stringエスケープシーケンス(<esc>kname<esc>)とtitleコマンド(C-a A)です。前者は、アプリケーションからウィンドウの名前をソフトウェア制御下で制御するために出力でき、後者は入力時に名前の入力を求めます。また、titleコマンドを使用して、事前に定義された名前をキーにバインドすることで、プロンプトを表示せずに名前をすばやく設定できます。このエスケープシーケンスによるタイトルの変更は、defdynamictitleおよびdynamictitleコマンドで制御できます。
最後に、screenにはシェル固有のヒューリスティックがあり、ウィンドウの名前をsearch|nameに設定し、プロンプトの一部としてnullのタイトルエスケープシーケンスを出力するように設定することで有効になります。search部分はプロンプトの末尾を検索する文字列を指定し、name部分はウィンドウのデフォルトのシェル名を指定します。名前が:で終わる場合、screenは現在のコマンド名を取得し、ウィンドウのシェル名の末尾に追加します(例:name:cmd)。そうでない場合、現在のコマンド名がシェル名を上書きします。
仕組みは次のとおりです。まず、シェルプロンプトを修正して、プロンプトの一部としてnullのタイトルエスケープシーケンス(<esc>k<esc>)を出力する必要があります。プロンプトの最後の部分は、search部分で指定した文字列と同じである必要があります。この設定を行うと、screenはtitle-escape-sequenceを使用して前のコマンド名をクリアし、次のコマンドの準備をします。次に、シェルから改行が受信されると、プロンプトの末尾の検索が行われます。見つかった場合、一致した文字列の後の最初の単語を取得し、コマンド名として使用します。コマンド名が!、%、または^のいずれかで始まる場合、screenは次の行の最初の単語(存在する場合)を優先して使用します。これは、cshユーザーがジョブ制御または履歴呼び出しコマンドを使用する場合に、より適切なコマンド名を取得するのに役立ちます。
以下に、.screenrc の例を示します。
screen -t top 2 nice top
この行を .screenrc に追加すると、nice コマンドのバージョンがウィンドウ 2 で、ウィンドウ名が top になって起動します。nice ではなく top になります。
shelltitle '> |csh'
screen 1
これらのコマンドは、指定された shelltitle でシェルを起動します。指定されたタイトルは自動タイトルであり、プロンプトと入力されたコマンドが次のようになると想定されます。
/usr/joe/src/dir> trn
(表示は > の後にコマンド名が表示されます)。ウィンドウのステータスは、コマンドが実行されている間に trn を表示し、完了すると csh に戻ります。
bind R screen -t '% |root:' su
このコマンドを .screenrc に含めると、キーシーケンス C-a R が su コマンドにバインドされ、自動タイトル名が root: になります。この自動タイトルが機能するためには、画面は次のようになっている必要があります。
% !em
emacs file.c
ここでは、ユーザーが csh ヒストリコマンド !em を入力し、以前に入力された emacs コマンドが実行されました。ウィンドウのステータスは、コマンドが実行されている間に root:emacs を表示し、完了すると単に root: に戻ります。
bind o title
bind E title ""
bind u title (unknown)
最初のバインドには引数が含まれていないため、C-a o を入力するとタイトルがプロンプト表示されます。2 番目のバインドは、自動タイトルの現在の設定をクリアします (C-a E)。3 番目のバインドは、現在のウィンドウのタイトルを (unknown) に設定します (C-a u)。
プロンプトに null タイトルエスケープシーケンスを追加する際には、一部のシェル (csh など) では、すべての非制御文字をプロンプトの長さの一部としてカウントすることに注意してください。これらの不可視文字の数が 8 の倍数でない場合、タブをバックスペースで上書きすると、表示が正しくなくなります。これを回避する 1 つの方法は、次のようなプロンプトを使用することです。
set prompt='^[[0000m^[k^[\% '
エスケープシーケンス <esc\>[0000m は、文字属性を正規化するだけでなく、不可視文字の長さをすべて 8 に切り上げます。Bash ユーザーは、PROMPT_COMMAND でエスケープシーケンスを出力することをお勧めします。
PROMPT_COMMAND='printf "\033k\033\134"'
(\ を出力するために、\134 を使用しました。これは、bash v1.04 のバグが原因です)。
仮想ターミナル
screen セッションの各ウィンドウは、いくつかの追加機能を持つ VT100 ターミナルをエミュレートします。VT100 エミュレーターはハードコードされており、他のターミナルタイプのエミュレーションはできません。通常、screen は VT100/ANSI 規格の可能な限り多くの部分をエミュレートしようとします。ただし、ターミナルに特定の機能が不足している場合、エミュレーションは完全ではない可能性があります。これらの場合、screen はアプリケーションにいくつかの機能が不足していることを伝える必要があります。これは、termcap を使用するマシンでは問題ありません。なぜなら、screen は $TERMCAP 変数を使用して標準の screen termcap をカスタマイズできるからです。
ただし、rlogin を使用して別のマシンに接続した場合、またはマシンが terminfo のみをサポートする場合、この方法は機能しません。このため、screen は対処する方法を提供します。
screen が自分自身のターミナル名を判断しようとするとき、最初に $TERM 変数の内容である <term> を含む screen.<term> というエントリを探します。そのようなエントリが存在しない場合、screen は screen (またはターミナルがワイド (132 列以上) の場合は screen-w) を試します。それでもこのエントリが見つからない場合は、代わりに vt100 を使用します。
このアイデアは、端末が重要な機能をサポートしていない場合(たとえば、文字の削除または EOS までのクリアなど)、screen.<dumbterm> という名前の新しい termcap/terminfo エントリを構築し、その中でこの機能が無効になっているようにすることです。このエントリをマシンにインストールすると、rlogin を使用しても、正しい termcap/terminfo エントリを保持できます。端末名は、すべての新しいウィンドウの $TERM 変数に格納されます。screen はまた、エミュレートされる仮想端末の機能を反映した $TERMCAP 変数も設定します。ただし、terminfo データベースを使用するマシンでは、この変数は効果がありません。さらに、各ウィンドウのウィンドウ番号が $WINDOW 変数に設定されます。
仮想端末によってサポートされる実際の機能セットは、物理端末によってサポートされる機能に依存します。たとえば、物理端末が下線モードをサポートしていない場合、screen はウィンドウの $TERMCAP 変数に \us' と \ue' 機能を含めません。ただし、端末が screen を実行するためには、スクロール、画面クリア、およびダイレクトカーソルアドレッシングという、いくつかの最低限の機能をサポートする必要があります(さらに、screen はハードコピー端末やオーバープリントを行う端末では実行されません)。
また、.screenrc コマンド内の termcap を使用するか、起動前に $SCREENCAP 変数を定義することで、screen によって使用される $TERMCAP の値をカスタマイズできます。後者の場合、その値が各ウィンドウの $TERMCAP 変数にそのままコピーされます。これは、完全な端末定義、または端末の screen(および/または screen-w)が定義されているファイル名にすることができます。
システムが terminfo データベースではなく termcap を使用している場合、screen は terminfo の .screenrc コマンドを尊重することに注意してください。
^ creen が呼び出された端末の termcap エントリにブール値の \G0' 機能が存在する場合、screen の端末エミュレーションは複数の文字セットをサポートします。これにより、アプリケーションは、たとえば VT100 グラフィックス文字セットや各国語文字セットを使用できます。次の ISO 2022 の制御関数がサポートされます。ロックシフト G0 (SI)、ロックシフト G1 (SO)、ロックシフト G2、ロックシフト G3、シングルシフト G2、およびシングルシフト G3。仮想端末が作成またはリセットされると、ASCII 文字セットが G0 から G3 として指定されます。\G0' 機能が存在する場合、screen は、存在する場合は \S0', `E0', および `C0' の機能を評価します。\S0' は、端末がグラフィックス文字セットを有効にして開始するために使用するシーケンスで、SI ではありません。\E0' は、対応する SO の代替です。\C0' は、半グラフィックスモード中に使用される文字ごとの変換文字列です。この文字列は、acsc terminfo 機能のように構築されます。
ターミナルの termcap エントリに po および pf 機能が存在する場合、スクリーンウィンドウで実行されているアプリケーションは、ターミナルのプリンターポートに出力を送信できます。これにより、ユーザーは、1つのウィンドウでアプリケーションを実行し、その出力をターミナルに接続されたプリンターに送信しながら、他のすべてのウィンドウをアクティブに保つことができます(プリンターポートは、出力の各チャンクに対して有効および無効になります)。副作用として、異なるウィンドウで実行されているプログラムは、同時にプリンターに出力を送信できます。プリンターに送信されたデータは、ウィンドウに表示されません。info コマンドは、プリンターがアクティブなときに PRIN で始まる行を表示します。
スクリーンは、すべてのウィンドウに対してハードステータス行を維持します。ウィンドウが選択されると、ディスプレイのハードステータスは、ウィンドウのハードステータス行と一致するように更新されます。ディスプレイにハードステータスがない場合、その行は標準のスクリーンメッセージとして表示されます。ハードステータス行は、ANSI アプリケーションプログラムコマンド(APC)を使用して変更できます。ESC_<文字列>ESC\。xterm ユーザー向けの利便性として、シーケンス ESC]0..2;<文字列>^G も受け入れられます。
一部の機能は、物理ターミナルで効率的に実装できる場合にのみ、仮想ターミナルの $TERMCAP 変数に配置されます。たとえば、dl(行の削除)は、ターミナルがそれ自体で行の削除またはスクロール領域をサポートする場合にのみ、$TERMCAP 変数に配置されます。これにより、セッションが別のターミナルで再開されたときに混乱が生じる可能性があります。これは、$TERMCAP の値を親プロセスによって変更できないためです。
「代替画面」機能は、デフォルトでは有効になっていません。.screenrc コマンドの altscreen を設定して、有効にします。
以下は、スクリーンによって認識される制御シーケンスのリストです。(V)および(A)は、それぞれ VT100 固有の機能および ANSI または ISO 固有の機能を意味します。
ESC E 次の行
ESC D インデックス
ESC M 逆インデックス
ESC H 水平タブの設定
ESC Z VT100 識別文字列の送信
ESC 7 (V) カーソルと属性の保存
ESC 8 (V) カーソルと属性の復元
ESC [s (A) カーソルと属性の保存
ESC [u (A) カーソルと属性の復元
ESC c 初期状態へのリセット
ESC g 視覚ベル
ESC Pn p カーソルの表示/非表示(97801)
Pn = 6 非表示
Pn = 7 表示
ESC = (V) アプリケーションキーパッドモード
ESC > (V) 数値キーパッドモード
ESC # 8 (V) 画面を E で埋める
ESC \ (A) 文字列の終端
ESC ^ (A) プライバシーメッセージ文字列(メッセージ行)
ESC ! グローバルメッセージ文字列(メッセージ行)
ESC k 別名定義文字列
ESC P (A) デバイス制御文字列。ホスト端末に解釈なしで直接文字列を出力します。
ESC _ (A) アプリケーションプログラムコマンド(ハードステータス)
ESC ] 0 ; string ^G (A) オペレーティングシステムコマンド(ハードステータス、xterm タイトルハック)
ESC ] 83 ; cmd ^G (A) スクリーンコマンドを実行します。これは、スクリーンにマルチユーザーサポートがコンパイルされている場合にのみ機能します。疑似ユーザー:window:を使用してアクセス制御リストを確認します。`addacl :window: -rwx #?` を使用して、必要なコマンドのみを許可し、権限を持たないユーザーを作成します。
Control-N (A) シフトロック G1 (SO)
Control-O (A) シフトロック G0 (SI)
ESC n (A) シフトロック G2
ESC o (A) シフトロック G3
ESC N (A) シングルシフト G2
ESC O (A) シングルシフト G3
ESC ( Pcs (A) 文字セットを G0 に指定します。
ESC ) Pcs (A) 文字セットを G1 に指定します。
ESC * Pcs (A) 文字セットを G2 に指定します。
ESC + Pcs (A) 文字セットを G3 に指定します。
ESC [ Pn ; Pn H 直接カーソルアドレス指定
ESC [ Pn ; Pn f 上記と同じ
ESC [ Pn J 画面の消去
Pn = None または 0 カーソルから画面の終端まで
Pn = 1 画面の先頭からカーソルまで
Pn = 2 画面全体
ESC [ Pn K 行の消去
Pn = None または 0 カーソルから行の終端まで
Pn = 1 行の先頭からカーソルまで
Pn = 2 行全体
ESC [ Pn X 文字の消去
ESC [ Pn A カーソルを上に移動
ESC [ Pn B カーソルを下に移動
ESC [ Pn C カーソルを右に移動
ESC [ Pn D カーソルを左に移動
ESC [ Pn E 次の行にカーソルを移動
ESC [ Pn F 前の行にカーソルを移動
ESC [ Pn G カーソルを水平方向に移動
ESC [ Pn ` 上記と同じ
ESC [ Pn d カーソルを垂直方向に移動
ESC [ Ps ;...; Ps m グラフィックレンディションの選択
Ps = None または 0 デフォルトレンディション
Ps = 1 太字
Ps = 2 (A) 薄い
Ps = 3 (A) スタンドアウトモード(ANSI:イタリック)
Ps = 4 下線
Ps = 5 点滅
Ps = 7 ネガティブイメージ
Ps = 22 (A) 通常強度
Ps = 23 (A) スタンドアウトモードオフ(ANSI:イタリックオフ)
Ps = 24 (A) 下線なし
Ps = 25 (A) 点滅なし
Ps = 27 (A) ポジティブイメージ
Ps = 30 (A) 前景 - 黒
Ps = 31 (A) 前景 - 赤
Ps = 32 (A) 前景 - 緑
Ps = 33 (A) 前景 - 黄
Ps = 34 (A) 前景 - 青
Ps = 35 (A) 背景色:マゼンタ
Ps = 36 (A) 背景色:シアン
Ps = 37 (A) 背景色:白
Ps = 39 (A) 背景色:デフォルト
Ps = 40 (A) 背景色:黒
Ps = ...
Ps = 49 (A) 背景色:デフォルト
ESC [ Pn g タブクリア
Pn = None or 0 現在の位置のタブをクリア
Pn = 3 すべてのタブをクリア
ESC [ Pn ; Pn r (V) スクロール領域を設定
ESC [ Pn I (A) 水平タブ
ESC [ Pn Z (A) バックスペース
ESC [ Pn L (A) 行を挿入
ESC [ Pn M (A) 行を削除
ESC [ Pn @ (A) 文字を挿入
ESC [ Pn P (A) 文字を削除
ESC [ Pn S スクロール領域を上にスクロール
ESC [ Pn T スクロール領域を下にスクロール
ESC [ Pn ^ 上記と同じ
ESC [ Ps ;...; Ps h モードを設定
ESC [ Ps ;...; Ps l モードをリセット
Ps = 4 (A) 挿入モード
Ps = 20 (A) 自動改行モード
Ps = 34 カーソルの通常表示
Ps = ?1 (V) アプリケーションカーソルキー
Ps = ?3 (V) ターミナルの幅を132列に変更
Ps = ?5 (V) 逆転ビデオ
Ps = ?6 (V) オリジンモード
Ps = ?7 (V) 折り返しモード
Ps = ?9 X10マウス追跡
Ps = ?25 (V) 可視カーソル
Ps = ?47 (V) 代替画面(古いxtermコード)
Ps = ?1000 (V) VT200マウス追跡
Ps = ?1047 代替画面(新しいxtermコード)
Ps = ?1049 代替画面(新しいxtermコード)
ESC [ 5 i (A) プリンターへのリレーを開始(ANSIメディアコピー)
ESC [ 4 i (A) プリンターへのリレーを停止(ANSIメディアコピー)
ESC [ 8 ; Ph ; Pw t ウィンドウのサイズを`Ph`行と`Pw`列にリサイズ(SunView専用)
ESC [ c VT100識別文字列を送信
ESC [ x ターミナルパラメーターレポートを送信
ESC [ > c VT220セカンダリデバイス属性文字列を送信
ESC [ 6 n カーソル位置レポートを送信
入力変換
VT100エミュレーションを完全に実行するには、画面は入力ストリーム内の文字シーケンスがユーザーのキーボードのキー押下によって生成されたものであり、VT100スタイルのエスケープシーケンスを挿入できることを検出する必要があります。 画面は、コマンドを任意の文字シーケンスにマッピングできるようにすることで、非常に柔軟な方法を提供します。 標準のVT100エミュレーションでは、コマンドは常にウィンドウの入力バッファーに文字列を挿入します(コマンドテーブルのコマンドも参照)。 キー押下によって生成されるシーケンスは、異なるターミナルタイプからの再接続後に変更できるため、コマンドをキーのタームキャップ名にバインドできます。 画面は、各再接続後に正しいバインドを挿入します。 詳細および例については、bindkeyコマンドを参照してください。
以下は、デフォルトのキーバインディングの表です。4番目は、キーボードがアプリケーションモードに切り替えられたときに実行されるコマンドです。
┌─────────────────┬──────────────┬──────────┬──────────┐
│ キー名 │ Termcap 名 │ コマンド │ アプリモード │
├─────────────────┼──────────────┼──────────┼──────────┤
│ カーソル上 │ ku │ \033[A │ \033OA │
├─────────────────┼──────────────┼──────────┼──────────┤
│ カーソル下 │ kd │ \033[B │ \033OB │
├─────────────────┼──────────────┼──────────┼──────────┤
│ カーソル右 │ kr │ \033[C │ \033OC │
├─────────────────┼──────────────┼──────────┼──────────┤
│ カーソル左 │ kl │ \033[D │ \033OD │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ファンクションキー 0 │ k0 │ \033[10~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ファンクションキー 1 │ k1 │ \033OP │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ファンクションキー 2 │ k2 │ \033OQ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ファンクションキー 3 │ k3 │ \033OR │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ファンクションキー 4 │ k4 │ \033OS │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ファンクションキー 5 │ k5 │ \033[15~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ファンクションキー 6 │ k6 │ \033[17~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ファンクションキー 7 │ k7 │ \033[18~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ファンクションキー 8 │ k8 │ \033[19~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ファンクションキー 9 │ k9 │ \033[20~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ファンクションキー 10 │ k; │ \033[21~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ファンクションキー 11 │ F1 │ \033[23~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ファンクションキー 12 │ F2 │ \033[24~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ホーム │ kh │ \033[1~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ エンド │ kH │ \033[4~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ 挿入 │ kI │ \033[2~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ 削除 │ kD │ \033[3~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ページアップ │ kP │ \033[5~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ ページダウン │ kN │ \033[6~ │ │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド 0 │ f0 │ 0 │ \033Op │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド 1 │ f1 │ 1 │ \033Oq │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド 2 │ f2 │ 2 │ \033Or │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド 3 │ f3 │ 3 │ \033Os │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド 4 │ f4 │ 4 │ \033Ot │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド 5 │ f5 │ 5 │ \033Ou │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド 6 │ f6 │ 6 │ \033Ov │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド 7 │ f7 │ 7 │ \033Ow │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド 8 │ f8 │ 8 │ \033Ox │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド 9 │ f9 │ 9 │ \033Oy │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド + │ f+ │ + │ \033Ok │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド - │ f- │ - │ \033Om │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド \* │ f\* │ \* │ \033Oj │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド / │ f/ │ / │ \033Oo │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド = │ fq │ = │ \033OX │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド . │ f. │ . │ \033On │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド , │ f, │ , │ \033Ol │
├─────────────────┼──────────────┼──────────┼──────────┤
│ キーパッド エンター │ fe │ \015 │ \033OM │
└─────────────────┴──────────────┴──────────┴──────────┘
特殊ターミナル機能
次の表には、screen で認識され、termcap(5) マニュアルには記載されていないすべてのターミナル機能が記述されています。これらの機能は、termcap エントリ(/etc/termcap 内)に配置するか、screenrc ファイルで termcap、terminfo、termcapinfo コマンドを使用して使用できます。これらの機能を terminfo データベースに配置することは、多くの場合不可能です。
LP (bool) ターミナルは VT100 スタイルのマージン(「マジックマージン」)をサポートします。ただし、この機能は廃止されており、screen では標準の 'xn' を使用します。
Z0 (str) 幅を 132 列に変更します。
Z1 (str) 幅を 80 列に変更します。
WS (str) ディスプレイのサイズを変更します。この機能は、目的の幅と高さを引数として受け取ります。SunView(tm) の例:'\E[8;%d;%dt'。
NF (bool) ターミナルはフロー制御を必要としません。^S と ^Q をアプリケーションに直接送信します。'nx' の反対の機能です。
G0 (bool) ターミナルは、ISO 2022 フォント選択シーケンスを処理できます。
S0 (str) 文字セット 'G0' を指定された文字セットに切り替えます。デフォルトは '\E(%.' です。
E0 (str) 文字セット 'G0' を標準の文字セットに戻します。デフォルトは '\E(B' です。
C0 (str) フォント '0' の変換テーブルとして文字列を使用します。詳細は、'ac' 機能を参照してください。
CS (str) カーソルキーをアプリケーションモードに切り替えます。
CE (str) カーソルキーを通常のモードに戻します。
AN (bool) 自動消去を有効にします。詳細は、'autonuke' コマンドを参照してください。
OL (num) 出力バッファーの制限を設定します。詳細は、'obuflimit' コマンドを参照してください。
KJ (str) ターミナルのエンコーディングを設定します。有効なエンコーディングについては、'encoding' コマンドを参照してください。
AF (str) ANSI 準拠の方法で、文字の前面色を変更します。この機能は、ほとんどの場合、'\E[3%dm' (terminfo マシンでは '\E[3%p1%dm') に設定されます。
AB (str) 'AF' と同じですが、背景色を変更します。
AX (bool) ANSI のデフォルトの前面/背景色 (\E[39m / \E[49m) を理解します。
XC (str) 現在のフォントに応じて、文字を文字列に変換する方法を記述します。詳細は、次のセクションを参照してください。
XT (bool) ターミナルは、特殊な xterm シーケンス (OSC、マウス追跡) を理解します。
C8 (bool) ターミナルは、高輝度色を表示するために、太字を使用する必要があります (例: Eterm)。
TF (bool) termcap/info エントリに不足している機能を追加します (デフォルトで設定されます)。
文字の変換
Screen には、現在のフォントとターミナルの種類に応じて、文字を任意の文字列に変換する強力なメカニズムがあります。一般的な標準文字セット (たとえば ISO8851-latin1) を使用して、より珍しい文字を複数の言語フォントページに分散させているターミナルでも動作するように、この機能を使用します。
構文:
XC=
波括弧内のものは、必要な回数だけ繰り返すことができます。
<charset-mapping> は、Screen に、フォント <designator> ('B': ASCII、'A': UK、'K': German など) の文字を文字列にどのようにマップするかを指示します。各 <mapping> は、1 つの文字がどの文字列に変換されるかを記述します。ほとんどの場合、コードは共通点が多くなるため、テンプレートメカニズムが使用されます (たとえば、別の文字セットに切り替える文字列)。<template> 内の各 '%' は、指定された文字と一緒に、<template-arg> で置き換えられます。文字列がまったく似ていない場合は、'%' をテンプレートとして使用し、<template-arg> に完全な文字列を配置します。実際の '%' を使用できるように、引用メカニズムが追加されました。'\ ' 文字は、特殊文字 '\'、'%'、および ',' を引用します。
例を示します。
termcap hp700 'XC=B\E(K%\E(B,\304[,\326\\\\,\334]'
これは、Screen に、ISOlatin1 (文字セット 'B') の大文字ウムラウト文字を、ドイツ語の文字セットを持つ hp700 ターミナルでどのように変換するかを指示します。'\304' は '\E(K[\E(B' に変換され、以下同様です。この行は、内部ルックアップテーブルを構築する前に、3 回 構文解析されるため、1 つの '\ ' を作成するには、多くの引用が必要です。
より多くのエミュレーションを可能にする拡張機能が追加されました。マッピングが引用されていない '%' 文字を変換する場合、Screen が対応する
この例では、拡張機能の1つの使用方法を示します。
termcap xterm 'XC=K%,%\E(B,[\304,\\\\\326,]\334'
ここでは、ドイツ語 ('K') 文字セットの一部を xterm でエミュレートしています。screen が 'K' 文字セットに切り替える必要がある場合、'\E(B' がターミナルに送信されます。つまり、ASCII 文字セットが代わりに使用されます。テンプレートは単に '%' なので、マッピングは簡単です。'[' は '\304' に、'\' は '\326' に、']' は '\334' にマッピングされます。
環境変数
COLUMNS ターミナル上の列数(termcapエントリをオーバーライドします)。
HOME .screenrc を検索するディレクトリ。
LINES ターミナル上の行数(termcapエントリをオーバーライドします)。
LOCKPRG screen ロックプログラム。
NETHACKOPTIONS nethack オプションを有効にします。
PATH 実行するプログラムを検索するために使用されます。
SCREENCAP ターミナルの TERMCAP 値をカスタマイズするために使用します。
SCREENDIR 代替ソケットディレクトリ。
SCREENRC 代替ユーザー screenrc ファイル。
SHELL ウィンドウを開くときのデフォルトのシェルプログラム(デフォルトは /bin/sh)。.screenrc コマンドも参照してください。
STY 代替ソケット名。
SYSSCREENRC 代替システム screenrc ファイル。
TERM ターミナル名。
TERMCAP ターミナル記述。
WINDOW ウィンドウの作成時にウィンドウ番号を指定します。
ファイル
.../screen-4.?.??/etc/screenrc
.../screen-4.?.??/etc/etcscreenrc screen ディストリビューションパッケージ内の、プライベートおよびグローバル初期化ファイルの例。
$SYSSCREENRC
/etc/screenrc screen 初期化コマンド
$SCREENRC
$HOME/.screenrc /etc/screenrc の後に読み込まれます
$SCREENDIR/S-<login>
/run/screen/S-<login> ソケットディレクトリ(デフォルト)
/usr/tmp/screens/S-<login> 代替ソケットディレクトリ。
<socket directory>/.termcap "termcap" 出力関数によって書き込まれます
/usr/tmp/screens/screen-exchange または
/tmp/screen-exchange screen の `プロセス間通信バッファ`
hardcopy.[0-9] hardcopy 関数によって作成された画面イメージ
screenlog.[0-9] log 関数によって作成された出力ログファイル
/usr/lib/terminfo/?/* または
/etc/termcap ターミナル機能データベース
/run/utmp ログインレコード
$LOCKPRG ターミナルをロックするプログラム。
著者
オリバー・ラウマンによって最初に作成されました。その後、長年にわたり、ユルゲン・ヴァイガート、ミヒャエル・シュレーダー、マイカ・コーワン、サドル・ハビブ・チョウドリーによって維持および開発されました。2015年以降は、アマデウス・スラビンスキ <_> とアレクサンダー・ナウモフ <_> によって維持および開発されています。
著作権表示
Copyright (c) 2018-2023 Alexander Naumov <_> Amadeusz Slawinski <_> Copyright (c) 2015-2017 Juergen Weigert <_> Alexander Naumov <_> Amadeusz Slawinski <_> Copyright (c) 2010-2015 Juergen Weigert <_> Sadrul Habib Chowdhury <_> Copyright (c) 2008, 2009 Juergen Weigert <_> Michael Schroeder <_> Micah Cowan <_> Sadrul Habib Chowdhury <_> Copyright (C) 1993-2003 Juergen Weigert <_> Michael Schroeder <_> Copyright (C) 1987 Oliver Laumann
このプログラムはフリーソフトウェアであり、GNUフリーソフトウェア財団が発行したGNU一般公開ライセンスの第3版、またはそれ以降のバージョンに従って、再配布または修正することができます。 このプログラムは有用であることを期待して配布されますが、いかなる保証も提供されず、たとえ商品性や特定の目的への適合性の暗黙の保証であっても、一切の保証は提供されません。詳細はGNU一般公開ライセンスを参照してください。 このプログラムにGNU一般公開ライセンスのコピーが含まれているはずです(「COPYING」というファイルを参照)。もし含まれていない場合は、Free Software Foundation, Inc., 59 Temple Place - Suite 330 Boston, MA 02111-1307, USA に手紙を書いてください。
貢献者
Vincent Lefevre <_>, Carl Drougge <_>, Maarten ter Huurne <_>, Jussi Kukkonen <_>, Eric S. Raymond <_>, Thomas Renninger <_>, Axel Beckert <_>, Ken Beal <_>, Rudolf Koenig <_>, Toerless Eckert <_>, Wayne Davison <_>, Patrick Wolfe <_>, Bart Schaefer <_>, Nathan Glasser <_>, Larry W. Virden <_>, Howard Chu <_>, Tim MacKenzie <_>, Markku Jarvinen <_>, Marc Boucher <_>, Doug Siebert <_>, Ken Stillson <_>, Ian Frechett <_>, Brian Koehmstedt <_>, Don Smith <_>, Frank van der Linden <_>, Martin Schweikert <_>, David Vrona <_>, E. Tye McQueen <_>, Matthew Green <_>, Christopher Williams <_>, Matt Mosley <_>, Gregory Neil Shapiro <_>, Johannes Zellner <_>, Pablo Averbuj <_>.
入手方法
screenの最新の公式リリースは、ftp.gnu.org/gnu/screen/またはその他のGNUディストリビューションサイトから匿名でftp経由で入手できます。screenのホームページはhttps://savannah.gnu.org/projects/screen/ であり、gitリポジトリはhttps://git.savannah.gnu.org/cgit/screen.git です。 もし貢献したい場合は、メールを送ってください。
バグ
^ m'(削除モード)とxs'は正しく処理されません(無視されます)。`xn'はマジックマージンインジケーターとして扱われます。
screenは、ダブルハイトまたはダブルワイドの文字を認識しません。ただし、これはvttestが失敗してもよい唯一の領域です。
再アタッチ時に異なるターミナルタイプで環境変数$TERMCAPを変更することはできません。
terminfoベースのシステムに対するサポートは非常に限られています。$TERMCAPに追加の機能を追加しても、効果がない場合があります。
screenはハードウェアタブを使用しません。
ほとんどのシステムでは、screenをroot所有のセットUIDでインストールする必要があり、各ウィンドウのttyデバイスファイルの所有者を正しく変更できます。また、/run/utmpファイルへの書き込みには特別な権限が必要となる場合があります。
SIGKILLでscreenを強制終了すると、/run/utmpのエントリが削除されません。これにより、「w」や「rwho」などのプログラムが、実際にはログインしていないユーザーがログインしていると表示するようになります。
ttyにutmpエントリがない場合、画面に奇妙な警告が表示されることがあります。
モデムの回線が切断されたとき、デバイスドライバがHANGUPシグナルを送信するように設定されていない場合、screenは自動的にセッションから切断(または終了)しないことがあります。screenセッションから切断するには、-Dまたは-dコマンドラインオプションを使用します。
パスワードが設定されている場合でも、-dおよび-Dコマンドラインオプションは、確認なしでセッションから切断します。
breaktypeとdefbreaktypeは、すべてのターミナルデバイスで使用されるブレーク生成方法を変更します。最初のオプションは、ウィンドウ固有の設定を変更し、後者のオプションは、新しいウィンドウのデフォルトのみを変更します。
マルチユーザーセッションにアタッチする場合、ユーザーの.screenrcファイルは読み込まれません。各ユーザーの個人的な設定は、セッションが起動される.screenrcファイルに含めるか、手動で変更する必要があります。
奇抜な想像力は、すべての機能の利点を最大限に活用するのに最も役立ちます。
バグ報告、修正、機能強化、Tシャツ、お金、ビール、ピザを_に送ってください。
関連項目
termcap(5), utmp(5), vi(1), captoinfo(1), tic(1), tty(4), pty(7)