SCREEN(1) SCREEN(1)
名前
screen - VT100/ANSI 端末エミュレーション機能を持つ画面管理ソフトウェア
書式
screen [ -options ] [ cmd [ args ] ]
screen -r [[pid.]tty[.host]]
screen -r sessionowner/[[pid.]tty[.host]]
書式
screen は、ひとつの物理的な端末を複数のプロセス (特に対話シェル) で共有
化できるようにする、フルスクリーンウィンドウ管理ソフトウェアである。 各
仮 想 端 末 は DEC VT100 端末の機能に加え、ANSI X3.64 (ISO 6429) や ISO
2022 規格に含まれる制御機能 (例えば行の挿入/削除や複数の文字集合のサ ポ
ー ト) のいくつかを備えている。各仮想端末にはスクロールバック用の履歴バ
ッファがある。またコピー&ペースト機能もあり、ウィンドウ間でテキスト領域
をやりとりできる。
screen は呼び出されるとウィンドウを 1 つ生成し、その中でシェル (または
指定されたコマンド) を実行する。そしてユーザからは見えなくなり、ユー ザ
は 通常通りにプログラムを実行できるようになる。その後はいつでも、新しい
(全画面) ウィンドウの生成およびそこでの他のプログラムの実行 (別のシェル
も含む)、いまあるウィンドウの削除、ウィンドウリストの表示、ログ出力の有
効化・無効化、ウィンドウ間でのテキストのコピー&ペースト、スクロールバッ
ク 履歴の閲覧、望む通りのウィンドウ切り替え、等ができる。各々のウィンド
ウは、それぞれ自分のプログラムを他からは完全に独立したかたちで動作さ せ
る 。ウィンドウが現在見えなくても、あるいは screen セッション全体がユー
ザの端末から切り離された場合でも、各プログラムは動作を続ける。プログ ラ
ム が終了すると、 screen は (デフォルトでは) そのプログラムが動作してい
たウィンドウを削除する。このウィンドウがフォアグラウンドにあった場合 は
、 ひとつ前のウィンドウに表示が切り替わる。ウィンドウが残っていなかった
場合には、 screen は終了する。
ユーザのキー入力はすべて、現在のウィンドウで動作しているプログラムに 送
ら れる。この唯一の例外は、ウィンドウマネージャへ送るコマンドの開始を意
味する、ある 1 つのキーストロークである。デフォルトでは、各コマン ド は
Ctrl-a ( 以降は C-a と省略) で始まり、その後には別のキーストロークが 1
つ続く。コマンド文字とすべてのキー割り当ては完全に望みの通りにカスタ マ
イズできる。ただし長さは必ず 2 文字でなければならない。
screen はプレフィクス "C-" をコントロールキーの意味だとは理解しない。コ
マンドへの引数にはキャレット表記 ("C-a" の代わりに "^A") を用いること (
例えば escape コマンドや -e オプションへの引数など)。 screen 自身も制御
文字の出力にはキャレット表記を用いる。
新しいウィンドウを生成する標準的な方法は、"C-a c" とタイプすることで あ
る 。これにより新しいウィンドウが生成されてシェルが実行され、現在のウィ
ンドウで動作中のプロセスの状態にかかわらず、ただちにそのウィンドウへ 切
り 替わる。同様に、あらかじめコマンドをキー操作に割り当てておき (割り当
ては .screenrc またはコマンドラインから "C-a :" で行う)、その後こ れ を
"C-a c" のように用いれば、特定のコマンドが実行される新たなウィンドウを
生成できる。さらに、既存ウィンドウのプロンプトから
screen emacs prog.c
のようなコマンドを実行しても、新たなウィンドウを生成できる。これは別 の
screen を起動するのではなく、コマンド名と引き数を (環境変数 $STY で指定
される) ウィンドウマネージャに渡し、新しいウィンドウを生成させる。上 の
例では (prog.c を編集する) emacs エディタが起動し、そのウィンドウに切り
替わる。
screen が "/etc/utmp" に書き込み可能な場合は、各ウィンドウに関する適 切
な 記録がこのファイルに書き込まれ、そしてウィンドウの終了時に削除される
。これは "talk", "script", "shutdown", "rsend", "sccs" 等、utmp ファイ
ル を 見てユーザの居場所を調べるプログラムを使う際に便利である。 screen
が端末上でアクティブであるうちは、その端末自身のレコードは utmp ファ イ
ルから削除される。 "C-a L" も参照すること。
はじめよう
他 の termcap/terminfo プログラムの場合と同様、 screen を使い始める前に
は、端末のタイプを正しく選んでいるかを確認すること (tset プログラム等で
確認できる)。
大量の文書を読まずに使い始めたいせっかちな人も、 "C-a ?" コマンドだけは
覚えておくように。この 2 文字を入力すると screen で使えるコマンドとキー
割 り当てのリストが表示される。それぞれのキー操作については、『デフォル
トのキー割り当て』の節で説明する。このマニュアルの『カスタマイズ』の 節
では、.screenrc の内容を扱う。
使 っている端末が「本当の」自動マージン端末 (画面をスクロールさせないと
画面の末尾のカラムを更新できない) の場合、その端末の termcap には自動マ
ー ジンが「オフ」であるものを使う方が良い。これにより、正確かつ最適な画
面更新がどんな環境でも保証される。今日のほとんどの端末は "magic" マージ
ン (自動マージンで、かつ最後のカラムも利用できる) を備えている。これは
VT100 の形式で、 screen にも完璧に適している。「本当の」自動マージン 端
末 しか使えない場合、 screen はこれを受け入れて使用するが、画面の最後の
カラムに置かれた文字は、画面がスクロールするか、その文字が何らかの方 法
で 安全な位置に移動するまで更新できない。文字挿入 (insert-character) の
機能を持つ端末を使えば、この遅れを短くすることができる。
コマンドラインオプション
screen では以下のコマンドラインオプションが使用できる:
-a temcap の all 機能の実装に、ディスプレイ各部の再描画が必要とされる
場合であっても、各ウィンドウの termcap に (一部の例外を除いて) all
機能を含める。
-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
フ ロ ー 制 御 の 有効、無効を切り替える。また「自動切り替えモード
(automatic switching mode)」を設定する。これは .screenrc の "def-
flow" コマンドを使っても定義できる。
-h num
履歴のスクロールバッファの大きさを最大 num 行に設定する。
-i フロー制御が有効である時に、割り込みキー (通常は C-c) によって即座
にディスプレイに割り込みがかかるようにする。詳しくは .screenrc の
コ マンドである "defflow" を参照のこと。このオプションはあまり使わ
ない方が良い。
-l および -ln
(/etc/utmp の更新に関する) ログインモードを有効/無効にする。これは
.screenrc のコマンドの "deflogin" でも指定できる。
-ls および -list
screen を 起 動 せ ず 、 ユ ー ザ の screen セッションに対応する
pid.tty.host 形式の文字列をリスト表示する。 ‘detached’ と記され て
い るセッションは "screen -r" で再開できる。 ‘attached’ と記されて
いるセッションは動作中であり、これを制御している端末がある。セッシ
ョンがマルチユーザモードで動作している場合は、‘multi’ と記される。
‘unreachable’ と記されているセッションは、別のホストで動作している
か ‘dead’ の状態にある。 unreachable なセッションのうち、名前がロ
ーカルホストや指定したパラメータがあればそれにマッチするもの は 、
dead であると思われる。マッチの作りかたの説明は -r フラグの項目を
見てほしい。 ‘dead’ とされたセッションは、厳しくチェックしてから削
除すべきである。よくわからない場合はシステム管理者に相談すること。
セッションは -wipe オプションで削除する。
-L ウィンドウの自動出力ログを有効にするよう screen に伝える。
-m screen に $STY 環境変数を無視させる。 "screen -m" とすると、 こ の
screen が他の screen セッションから呼び出されたかどうかに関わらず
、新たなセッションの生成が強制される。このフラグは、‘-d’ オプシ ョ
ンと組み合わせると特別な意味を持つ。
-d -m screen を "detached" モードで起動する。新たなセッションが生成さ
れるが、そのセッションへアタッチしない。これはシステムのスタ ー
トアップスクリプトで便利である。
-D -m これも screen を "detached" モードで起動するが、新たなプロセス
をフォークしない。このコマンドは、セッションが終わったら終了 す
る。
-O 完全な VT100 エミュレーションではなく、使っている端末に対してより
最適な出力モードを選択する (‘LP’ のない自動マージン端末にのみ影 響
する)。これは .screenrc の "termcap" コマンドに ‘OP’ を指定するこ
とによっても設定できる。
-p (番号または名前)
あらかじめウィンドウを選択する。これは特定のウィンドウにアタッチし
な おしたいときや、"-X" オプションを用いて特定のウィンドウにコマン
ドを送りたいときに便利である。スクリーン選択コマンドと同じく 、"-"
を用いるとブランクのウィンドウが選択される。再アタッチの場合におい
ては、 "=" によってブランクのウィンドウにウィンドウのリストが表 示
される。
-q エラーメッセージを表示しない。"-ls" と同時に用いた場合の返り値は次
の通り: 9 はセッションのないディレクトリ、 10 は動作中だがアタッチ
で きないセッションのあるディレクトリ、 11 (またはそれ以上) は 1 (
以上) の利用できるセッションのあるディレクトリ。 "-r" と同時に用い
た 場 合 の返り値は次の通り: 10 はレジュームできるセッションがない
、12 (またはそれ以上) は 2 つ (以上) のレジューム可能なセッショ ン
が あ り、どちらかを選ばなければならない。これ以外の場合には、"-q"
には何の効果もない。
-r [pid.tty.host]
-r sessionowner/[pid.tty.host]
デタッチされている screen セッションをレジュームする。他のオプショ
ン ("-d"/"-D" と同時に用いる場合を除く) を指定することはできないが
、複数の screen セッションがデタッチされている場合は、それらを区別
するために [pid.]tty.host という余分なプレフィックスが必要かもしれ
ない。二番目の形式は、マルチユーザモードで動作している他のユーザの
screen セッションに接続する場合に用いる。この場合 screen は、他の
ユーザのディレクトリでセッション探索ができなければならない。これに
は setuid-root が必要とされる。
-R デタッチされている screen セッションのうち最初に見つかったものを再
開しようと試みる。成功すれば他のコマンドラインオプションはすべて無
視 される。デタッチされているセッションがひとつも無い場合には、 -R
が指定されていなかったかのように、他のオプションを使って新しいセッ
ションを開始する。このオプションは、 screen がログインシェルとして
実行される場合にはデフォルトで設定される (実際にはこの場合 screen
は "-xRR" を使う)。 -d/-D オプションとの組み合わせについては、これ
らのオプションに関する説明の部分を参照すること。
-s デフォルトのシェルとして、環境変数 $SHELL の値 (これが定義されてい
なければ "/bin/sh") ではなく、指定されたプログラムを設定する。これ
は .screenrc コマンドの "shell" を使っても定義できる。
-S セッション名
新しいセッションを作る際、このオプションを使えばセッションに意味の
ある名前を付けることができる。この名前を使うと、 "screen -list" や
"screen -r" の使用時にセッションを識別できる。これはデフォル ト の
[tty.host] サフィックスに置き換わる。
-t 名前
デフォルトのシェルまたは指定プログラムに対してタイトル (別名) を設
定する。.screenrc コマンド "shelltitle" も参照のこと。
-U UTF-8 モードで screen を動作させる。このオプションは、ユーザの端末
が UTF-8 エ ン コードされた文字を理解し、また送信してくることを
screen に伝える。また新規ウィンドウのデフォルトエンコーディング が
‘utf8’ になる。
-v バージョン番号を表示する。
-wipe [マッチ]
"screen -ls" とほぼ同じ動作であるが、破棄されたセッションに ‘dead’
と印を付けるのではなく、これを削除する。到達できないセッションのう
ち、ローカルホストの名前か、パラメータを与えた場合はそれにマッチし
たものは、 dead とみなされる。マッチの作り方については -r フラグの
項を参照のこと。
-x デタッチされていない screen セッションへのアタッチを行う (マルチデ
ィスプレイモード)。
-X 動作中の screen セッションに特定のコマンドを送る。 -d や -r オプシ
ョンを用いれば、アタッチされているセッションやデタッチされているセ
ッションのみを探すよう、screen に伝えることもできる。ただしこの コ
マンドは、セッションがパスワードで保護されている場合には動作しない
ことに注意。
デフォルトのキー割り当て
既に説明したように、 screen の各コマンドは "C-a" の後に、もう 1 文字 を
続 けたものである。ユーザの利便のため、小文字に割り当てられたすべてのコ
マンドは、それぞれ対応する制御文字にも割り当てられる (ただし "C-a a" は
例外である。これについては後述する)。したがって、"C-a c" でも "C-a C-c"
でもウィンドウを生成できる。コマンドの説明については『カスタマイズ』 の
セクションを参照すること。
以下の表はデフォルトのキー割り当てである:
C-a ’ (select) 切り替え先のウィンドウ名またはウィンドウ番号
を問い合わせる。
C-a " (windowlist -b)
選択できるウィンドウのリストを表示する。
C-a 0 (select 0)
... ...
C-a 9 (select 9)
C-a - (select -) 番号 0 - 9 のウィンドウ、またはブランクウィン
ドウへ切り替える。
C-a tab (focus) 入力フォーカスを次のリージョンに切り替える。
C-a C-a (other) 直前に表示していたウィンドウにトグルする。こ
の割り当ては、変更しない限り、デフォルトで は
コマンド文字の 2 回の繰り返しである。例えば、
オプション "-e]x" を使うと、このコマ ン ド は
"]C-a" でなく "]]"となる。
C-a a (meta) コ マンド文字(C-a)をウィンドウに送る。escape
コマンドを参照のこと。
C-a A (title) 現在のウィンドウの名前をユーザに入力させる。
C-a b
C-a C-b (break) ブレーク信号をウィンドウに送る。
C-a B (pow_break) 端末ラインを再オープンし、ブレーク信号を送 る
。
C-a c
C-a C-c (screen) 新しいウィンドウとシェルを生成し、そのウィン
ドウに切り替える。
C-a C (clear) 画面をクリアする。
C-a d
C-a C-d (detach) 現在の端末から screen をデタッチする。
C-a D (pow_detach) デタッチとログアウトを行う。
C-a f
C-a C-f (flow) フロー制御の on, off, auto をトグルする。
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
C-a C-i (info) 現在のウィンドウに関する情報を表示する。
C-a k
C-a C-k (kill) 現在のウィンドウを破棄する。
C-a l
C-a C-l (redisplay) 現在のウィンドウ全体をリフレッシュする。
C-a L (login) このウィンドウのログインスロットをトグルする
。これが可能なのは、 screen が utmp データ ベ
ー スを更新するよう設定されている場合に限られ
る。
C-a m
C-a C-m (lastmsg) メッセージ行に表示された直前のメッセージを 繰
り返す。
C-a M (monitor) 現在のウィンドウの監視をトグルする。
C-a space
C-a n
C-a C-n (next) 次のウィンドウに切り替える。
C-a N (number) 現在のウィンドウの番号(とタイトル)を表示する
。
C-a backspace
C-a h
C-a p
C-a C-p (prev) 前のウィンドウに切り替える (C-a n の反対)。
C-a q
C-a C-q (xon) 現在のウィンドウに Control-q を送る。
C-a Q (only) 現在のリージョンを残して他はすべて消す。
C-a r
C-a C-r (wrap) 現在のウィンドウの行折り返しに関する設定を ト
グ ルする (現在のウィンドウの自動マージンのオ
ン/オフを切り替える)。
C-a s
C-a C-s (xoff) 現在のウィンドウに Control-s を送る。
C-a S (split) 現在のリージョンを 2 つに分ける。
C-a t
C-a C-t (time) システム情報を表示する。
C-a v (version) バージョンとコンパイルされた日時を表示する。
C-a C-v (digraph) 二重字 (digraph) を入力する。 (訳注: 二重字と
はアクセント記号等が付いた文字のこと)
C-a w
C-a C-w (windows) ウィンドウのリストを表示する。
C-a W (width) 80/132 カラムをトグルする。
C-a x
C-a C-x (lockscreen) この端末をロックする。
C-a X (remove) 現在のリージョンを破棄する。
C-a z
C-a C-z (suspend) screen をサスペンドする。システムが BSD 形式
のジョブ制御をサポートしていなければならな い
。
C-a Z (reset) 仮想端末を "power-on" の値にリセットする。
C-a . (dumptermcap) ".termcap" ファイルを出力する。
C-a ? (help) キー割り当てを表示する。
C-a C-\ (quit) すべてのウィンドウを破棄し、 screen を終了す
る。
C-a : (colon) コマンドラインモードに入る。
C-a [
C-a C-[
C-a esc (copy) コピー/スクロールバックモードに入る。
C-a ] (paste .) ペーストバッファの内容を現在のウィンドウの 標
準入力のキューに書き込む。
C-a {
C-a } (history) 前の (コマンド) 行をコピー&ペーストする。
C-a > (writebuf) ペーストバッファをファイルに書き出す。
C-a < (readbuf) 画面交換ファイルをペーストバッファに読み込む
。
C-a = (removebuf) C-a < と C-a > で使ったファイルを削除する。
C-a , (license) screen の由来を表示する。これは screen が来た
道 であり、あなたが screen を利用できている理
由である。
C-a _ (silence) 現在のウィンドウが非アクティブかどうかの監 視
を開始/停止する。
C-a * (displays) 現在アタッチしているすべての画面のリストを表
示する。
カスタマイズ
「ソケットディレクトリ」は、デフォルトでは $HOME/.screen ま た は 単 に
/tmp/screens だが、コンパイル時に選択すれば /var/run/screen にもできる
。 screen を setuid-root でインストールする場合、システム管理者は適切な
(NFS マウントではない) ソケットディレクトリを使うよう screen をコンパイ
ルしなければならない。 screen が setuid-root でない状態で動作する場合な
ら、ユーザは環境変数 $SCREENDIR を使って、モード 700 の任意のディレクト
リを指定できる。
screen は起動されると、2 つのファイル ("/etc/screenrc" とそのユーザのホ
ー ムディレクトリの ".screenrc") から初期化コマンドを読み込んで実行する
。これらは「プログラマのデフォルト値」であり、以下のようにすれば変更 で
き る: システム全体の screenrc として、 screen は環境変数 $SYSSCREENRC
を検索する (この変更機能はコンパイル時に無効にできる)。ユー ザ 固 有 の
screenrc ファイルは $SCREENRC, $HOME/.screenrc の順で検索される。コマン
ドラインオプション -c は、これらのユーザ用 screenrc ファイルよりも優 先
される。
こ れらのファイルに書かれたコマンドは、オプションの設定やキーへの機能の
割り当て、 screen セッション開始時の自動的なウィンドウ生成 (複数可) に
用 いられる。コマンドは 1 行に 1 つ書かれ、空の行は無視される。コマンド
の引き数はタブまたは空白で区切られ、シングルクォートまたはダブルクォ ー
トで括ることができる。 ‘#’ があると、その行の残りの部分はコメントとなる
。ただし ‘#’ がクォートの内部にある場合は除く。判読できない行には警告が
出 され、無視される。コマンドでは環境変数を参照できる。記法はシェルと同
様に "$VAR " または "${VAR}" の形式である。これは screen の古いバージョ
ンとの非互換性の原因になっており、現在は変数代入を行わせない場合 ’$’ は
’\’ で保護しなければならない。
screen の配布パッケージには、 2 つの設定ファイル、 "etc/screenrc" と
"etc/etcscreenrc" とが例として同梱されている。これらには様々なコマンド
の便利な例がたくさん載っている。
カスタマイズは「オンライン」で行うこともできる。コマンドモードに入る に
は ‘C-a :’ を入力する。 "def" で始まるコマンドはデフォルト値を変更し、
他のコマンドは現在の設定を変更する。
利用できるコマンドを以降に示す:
acladd usernames [crypted-pw]
addacl usernames
ユーザに現在の screen セッションへの完全なアクセスを与える。 usernames
は 1 人のユーザ、またはコンマ区切りのユーザリストである。このコマンドは
screen セッションにアタッチできるように し 、 ‘aclchg usernames +rwx
"#?"’ と同じ内容を実行する。アクセス権を制限した状態でユーザを追加する
には、後述の ‘aclchg’ を用いること。 2 番目のパラメータは省略可能だが、
こ れを与えると、これは指定したユーザ (ないし複数のユーザ) の暗号化パス
ワードになる。 ‘addacl’ は ‘acladd’ と同機能の別名である。このコマン ド
はマルチユーザモードでのみ使用できる。
aclchg usernames permbits list
chacl usernames permbits list
コ ン マ 区切りのリストで指定したユーザの権限 (permission) を変更する。
permbits は ‘r’, ‘w’, ‘x’ で表し、‘+’ を前に置くと権限が与えられ、 ‘-’
を置くと権限が取り上げられる。 3 番目のパラメータは、コマンドやウィンド
ウ (番号またはタイトルで指定) をコンマで区切って並べたリストである。 特
別なリストである ‘#’ はウィンドウすべてを意味し、‘?’ はコマンドすべてを
意味する。 usernames が ‘*’ 1 つだけの場合、認識されているユーザすべ て
が影響を受ける。ユーザがあるコマンドに対する ‘x’ ビットを持っていると、
そのコマンドを実行できる。あるウィンドウに対して ‘w’ ビットが設定されて
お り、他のユーザがそのウィンドウの書き込みロックを取得していないとき、
ユーザはそのウィンドウへの入力を行える。他のビットは現在は無視される 。
ウ ィ ンドウ 2 にいる他のユーザの書き込みロックを取り消すには、 ‘aclchg
username -w+w 2’ コマンドを実行する。セッションに対する読み込み専用のア
ク セスを許可するには、 ‘aclchg username -w "#"’ コマンドを実行する。ユ
ーザ名が screen に識別されると、直ちにそのユーザはセッションにアタッ チ
で き、 (デフォルトでは) すべてのコマンドとウィンドウに対する完全な権限
を与えられる。 acl コマンドや ‘at’ 等に対する実行許可は削除しておくべき
で ある。さもないと、そのユーザは書き込み権限を再取得できてしまう。特殊
なユーザ nobody に対する権限は変更できない ("su" コマン ド を 見 よ) 。
‘chacl’ は ‘aclchg’ と同義の別名である。マルチユーザモードでのみ使用で
きる。
acldel username
ユーザを screen のアクセス制御リストから削除する。現在アタッチされて い
れ ば、そのユーザのすべてのディスプレイはそのセッションからデタッチされ
る。そのユーザは再びアタッチすることはできない。マルチユーザモードで の
み使用できる。
aclgrp username [groupname]
同 じアクセス権限を共有するユーザのグループを作成する。このグループの名
前は、グループのリーダーのユーザ名になる。グループの各メンバーはグル ー
プ リーダーに与えられた権限を継承する。すなわち、あるユーザがあるアクセ
スのチェックに失敗すると、続いて別のチェックがグループリーダーに対し て
なされる。 groupname に特殊な値 "none" が用いられると、ユーザはすべての
グループから削除される。 2 番目のパラメータが省略されると、ユーザのいる
すべてのグループがリストされる。
aclumask [[users]+bits |[users]-bits .... ]
umask [[users]+bits |[users]-bits .... ]
こ のコマンドを呼んだ者が生成するウィンドウに対して、他のユーザが持つア
クセス権限を指定する。 users は、なし、一人、既知のユーザ名のコンマ区切
りリスト、のいずれかである。 users を指定しないと、現在わかっているすべ
てのユーザのリストを指定したことになる。 bits は "aclchg" コマンドで 定
義されたアクセス制御ビットの任意の組み合わせである。ユーザ名 "?" は特殊
な意味を持ち、まだ登場していないユーザに対して、事前に任意のウィンド ウ
に 対するアクセス権限を付与するために用いる。ユーザ名 "??" は特殊な意味
を持ち、まだ登場していないユーザに対して、任意のコマンドに対するアク セ
ス 権限を付与するために用いる。特殊なユーザ名である nobody の権限を変更
することはできない ("su" コマンドを見よ)。 ‘umask’ は ‘aclumask’ と同義
の別名である。
activity message
監 視状態にあるバックグラウンドウィンドウのどれかで何らかの動作があった
場合、 screen はメッセージ行で通知を行う。この通知メッセージは "activ-
ity" コマンドで再定義できる。 message に含まれる ‘%’ は、それぞれ動作が
起こったウィンドウの番号に置換され、‘~’ は、それぞれ termcap に書かれて
い るベルの定義 (通常は音を鳴らすベル文字) に置換される。デフォルトのメ
ッセージは
’Activity in window %n’
である。デフォルトではすべてのウィンドウに対して監視はオフになってい る
が、 "monitor" コマンド(C-a M) で変更できる。
allpartial on|off
on にすると、ウィンドウが変化した時に現在のカーソル行だけがリフレッシュ
される。これはすべてのウィンドウに影響し、端末ラインが遅い場合に役に 立
つ 。各ウィンドウにおける全体/部分リフレッシュの直前の設定は、 "allpar-
tial off" で復元される。これはグローバルなフラグであり、即座にすべて の
ウ ィンドウに影響を及ぼし、"partial" の設定を変更する。これ以降に新しく
生成されるウィンドウのデフォルトの再描画の動作は、これによっては変わ ら
ない。
altscreen on|off
on にすると仮想端末で「別画面 (alternate screen)」のサポートが有効にな
る。これは xterm のと同様のものである。初期設定では off になっている。
at [identifier][#|*|%] command [args ... ]
他の画面やウィンドウで (あたかもそこで入力したかのように) コマンドを 実
行 する。 "at" はコマンドのコンテクスト (「現在のウィンドウ」や「現在の
画面」の設定) を変更する。最初のパラメータでコンテクストがひとつに定 ま
ら な い 場 合 には、そのコマンドは複数回実行される。最初のパラメータが
‘identifier*’ の形式ならば、ユーザ名に対して identifier のマッチを試 み
る 。指定されたコマンドは、選択されたユーザ (複数可) の画面それぞれにお
いて 1 度ずつ実行される。最初のパラメータが ‘identifier%’ の形式なら ば
、 画面に対して identifier のマッチを試みる。画面の名前はアタッチしてい
る tty に基づいて付けられる。プレフィックス ‘/dev/’ や ‘/dev/tty’ は
identifier から省略できる。 identifier に ‘#’ が付いた (あるいは末尾に
何も付いていない) 場合は、ウィンドウ番号とタイトルにマッチ す る 。‘*’,
‘%’, ‘#’ 文字の前に置く識別子を省略すると、すべてのユーザ、画面、ウィン
ドウが選択される。影響を受ける画面 (複数のこともある) では、起こった こ
と が短いメッセージで表示される。 "at" コマンドの実行者に対しては権限の
チェックが行なわれ、影響される画面の所有者に対しては行なわれな い 。’#’
文字の後に空白文字が置かれるとコメントの開始になるが、これは ’\’ を前置
することでエスケープできる。
注意: ウィンドウに対するマッチでは、コマンドは各ウィンドウで最低 1 回は
実行される。ウィンドウの内部順序を変更するようなコマンド ("other" など)
は、複数回呼び出されるかもしれない。共有ウィンドウでは、コマンドはア タ
ッチしている画面ごとに繰り返される。 "login" のような、状態をトグルする
コマンドを実行するときには注意すること! コマンドによっては、対象ウィン
ド ウ がディスプレイに関連づけられていないと機能しないものがある ("pro-
cess" など)。これらのコマンドは、"at" でウィンドウを巡回させる場合に は
機能しないかもしれない。
attrcolor attrib [attribute/color-modifier]
こ のコマンドを用いると、テキストの色を変えて属性をハイライトできる。属
性 attrib がすでに利用中の場合には、指定した属性/色修正が同時に適用され
る 。修正指定を与えないと、現在のものを削除する。修正指定の文法について
は『文字エスケープ』を参照のこと。 screen は 2 つの疑似属性を理解す る:
"i" は高輝度の前景色を意味し、 "I" は高輝度の背景色を意味する。
例:
attrcolor b "R"
ボールドのテキストを表示するとき、色を明るい赤に変更する。
attrcolor u "-u b"
アンダーラインの代わりに青のテキストを用いる。
attrcolor b ".I"
ボ ールドのテキストに明るい色を使う。ほとんどの端末エミュレータでは、す
でにこの指定はなされているだろう。
attrcolor i "+b"
高輝度色のテキストをボールドにもする。
autodetach on|off
ハングアップの際に、自動的にデタッチを screen にさせるかどうかを設定 す
る。デタッチを行うと、実行中のプログラムはすべて保存され、 screen -r コ
マンドで再開できる。このオプションを off にすると、ハングアップシグナル
に よって screen および screen 内で実行されているすべてのプロセスが終了
する。 autodetach はデフォルトでは on になっている。
autonuke on|off
画面クリアのシーケンスが与えられたとき、まだ端末に書き出されていない 出
力すべてを破棄するかどうか指定する。 "obuflimit" も参照のこと。
backtick id lifespan autorefresh cmd args...
backtick id
( 数値の) ID が id となる backtick コマンドをプログラムする。このような
コマンドの出力は、文字列エスケープ "%‘" に代入される。指定された lifes-
pan は、出力が有効とみなされる期間の秒数である。この秒数が経過した後に
、対応する文字列エスケープが現われた場合には、このコマンドが再び実行 さ
れる。 autorefresh パラメータで指定する秒数が過ぎると、キャプション文字
列とハードステータス文字列とが自動的にリフレッシュされる。出力の最後 の
行だけが代入に用いられる。
lifespan と autorefresh の両方のパラメータが 0 だと、その backtick プロ
グラムはバックグラウンドに留まり、ときどき出力を生成するものとみなさ れ
る 。この場合、そのコマンドは直ちに実行され、 screen はその出力の最後の
行を保存する。新しい行が表示されると、 screen はハードステータスまた は
キャプションをリフレッシュする。
2 番目の書式は、数値 ID が id の backtick コマンドを削除する。
bce [on|off]
背景色消去 (background-color-erase) の設定を変更する。 "bce" を on にす
ると、 erase/insert/scroll/clear 操作でクリアされるすべての文字は、現在
の背景色で表示されることになる。 off にするとデフォルトの背景色が用いら
れる。
bell_msg [message]
ベル文字がバックグラウンドのウィンドウに送られると、 screen はメッセ ー
ジ 行に通知を出す。この通知メッセージは、このコマンドによって再定義でき
る。message に ‘%’ があると、それらはベルを受け取ったウィンドウの番号に
置換される。また ‘^G’ は termcap で定義されているベル文字 (通常は音声ベ
ル) に置換される。デフォルトのメッセージは次の通り:
’Bell in window %n’
"bell_msg" コマンドには空のメッセージを与えることもでき、その場合メッセ
ー ジ行の出力はされなくなる (bell_msg "")。パラメータを与えないと、現在
のメッセージが表示される。
bind [-c class] key [command [args]]
コマンドをキーに割り当てる。デフォルトでは、 screen に用意されている ほ
とんどのコマンドは 1 つないし複数のキーに割り当てられており、これらは『
デフォルトのキー割り当て』のセクションに示されている。例えば新しいウ ィ
ンドウを生成するコマンドは "C-c" と "c" とに割り当てられている。 "bind"
コマンドを用いると、キー割り当てを再定義したり、新しい割り当てを定義 し
た りできる。引き数 key には、文字 1 つ、"^x" 形式("C-x" の意味)の 2 文
字からなるシーケンス、バックスラッシュの後に 8 進数を続けたもの (文字の
ASCII コ ードを示す)、バックスラッシュの後に 2 番目の文字を続けたもの
("\^" や "\\" 等) のいずれかを与える。引き数はクォートしてもよい。 key
以 外の引き数が与えられなかった場合は、以前にこのキーに対して与えられた
割り当てが削除される。 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 スペース" でも呼び出せ
るようになる)。続く 3 行では、デフォルトで kill が割り当てられ て い る
"C-a C-k" と "C-a k" の両方を無効にし、そして "C-a K" を kill コマンド
に割り当てている。次の行は、「ウィンドウを生成してホスト foobar へ の
TELNET 接続を行う」コマンドを "C-f" に割り当てている。最後の行は、別名
"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 の選択、のよ う
にする。
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 の選択、の
ようにする。
bindkey [-d] [-m] [-a] [[-k|-t] string [cmd args]]
このコマンドは screen の入力変換テーブルを管理する。テーブルのどれか 1
つ に含まれる各エントリは、特定の文字シーケンスに出会ったときに行うべき
応答を screen に指示する。このようなテーブルは 3 つ存在する。ユーザがプ
ロ グラムした動作を含むテーブル、端末エミュレーションで使われるデフォル
トの動作を含むテーブル、 screen のコピーモードでカーソル移動を行うた め
の テーブル、である。デフォルトのキー割り当てのリストは、『入力の変換』
のセクションを参照すること。
-d オプションを与えると bindkey はデフォルトのテーブルを変更し、 -m オ
プ ションはコピーモードのテーブルを変更し、どちらのオプションも与えない
とユーザテーブルが選択される。引き数 string は動作を割り当てる文字シ ー
ケンスである。これは固定の文字列でもよいし、 termcap のキーボード機能名
でもよい (-k オプションで選択できる)。
VT100 端末でアプリケーションモードが有効であるとき、一部のキーは異な る
文字列を送ってくることがある (例えばカーソルキー)。このようなキーは変換
テーブル中にエントリを 2 つ持つ。アプリケーションモード時のエント リ は
-a オプションの指定によって選択できる。
-t オ プションを指定すると、screen は文字間タイミング調整を行わない。
termcap の機能を使う場合には、タイミング調整を無効にはできない。
cmd には任意の screen のコマンドと、これに対する任意の数の引き 数 args
を指定できる。 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 シス テ
ムでは送信時間は 1 秒単位に丸められる。シェルプロセスの場合よりは、キャ
ラクタ型デバイスがウィンドウにアタッチされている場合に非常に役に立つ (
『 ウィンドウの種類』の章も参照のこと)。ブレーク信号の最大継続時間は 15
秒に制限されている。
blanker
画面のブランク機能を有効にする。まず最初に画面はクリアされる。ブラン ク
用 のプログラムが定義されていない場合は、カーソルも消える。定義されてい
る場合はそのプログラムが起動され、出力が画面に書き出される。画面ブラ ン
ク 機能は、何かのキーが押された段階で終了し、そのとき読み込んだキー入力
は捨てられる。
このコマンドは通常 "idle" コマンドと共に用いられる。
blankerprg [program args]
ブランク機能用のプログラムを定義する。引き数を与えないと、ブランク用 の
プログラムを無効にする。
breaktype [tcsendbreak|TIOCSBRK |TCSBRK]
端 末デバイスに対してブレーク信号を生成する方法を、可能なものの中から選
ぶ。このコマンドは現在のウィンドウにのみ影響するべきだが、現在は "def-
breaktype" と 同 じ よ うに振舞う。これは将来は変更される予定である。
"breaktype" をパラメータ無しで呼ぶと、現在のウィンドウにおけるブレー ク
信号の発生方法を表示する。
bufferfile [exchange-file]
ペ ー ストバッファを使った読み書きに使うファイル名を変更する。 "buffer-
file" コマンドへの引き数を省略した場合 に は 、 デ フ ォ ル ト の 設 定
("/tmp/screen-exchange") が再び使われるようになる。以下の例は、システム
のパスワードファイルを screen のウィンドウにペーストするものである ( ペ
ーストバッファを使う。ここにはコピーが残る):
C-a : bufferfile /etc/passwd
C-a < C-a ]
C-a : bufferfile
c1 [on|off]
c1 コ ードの処理を変更する。"c1 on" を指定すると、 screen は 128 から
159 までの入力文字を制御機能として扱う。このような 8 ビットコードは、通
常 は ESC の後に対応する 7 ビットコードを続けたものと同じ意味になる。デ
フォルトの設定では c1 コードを処理する。これは "defc1" コマンドで変更で
き る。 c1 領域に利用可能な文字があるフォントを使っているユーザは、この
オプションを off にするとよい。
caption always|splitonly [string]
caption string [string]
このコマンドはウィンドウのキャプションの表示を制御する。通常キャプシ ョ
ン はディスプレイに複数のウィンドウが現れたときにのみ用いられるが、ここ
の属性を always に設定すると、ひとつしかウィンドウがないときでも screen
はキャプションを表示する。デフォルトの設定は splitonly である。
二 番目の形式はキャプションに用いられるテキストを変更する。 "文字エスケ
ープ" の章にあるすべてのエスケープが利用できる。 screen がデフォルト で
用いるのは ‘%3n %t’ である。
文字列を追加引数として、両方の形式を混ぜることもできる。
charset set
文字セットのスロット指定と文字セットのマッピングを変更する。 set の先頭
4 文字は、文字セット指定として扱われる。 5-6 番目の文字は 0 から 3 まで
の 値 を 取り、GL/GR 文字セットのマッピングを指定する。すべての位置には
’.’ を置くことができ、その場合は現在の文字セット/マッピングを変更しない
(set が 6 文字に満たない場合は、内部で ’.’ を追加する)。新しいウィンド
ウのデフォルトの文字セットは、 "encoding" コマンドが有効になっていな け
れば "BBBB02" になる。
現在の設定は "info" コマンドで閲覧できる。
chdir [directory]
screen のカレントディレクトリを指定されたディレクトリに変更する。引き数
なしで呼ばれた場合には、カレントディレクトリをホームディレクトリ (環 境
変数 $HOME の値) にする。 ".screenrc" 内部の "screen" コマンド、 "C-a :
screen ..."、 "C-a c" のいずれかによって新しく生成されるウィンドウは 、
これをデフォルトのディレクトリとして使用する。 chdir コマンドを使わない
と、デフォルトのディレクトリは screen が起動されたディレクトリになる 。
ハ ードコピーとログファイルが書き出されるのは、常に「そのウィンドウの」
デフォルトディレクトリであり、ウィンドウ内で動作しているプロセスのカ レ
ントディレクトリではない。このコマンドを .screenrc 内で複数回用いれば、
別々のデフォルトディレクトリでウィンドウをいくつも起動することができ る
が、ユーザが対話的に生成したすべてのウィンドウは、最後の chdir の値の影
響を受ける。
clear
現在のウィンドウをクリアし、そのイメージをスクロールバックバッファに 格
納する。
colon [prefix]
".screenrc" のコマンドラインを入力できるようにする。 screen の動作中に
キー割り当てを変えたり、特定のウィンドウの生成・設定の変更などに便利 で
ある。なお "set" キーワードは無くなってしまった。コマンドは通常現在のウ
ィンドウに影響し、将来生成されるウィンドウのデフォルト設定にはならな い
。デフォルトを変更するには ’def...’ で始まるコマンド群を用いること。
これを screen の「Ex コマンドモード」とするなら、 "C-a esc" (コピーモー
ド) は「Vi コマンドモード」と言えるだろう。
command [-c class]
このコマンドは screen のエスケープ文字 (^A) を打ち込んだ場合と同じ動 作
を 行う。これが役に立つのはキー割り当ての場合だけだろう。 "-c" オプショ
ンが与えられると、指定したコマンドクラスを選択する。 "bind" と "bind-
key" も参照すること。
compacthist [on|off]
テ キストをヒストリバッファの領域へスクロールアップするときに、末尾の空
行の出力を抑制するかどうか指定する。
console [on|off]
マシンコンソールのウィンドウへの出力をグラブまたはアングラブする。 注
意: コンソール出力をグラブできるのは /dev/console の所有者だけである。
このコマンドは、ioctl TIOCCONS をサポートしているマシンでしか使えない。
copy
コピー/スクロールバックモードに入る。ここでは、現在のウィンドウおよびそ
の履歴から、テキストをペーストバッファへとコピーできる。このモードで は
、vi に似た「フルスクリーンエディタ」がアクティブになる:
移動キー:
h, j, k, l は、カーソルを上下左右に移動する。
0, ^, $ は、行の内部で、先頭・空白でない最初の文字・空白でない最後の
文字、へとカーソルを移動する。
H, M, L は、カーソルをウィンドウの最上行・中央・最下行の、それぞれ 先
頭に移動する。
+ および - は、位置を 1 行上・1 行下へ移動する。
G は指定された絶対行へ移動する (デフォルト値はバッファの末尾)。
| は指定された絶対桁へ移動する。
w, b, e は、カーソルを単語単位で移動させる。
B と E は、カーソルを「単語」単位で移動させる (vi と同様)。
C-u と C-d は、指定された行数だけ画面を上下にスクロールさせる。この際
にカーソル位置は変わらない (デフォルト値は全画面の半分)。
C-b と C-f は、画面を 1 画面分スクロールアップ・ダウンさせる。
g はバッファの先頭へ移動する。
% は、バッファ中の指定したパーセンテージの位置へジャンプする。
注意:
.screenrc のコマンドを使って Emacs 形式の移動をさせるようなカスタマ
イズも できる (例: markkeys "h=^B:l=^F:$=^E")。ただし、完全な Emacs
形式のキーマップには複数個の文字からなるコードが含まれているが、 こ
れを簡単に実現することはできない。
マーキング:
コ ピー領域は、2 つのマークを設定することによって指定する。これらの
マークの間のテキストはハイライト表示される。
スペースキーを押すと、1 番目・2 番目のマークが設定される。
Y を押すと 1 行全体が、 y を押すと行頭から現在の位置までがマークさ れ
る。
W は 1 単語をマークする。
繰り返し回数:
以上のコマンドはすべて、数字キーによって繰り返し回数を指定できる。
0..9 は繰り返し回数として扱われる。
例: "C-a C-[ H 10 j 5 Y" は、 11 行目から 15 行目までをペーストバッ
ファにコピーする。
検索:
/ は Vi と同様の検索コマンドである。
? は Vi と同様の検索コマンドである。
C-a s は Emacs 形式の前方へのインクリメンタル検索であ る 。 C-r は
Emacs 形式の後方へのインクリメンタル検索である。
特 殊コマンド: 一部のキーは 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 は ":set numbers" を使っている vi ユーザ向けのものである。すなわち
、左マージンを 9 桁目と 1 桁目との間でトグルする。
a を二番目のスペースの前に押すと、追加モードに切り替わる。こうする と
ペーストバッファの内容を上書きせず、追加する。
A は追加モードへの切り替えを行い、(2 番目の) マークを設定する。
> は (2 番目の) マークをセットし、コピーモードが終了した時にペースト
バッファの内容を画面交換ファイル (デフ ォ ル ト で は /tmp/screen-
exchange) に書き出す。
次 の例は、スクロールバックバッファ全体をこのファイルにダンプする方
法を示したものである: "C-A [ g SPACE G $ >"
C-g は現在の行と桁に関する情報を与える。
x は最初のマークと現在のカーソル位置を交換する。これを用いると、既 に
配置したマークを調整できる。
@ は何もしない。コピーモードの終了も行わない。
ここで説明していないすべてのキーは、コピーモードを終了させる。
copy_reg [key]
もう無い。代わりに "readreg" を使うこと。
crlf [on|off]
‘C-a [’ コマンドを用いたテキスト領域のコピーに影響を与える。これを ‘on’
に設定すると、各行は 2 文字からなるシーケンス ‘CR’ - ‘LF’ によって分 割
される。‘off’ だと ‘LF’ だけが使われる。
debug on|off
実 行時デバッグのオン/オフを行う。 screen にオプション -DDEBUG を付けて
コンパイルするとデバッグが使えるようになり、デフォルトでオンになる。 こ
の コマンドが影響を与えるのは、メインの "SCREEN" のプロセスからのデバッ
グ出力だけである。アタッチしたプロセスのデバッグ出力は、一度無効にす る
と再度有効にすることはできない。
defc1 on|off
c1 コマンドとほぼ同じであるが、新しいウィンドウに対するデフォルト設定を
変える点が異なる。初期設定は ‘on’ である。
defautonuke on|off
autonuke コマンドとほぼ同じであるが、新しいディスプレイに対するデフォル
ト設定を変える点が異なる。初期設定は ‘off’ である。端末のタイプに対する
依存性を持たせたい場合は、特殊な端末機能である ‘AN’ を用いると良い。
defbce on|off
bce コマンドとほぼ同じであるが、新しいディスプレイに対するデフォルト 設
定を変える点が異なる。初期設定は ‘off’ である。
defbreaktype
端 末デバイスに対してブレーク信号を生成する方法を、可能なものの中から選
ぶ。 tcsendbreak および TIOCSBRK にすることを勧める。三番目の TCSBRK は
、 ブレークの間 screen セッションを完全にブロックしてしまうが、長いブレ
ークを発生させるにはこれしかないこともある。 tcsendbreak や TIOCSBRK で
は、長いブレークの際にスパイクが出てしまう (例えば毎秒 4 回など) ことが
ある (そうでないこともある)。これはシステムに依存するだけでなく、シリア
ル ボードドライバによっても異なる。 "defbreaktype" をパラメータ無しで呼
ぶと、現在の設定を表示する。
defcharset [set]
charset コマンドと似ているが、新しいウィンドウに対するデフォルト設定 を
変 える点が異なる。引き数なしで呼び出された場合には、現在のデフォルト値
を表示する。
defescape xy
デフォルトのコマンド文字を設定する。これは "escape" とほぼ同じである が
、 マルチユーザのセッションでしか役に立たない点が異なる。マルチユーザセ
ッションでは、"escape" は呼び出したユーザのコマンド文字を変更する。一方
"defescape" は、これ以後に追加されるユーザのコマンド文字列のデフォルト
値を変更する。
defflow on|off|auto [interrupt]
flow コマンドとほぼ同じであるが、新しいウィンドウに対するデフォルト設定
を変える点が異なる。初期設定は ‘auto’ である。 "defflow auto interrupt"
と指定すると、コマンドラインオプションに -fa と -i とを与えた場合と同じ
になる。
defgr on|off
gr コマンドとほぼ同じであるが、新しいウィンドウに対するデフォルト設定を
変える点が異なる。初期設定は ‘off’ である。
defhstatus [status]
以降作られる新しいウィンドウのハードステータス行を status にする。こ の
コ マンドは、すべてのウィンドウのハードステータス行に、ウィンドウ番号や
タイトル等を表示させるのに便利である。 status にはウィンドウメッセー ジ
の場合と同様の指定機能が利用できるが、このエスケープ文字は ’%’ ではなく
’^E’ (8 進値で 005) である。こうなっているのは、プログラムの生成した ハ
ー ドステータス行を、間違って解釈しないようにするためである。パラメータ
status を省略すると、現在のデフォルト文字列が表示される。デフォルトでは
、新しいウィンドウのハードステータス行は空である。
defencoding enc
encoding コマンドとほぼ同じであるが、新しいウィンドウに対するデフォルト
設定を変える点が異なる。初期設定では、エンコーディングは端末から取得 す
る。
deflog on|off
log コマンドとほぼ同じであるが、新しいウィンドウに対するデフォルト設定
を変える点が異なる。初期設定は ‘off’ である。
deflogin on|off
login コマンドとほぼ同じであるが、新しいウィンドウに対するデフォルト 設
定 を 変える点が異なる。配布状態での初期設定は ‘on’ である (config.h.in
を見よ)。
defmode mode
新しく割り当てられる仮想 tty のモードを mode に設定する。 mode は 8 進
数 の値である。 "defmode" コマンドが与えられていない場合は、モード 0622
が使われる。
defmonitor on|off
monitor コマンドとほぼ同じであるが、新しいウィンドウに対するデフォル ト
の設定を変える点が異なる。初期設定は ‘off’ である。
defnonblock on|off|numsecs
nonblock コマンドとほぼ同じであるが、新しいウィンドウに対するデフォルト
の設定を変える点が異なる。初期設定は ‘off’ である。
defobuflimit limit
obuflimit コマンドとほぼ同じであるが、新しいディスプレイに対するデフ ォ
ルト設定を変える点が異なる。初期設定は 256 バイトである。端末の種類への
依存性を持たせたい場合には、特殊な端末機能である ’OL’ が利用できる。
defscrollback num
scrollback コマンドとほぼ同じであるが、新しいウィンドウに対するデフォル
トの設定を変える点が異なる。初期設定値は 100 である。
defshell command
shell コマンドの同義語である。そちらを参照のこと。
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 コマンドとほぼ同じであるが、新しいウィンドウに対するデフォ ル
ト設定を変える点が異なる。初期状態では、書き込みロックは無効になる。
defzombie [keys]
zombie コ マ ンドと同じである。現在はどちらもデフォルト値を変更する。
zombie コマンドの説明を参照すること。
detach [-h]
screen のセッションをデタッチする (セッションを端末から切り離し、バック
グラウンドに回す)。これにより、ユーザは screen を起動したシェルに戻る。
デタッチされた screen は、 -r オプションを付けて screen を実行すれば 復
元できる (『コマンドラインオプション』を参照)。 -h オプションを指定する
と、screen は直ちに端末との接続を閉じる ("hangup")。
dinfo
screen があなたの端末について想定している内容を表示する。色付けや文字セ
ット指定が効かない原因を調査したい場合に便利。
displays
現 在接続されているユーザのフロントエンド (ディスプレイ) を表にして示す
。これはマルチユーザセッションにおいて特に便利。
digraph [preset]
このコマンドはユーザに二重字 (digraph sequence) を入力させる。この次 に
入力された 2 文字は、組み込みのテーブルで検索され、得られた文字が入力ス
トリームに挿入される。例えばユーザが ’a"’ を入力すると、ウムラウト付 き
の a が挿入される。最初に入力された文字が 0 (ゼロ)ならば、 screen はこ
れに続く文字 (3 文字まで) を文字としてではなく 8 進数の値として扱う。 (
省 略可能な) 引き数 preset はユーザの入力として扱われるので、これを利用
すると「ウムラウト」キーが作れる。例えば "bindkey ^K digraph ’"’" と い
うコマンドを使うと、 CTRL-K a という入力によってウムラウト付きの a を生
成できる。
dumptermcap
現在アクティブなウィンドウに対して最適化された仮想端末用の termcap エン
ト リを、ユーザの "$HOME/.screen" ディレクトリ (あるいは screen がソケ
ットを格納している場所のどこか。詳しくは後述の『ファイル』セクション を
参照) に書き出す。この termcap エントリは、 screen が各ウィンドウに対し
て設定する環境変数 $TERMCAP の値と同じである。 terminfo ベースのシス テ
ム では、 captoinfo のような変換プログラムを実行し、 tic を使ってそのエ
ントリをコンパイルする必要があるだろう。
echo [-n] message
echo コマンドを使うと、「今日のメッセージ」で screen ユーザに嫌がらせが
できる。通常はシステムグローバルの /etc/screenrc に設定する。 "-n" を使
うと行送りを抑制できる。"sleep" も参照すること。 echo は環境変数をオ ン
ラインで調べる時にも便利である。
encoding enc [enc]
入 出力の解釈方法を screen に伝える。最初の引き数はカレントウィンドウの
エンコーディングを設定する。各ウィンドウは別々のエンコーディングをエ ミ
ュ レートできる。二番目のパラメータは省略可能であるが、これを指定すると
接続している端末のエンコーディングを上書き設定する。 screen はエンコ ー
デ ィングの検知にロケール設定を利用するので、これが必要になることは無い
はずである。端末のエンコーディングを端末のタイプによって変更する方法 と
しては、termcap の "KJ" エントリを用いる方法もある。
サ ポ ー ト さ れ ているエンコーディングは次の通り: eucJP, SJIS, eucKR,
eucCN, Big5, GBK, KOI8-R, 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 に設定し、 ("meta" コマンドを呼んで) リテラルコマンド
文字を生成する文字を y に設定する (-e オプションと同様)。各引き数には、
文 字 1 つ、 "^x" 形式 ("C-x" の意味) の 2 文字からなるシーケンス、バッ
クスラッシュの後に 8 進数を続けたもの (その文字の ASCII コードを指定 す
る) 、 バックスラッシュの後に 2 番目の文字を続けたもの ("\^" や "\\" な
ど)、のいずれかを指定できる。デフォルト値は "^Aa" である。
eval command1 [command2 ...]
各引き数をパースして、別々のコマンドとして実行する。
exec [[fdpat] newcommand [args ...]]
実行パス newcommand およびその引き数 (省略可) で指定された unix サブ プ
ロ セスを現在のウィンドウで実行する。 newcommand と標準入力/標準出力/標
準エラー出力の間のデータフロー、もともとこのウィンドウで開始されたプ ロ
セス (これを「アプリケーションプロセス」と呼ぼう)、 screen そのもの (ウ
ィンドウ)、の三つは、ファイルディスクリプタパターン fdpat で制御する 。
このパターンは基本的に 3 つの文字からなるシーケンスで、 newcommand の標
準入力、標準出力、標準エラー出力を表す。ドット (.) はファイルディスクリ
プタを screen に接続する。感嘆符 (!) はファイルディスクリプタを既に実行
中のプロセスに接続する。コロン (:) は両方を結合させる。ユー ザ 入 力 は
newcommand に送られる。ただし newcommand が「アプリケーションプロセス」
の出力を受けていたり (fdpats の最初の文字が ‘!’ または ‘:’)、パイプ (|)
が fdpat の最後に (4 番目の文字として) 追加されている場合は別である。
引 き数を付けずに ‘exec’ を実行すると、現在実行中のサブプロセスの名前と
引き数とがそのウィンドウに表示される。各ウィンドウで一度に動作できる サ
ブプロセスはひとつだけである。
サブプロセスの実行中には、‘kill’ コマンドはウィンドウのプロセスではなく
サブプロセスに影響する。
この 21 通りもある組み合わせを描いた難解な図については、 PostScript 形
式 のファイル ‘doc/fdpat.ps’ を参照のこと。それぞれの図には、newcommand
の三つのファイルデスクリプタを表す数字 2,1,0 が書かれている。‘W’ の印が
付いた四角は普通の pty で、このスレーブ側にアプリケーションプロセスがあ
る。 ‘P’ の印が付いた四角はセカンダリの pty で、このマスター側に screen
が属することになる。
省略形:
‘exec’ と fdpat とコマンドの間の空白は省略できる。末尾のドットと、ドッ
トだけからなる fdpat は省略できる。単に ‘|’ と書くとパターン ‘!..|’ と
同義になる。この場合には exec を省略でき、常に ‘!’ で置き換え可能である
。
実行例:
exec ... /bin/sh
exec /bin/sh
!/bin/sh
同じウィンドウで、元のシェルを実行させたまま別のシェルを生成する。両 方
のシェルの出力が表示され、ユーザの入力は新しい /bin/sh に送られる。
exec !.. stty 19200
exec ! stty 19200
!!stty 19200
ウィンドウの tty の速度を設定する。 stty コマンドが標準出力を操作する場
合には、もうひとつ ‘!’ を追加すること。
exec !..| less
|less
これはウィンドウ出力にページャを追加する。ユーザ制御をページャ越しに 行
い 、しかしページャにウィンドウのプロセスから入力を取得させるには、この
特殊文字 ‘|’ が必要である。これが動作するのは、標準入力が tty でない と
き 、 less が標準エラー出力を監視する (‘|’ が無ければ screen が想定しな
い動作) からである。バージョンが 177 より新しい less はここではまともに
動作しない。この場合でも古き良き pg なら動作する。
!:sed -n s/.*Error.*/\007/p
ウィンドウの出力をユーザと sed コマンドの両方に送る。sed は、 screen の
表示するウィンドウ出力にベル文字 (8 進値で 007) を追加挿入する。これ を
実行すると、このウィンドウに "Error" という文字列が現われると必ず "Bell
in window x" というメッセージが出力される。
fit
ウィンドウのサイズを現在のリージョンのサイズにする。このコマンドが必 要
なのは、screen はウィンドウが複数表示されている場合には自動的なウィンド
ウサイズ調整を行わないためである。
flow [on|off|auto]
このウィンドウのフロー制御モードを設定する。パラメータを与えないと、 現
在 のウィンドウのフロー制御設定を "automatic", "on", "off" の順に切り替
える。詳細および注意点については、本ドキュメントで後述する『フロー制 御
』 での議論を参照すること。これは将来のリリースでは変更されることになっ
ている。デフォルトでは ‘defflow’ に設定されている。
focus [up|down|top|bottom]
入力フォーカスを次のリージョンに移す。これは循環的に行われるので、一 番
下 のリージョンの次には一番上のリージョンが選択される。サブコマンドを省
略したときのデフォルトの動作は ‘down’ である。‘up’ とすると逆順に 回 り
、‘top’ では一番上の、‘bottom’ では一番下のリージョンに移動する。便利な
キーバインディングを以下に示す (j や k は vi 流):
bind j focus down
bind k focus up
bind t focus top
bind b focus bottom
gr [on|off]
GR 文字集合のオン/オフを切り替える。 screen は、8 ビット目が立ってい る
入 力文字を見つけると、必ず GR スロットに格納されている文字集合を使用し
、 8 番目のビットを取り除いて文字を出力する。デフォルトでは ("defgr" も
参 照) GR 切り替えは処理しない (処理してしまうと ISO8859-1 文字集合が使
えないためである)。
hardcopy [-h] [file]
現在表示されている画面イメージを Ifile に書き込む。ファイル名を指定しな
い と 、デフォルトディレクトリの hardcopy.n というファイルに書き込む (n
はカレントウィンドウの番号)。ファイルが存在する場合には、追加か上書きの
どちらかが行われる。詳しくは次項を参照。-h オプションを与えると、スクロ
ールバックバッファの内容も書き込まれる。
hardcopy_append on|off
"on" に設定されていると、 screen はコマンド "C-a h" で生成される "hard-
copy.n" ファイルに対して追加書き込みを行う。 "off" の場合には、このファ
イルは毎回上書きされる。デフォルト値は ‘off’ である。
hardcopydir directory
ハードコピーファイルが置かれるディレクトリを定義する。設定されていな い
場 合には、ハードコピーは screen のカレントワーキングディレクトリにダン
プされる。
hardstatus [on|off]
hardstatus [always]lastline|message|ignore [string]
hardstatus string [string]
端末のハードステータス行の利用とエミュレーションに関する設定をする。 最
初 の形式では、 screen がハードステータス行をメッセージ表示に用いるかど
うかをトグルする。このフラグが "off" ならば、メッセージは表示行に反転ビ
デオモードでオーバーレイ表示される。デフォルトの設定は ‘on’ である。
二番目の形式は、ハードステータス行が端末に無い (つまり termcap/terminfo
の "hs", "ts", "fs", "ds" といった機能が設定されていない) 場合にどう す
るかについて screen に指示する。"lastline" を指定すると、 screen は画面
の一番下の行を反転させてハードステータスとして用いる。 "message" を指定
すると screen のメッセージ機構が用いられ、"ignore" とするとハードステー
タスは一切表示されなくなる。これらの指定の前に "always" をつける (例 え
ば "alwayslastline") と、 screen は端末がハードステータス行をサポートし
ている場合でもその指定を用いる。
三番目の形式はハードステータス行の内容を指定する。 ("ESC]0;
Copyright(C) linux-cmd.com All Rights Reserved. Author Takayuki Yukawa