Provided by: manpages-ja_0.5.0.0.20131015+dfsg-2_all bug

名前

       console_codes - Linux コンソールのエスケープシーケンスとコントロール シーケンス

説明

       Linux  コンソールは  VT102 と ECMA-48/ISO6429/ANSI X3.64 端末コンソールの サブセットに、カ
       ラーパレットや文字集合のマッピングなどを変更する  プライベートモードシーケンスを加えて実装
       されている。 以下の表では、機能の ECMA-48 または DEC のニーモニクス(DECで始まれば後者)を 2
       番目の桁に記す。 ニーモニクスのないものは ECMA-48 でも VT102 でもないものである。

       すべての出力作業が終って、実際に印字するために文字のストリームが  コンソールドライバーに届
       いた時、最初に行なわれるのが、処理用コードから 印字用のコードへの変換である。

       もし、コンソールが UTF-8 モードなら、入って来たバイト(byte)は 16 ビットの Unicode に組み立
       てられる。そうでなければ、それぞれの バイトは現在の(各バイトを Unicode の値に変換する)マッ
       ピングテーブルに 従って変換される。これに関しては下のキャラクターセット(Charcter Sets)  節
       を参照のこと。

       通常、Unicode の値はフォントインデックス(font index)  に変換され、  ビデオメモリに蓄えられ
       る。そして(ビデオ  ROM 中に見付けられる)  対応するグリフ(glyph)が画面に現れる。 Unicode を
       用いると、(PC 互換機の設計では) 512 の異なった グリフを同時に利用できるようになる。

       現在の Unicode の値がコントロール文字であるかエスケープシーケンスを 処理している時には、そ
       の値は特別に扱われる。      フォントのインデックスに変換されてグリフとして表示される代わり
       に、カーソルの 移動やその他のコントロール機能を実行させる。 詳しいことは、後述の「LINUX コ
       ンソールコントロール」のセクションを参照のこと。

       一般に端末コントロールコードをプログラム中に直接記述するのは   良いことではない。  Linuxで
       は、端末において実現可能な操作のデータベースである terminfo(5)  をサポートしている。  コン
       ソールエスケープシーケンスをわざわざ入力するよりも、ほとんどの場合 terminfo の情報を参照す
       る ncurses(3), tput(1), や reset(1) などのスクリーンライブラリやユーティリティーを使いたい
       と思うであろう。

   Linux コンソールコントロール
       この章では  Linux コンソールにおいて特殊な機能(つまり、現在のカーソル位置に 文字のイメージ
       を印字する以外のこと)を起こさせる全てのコントロール文字と エスケープシーケンスについて述べ
       る。

       コントロール文字

       コントロール文字とは、(マッピングテーブルによる変換前のコードが)   00  (NUL), 07 (BEL), 08
       (BS), 09 (HT), 0a (LF), 0b (VT), 0c (FF), 0d (CR), 0e (SO), 0f (SI), 18 (CAN),  1a  (SUB),
       1b  (ESC),  7f  (DEL)  の  14 のコードのうちのどれかである文字である。 "コントロール文字表
       示(display control characters)"モード(後述)を 設定すると、07, 09, 0b, 18, 1a, 7f  をグリフ
       として表示することができる。 一方、 UTF-8 モードでは、00-1f の全てのコードは、コントロール
       文字表示 モードが指定された場合でもコントロール文字として扱われる。

       コントロール文字がある時には、それはすぐに(たとえエスケープシーケンスの    途中でも)実行さ
       れ、破棄される。エスケープシーケンスは次の文字から続けられる (しかし、ESC は新しいエスケー
       プシーケンスを始めるので、    前の終了していないエスケープシーケンスが中止される可能性があ
       る。 さらに、CAN と SUB はどんなエスケープシーケンスも中止する)。 認められているコントロー
       ル文字は、BEL, BS, HT, LF, VT, FF, CR, SO, SI, CAN, SUB, ESC, DEL, CSI  である。これらは期
       待どおりの動作をする:

       BEL (0x07, ^G) はビープ音を鳴らす;

       BS (0x08, ^H) はバックスペース (ただし、行頭は越えない);

       HT  (0x09, ^I) は次のタブストップ(tab stop)へ移動する、そこから行末までに タブストップが無
              い場合は行の終りに移動する;

       LF (0x0A, ^J), VT (0x0B, ^K), FF (0x0C, ^L) これらは全て ラインフィード(linefeed)を与える;
              LF/NL  (ニューラインモード(new line mode))がセットされていれば キャリッジリターンも
              アクティブにする;

       CR (0x0D, ^M) はキャリッジリターンを与える;

       SO (0x0E, ^N) は G1 文字集合をアクティブにする。

       SI (0x0F, ^O) は G0 文字集合をアクティブにする;

       CAN (0x18, ^X) と SUB (0x1A, ^Z) はエスケープシーケンスを中断する;

       ESC (0x1B, ^[) はエスケープシーケンスを始める。

       DEL (0x7F) は無視される;

       CSI (0x9B) は ESC [ と等価。

       エスケープシーケンスであるが CSI シーケンスでないもの

       ESC c     RIS      リセット。
       ESC D     IND      ラインフィード。
       ESC E     NEL      ニューライン。
       ESC H     HTS      現在の桁の位置にタブストップを設定する。
       ESC M     RI       逆ラインフィード
       ESC Z     DECID    DEC固有の識別用。 カーネルは文字列 ESC  [  ?  6  c  を返す。  これは端末
                          がVT102であることを意味する。
       ESC 7     DECSC    現在の状態 (カーソルの座標、属性、G0, G1 で示している 文字集合) をセーブ
                          する。
       ESC 8     DECRC    最後に ESC 7 でセーブした状態を復帰させる。
       ESC [     CSI      コントロールシーケンスを導入する。
       ESC %              キャラクターセットを選択するシーケンスを開始する。
       ESC % @                デフォルト(ISO 646 / ISO 8859-1)を選択する。
       ESC % G                UTF-8 を選択する。
       ESC % 8                UTF-8 を選択する(旧式)。
       ESC # 8   DECALN   DEC のスクリーン調整テスト - スクリーンを E でうめる。
       ESC (              G0 文字集合を定義するシーケンスを開始する。
       ESC ( B                デフォルト(ISO 8859-1 マッピング)を選択する。
       ESC ( 0                VT100 グラフィクスマッピングを選択する。
       ESC ( U                ヌルマッピングを選択する - キャラクタ ROM から直接マッピングする。
       ESC ( K                ユーザー定義のマッピングを選択する - そのマップ
                              は mapscrn(8) ユーティリティーによってロードされる。
       ESC )              G1 を定義するシーケンスを開始する。
                          (すでに述べたように B, 0, U, K のどれかが次に続く)
       ESC >     DECPNM   数値キーパッドモード(numeric keypad mode)をセットする。
       ESC =     DECPAM   アプリケーションキーパッドモード(application keypad mode) をセットする。
       ESC ]     OSC      ("Operating system command"のことだろう) ESC ] P nrrggbb: 最後の P  のあ
                          との  7  つの 16 進数を パラメータとして :-( パレットをセットする。 ここ
                          で、nは色 (0-15)、rrggbbは赤/緑/青の値 (0-255)を意味する。 ESC ]  R:  パ
                          レットをリセットする。

       ECMA-48 CSI シーケンス

       CSI  (または  ESC  [ ) のあとに、最大で NPAR (16) 個のセミコロンで区切られた 10 進数のパラ
       メータシーケンスが続く。 空であるかそこにないパラメータは 0 とされる。  パラメータシーケン
       スの前にはひとつのクエスチョンマークがつくことがある。

       しかし、CSI  [ (または ESC [ [ ) の後では、一文字が読まれ、このすべての パラメータシーケン
       スが無視される(要するにファンクションキーのエコーは 無視されるということである)。

       CSI シーケンスの動作は、その最後の文字によって決まる。

       @   ICH       指示された数の空白文字を挿入する。
       A   CUU       指示された数だけカーソルを上方向に移動する。
       B   CUD       カーソルを指示された数の行だけ下方向に移動する。
       C   CUF       カーソルを指示された数の桁だけ右に移動する。
       D   CUB       カーソルを指示された数の桁だけ左に移動する。

       E   CNL       カーソルを指示された数の行だけ下の第 1 桁に移動する。
       F   CPL       カーソルを指示された数の行だけ上の第 1 桁に移動する。
       G   CHA       カーソルを現在の行の指示された桁に移動する。
       H   CUP       カーソルを指示された行、桁(1,1を原点とする)に移動する。
       J   ED        ディスプレイの消去(デフォルト: カーソルからディスプレイの最後まで)。
                     ESC [ 1 J: 最初からカーソルまでの消去。
                     ESC [ 2 J: ディスプレイ全体の消去。
                     ESC [ 3 J: スクロールバッファも含めたディスプレイ全体の
                                消去 (Linux 3.0 以降)。
       K   EL        行の消去(デフォルト: カーソルから行末まで)。
                     ESC [ 1 K: 行頭からカーソルまでの消去。
                     ESC [ 2 K: 行全体の消去。
       L   IL        指示された数の空行を挿入する。
       M   DL        指示された数の行を削除する。
       P   DCH       現在の行から指示された数の文字を削除する。
       X   ECH       現在の行から指示された数の文字を消去する。
       a   HPR       カーソルを指示された数の桁だけ右に移動する。
       c   DA        ESC [ ? 6 c を返す: "私はVT102です"(ということ)。
       d   VPA       カーソルを指示された行の現在の桁に移動する。
       e   VPR       カーソルを指示された行数だけ下に移動する。
       f   HVP       カーソルを指示された行、桁に移動する。
       g   TBC       パラメータなしの時: 現在位置のタブストップを削除する。
                     ESC [ 3 g: すべてのタブストップを削除する。
       h   SM        モードのセット(後述)。
       l   RM        モードのリセット(後述)。
       m   SGR       属性のセット(後述)。
       n   DSR       状態の報告(後述)。
       q   DECLL     キーボードの LED をセットする。
                     ESC [ 0 q: すべての LED を消す。
                     ESC [ 1 q: スクロールロック LED を点灯。
                     ESC [ 2 q: ナンバーロック LED を点灯。
                     ESC [ 3 q: キャピタルロック LED を点灯。
       r   DECSTBM   スクロールの範囲のセット; パラメータは一番上の行と一番下の行。
       s   ?         カーソル位置の保存。
       u   ?         カーソル位置の復帰。
       `   HPA       カーソルを現在の行の指示された桁に移動する。

       ECMA-48 グラフィクスレンディション(Graphics Rendition)の設定

       ECMA-48 SGR シーケンス ESC [ <パラメータ> m は表示属性を設定する。  セミコロンで区切ること
       で、同じシーケンスでいくつかの属性を設定できる。 空パラメータ(セミコロンか文字列開始文字か
       文字列終端文字の間)はゼロと解釈される。

       パラメータ   結果
       0            すべての属性をデフォルトにリセットする。
       1            ボールド(bold)をセット。
       2            ハーフブライト(half-bright)(カラーディスプレイでは色で代用)をセット。
       4            下線(underscore)をセット(カラーディスプレイでは色で代用)。  (ディムや
                    下線を代用するのに使われる色は ESC ] ... によりセット)
       5            点滅(blink)をセット。
       7            反転表示(reverce video)をセット。
       10           選択したマッピング、ディスプレイコントロールフラグ(display    control
                    flag)、 トグルメタフラグ(toggle meta  flag)をリセットする  (ECMA-48で
                    は"primary font"と呼んでいる)。
       11           ヌルマッピングを選択、ディスプレイコントロールフラグをセット、 トグル
                    メタフラグをリセットする (ECMA-48 では"first alternate  font"と呼んで
                    いる)。
       12           ヌルマッピングを選択、ディスプレイコントロールフラグをセット、 トグル
                    メタフラグをセットする (ECMA-48 では "second alternate font" と呼んで
                    いる)。 トグルメタフラグがたっていると、 マッピングテーブルによる変換
                    をする前に、 バイトの上位の1ビットがトグルされる。
       21           通常の輝度にセット(ECMA-48 では "doubly underlined" と呼んでいる)。
       22           通常の輝度にセット。
       24           下線オフ。
       25           点滅オフ。

       27           反転表示オフ。
       30           フォアグラウンド(foreground)を黒にセット。
       31           フォアグラウンドを赤にセット。
       32           フォアグラウンドを緑にセット。
       33           フォアグラウンドを茶にセット。
       34           フォアグラウンドを青にセット。
       35           フォアグラウンドをマゼンダにセット。
       36           フォアグラウンドをシアンにセット。
       37           フォアグラウンドを白にセット。
       38           下線表示に設定し、フォアグラウンドをデフォルトにセット。
       39           下線表示を解除し、フォアグラウンドをデフォルトにセット。
       40           バックグラウンド(background)を黒にセット。
       41           バックグラウンドを赤にセット。
       42           バックグラウンドを緑にセット。
       43           バックグラウンドを茶にセット。
       44           バックグラウンドを青にセット。
       45           バックグラウンドをマゼンダにセット。
       46           バックグラウンドをシアンにセット。
       47           バックグラウンドを白にセット。
       49           バックグラウンドをデフォルトにセット。

       ECMA-48 モードスイッチ(Mode Switches)

       ESC [ 3 h
              DECCRM (デフォルトではオフ): コントロール文字を表示する。

       ESC [ 4 h
              DECIM (デフォルトではオフ): 挿入モードにする。

       ESC [ 20 h
              LF/NL (デフォルトではオフ): LF, VT, FFをエコーしたあと自動的 CR をつける。

       ECMA-48 状態リポートコマンド(Status Report Commands)

       ESC [ 5 n
              デバイス状態のリポート(DSR): 返事は ESC [ 0 n (端末 OK).

       ESC [ 6 n
              カーソル位置のリポート(CPR): 返事は ESC [ y ; x  R、  x,y  はカーソルの位置をあらわ
              す。

       DEC プライベートモード (DECSET/DECRST) シーケンス

       これらは   ECMA-48   では記述されていない。ここでは、セットモード   シーケンス  (Set  Mode
       sequences)を記載する; 最後の 'h' を 'l' に 置き換えるとリセットモードシーケンス(Reset Mode
       sequences)になる。

       ESC [ ? 1 h
              DECCKM (デフォルトはオフ): セットされた時にはカーソルキーは ESC [ ではなく ESC O を
              前につけて送る。

       ESC [ ? 3 h
              DECCOLM (デフォルトはオフ = 80 桁): 80/132 の桁モード切替え。  ドライバーのソースの
              注釈には、これだけでは十分でなく  resizecons(8)  のようなユーザーモードのユーティリ
              ティーで、コンソールビデオカードの ハードウェアレジスタを変える必要があると書かれて
              いる。

       ESC [ ? 5 h
              DECSCNM (デフォルトはオフ): 反転表示モードのセット。

       ESC [ ? 6 h
              DECOM(デフォルトはオフ):  セットされた時には、カーソルのアドレッシングが、 スクロー
              ル範囲の左上隅からの相対位置になる。

       ESC [ ? 7 h
              DECAWM(デフォルトはオン): オートラップを設定。このモードの時は、80 桁 (DECCOLM がオ
              ンのときは 132 桁)を超えたグラフィックキャラクタは、 強制的に次の行の先頭に折り返さ
              れて表示される。

       ESC [ ? 8 h
              DECARM(デフォルトはオン): キーボードのオートリピートをオンにセット。

       ESC [ ? 9 h
              X10 マウスリポート(デフォルトはオフ): リポートモードを 1 にセット(または、  0  にリ
              セット)—後述

       ESC [ ? 25 h
              DECTECM (デフォルトはオン): カーソルを可視(visible)にする。

       ESC [ ? 1000 h
              X11  マウスリポート(デフォルトはオフ):  リポートモードを  2 にセット(または、 0にリ
              セット)—後述

       Linux コンソールプライベート CSI シーケンス

       以下のシーケンスは ECMA-48 のものでも本来の VT102 のものでもでもなく、 Linuxコンソールドラ
       イバーに固有なシーケンスである。色は SGR パラメータで 表現される: 0 = 黒, 1= 赤, 2 = 緑, 3
       = 茶, 4 = 青, 5 = マゼンタ, 6 = シアン, 7 = 白

       ESC [ 1 ; n ]      下線の色をn にセットする。
       ESC [ 2 ; n ]      ディムの色をn にセットする。
       ESC [ 8 ]          現在の色のペアをデフォルト属性にする。
       ESC [ 9 ; n ]      スクリーンブランク(screen blank)のタイムアウトを n 分にセットする。
       ESC [ 10 ; n ]     ベルの周波数(Hz)をセットする。
       ESC [ 11 ; n ]     ベルの鳴っている時間(msec)をセットする。
       ESC [ 12 ; n ]     指定のコンソールを前面に持ってくる。
       ESC [ 13 ]         スクリーンをアンブランク(Unblank)する。
       ESC [ 14 ]         VESA電源停止インターバル(VESA powerdown interval)をセットする。

   文字集合
       カーネルは、バイト列からコンソールスクリーン符号の変換を 4 つ 知っている。 4  つの変換テー
       ブルとは、a) Latin1 -> PC, b) VT100 graphics -> PC, c) PC -> PC, d) ユーザー定義, である。

       G0  と  G1 と呼ばれる二つの文字集合があり、そのうち一つが現在の 文字集合である(初期値は G0
       )。 ^N をタイプすると G1 が ^O を入力すると G0 が現在の文字集合になる。

       変数 G0 と G1 は変換テーブルを指しており、ユーザーにより変更できる。  最初はそれぞれテーブ
       ル  a) と テーブル b) を指している。 ESC ( B 、 ESC ( 0 、 ESC ( U 、 ESC ( K のそれぞれの
       シーケンスにより、 G0 が変換テーブル a)、 b)、 c)、 d) を指すようになる。 また、ESC ) B 、
       ESC  )  0 、 ESC ) U 、 ESC ) K のそれぞれのシーケンス により、G1 が変換テーブル a)、 b)、
       c)、 d) を指すようになる。

       ESC c のシーケンスは端末をリセットする。スクリーンがめちゃくちゃになった  時にそうすること
       が必要である。よくアドバイスされる  "echo ^V^O" は G0 を現在の文字集合にするだけであり、G0
       がテーブル  a)  を指しているという   保証はない。   いくつかのディストリビューションには、
       reset(1)   というプログラムが含まれるが、これはただ  "echo  ^[c" を実行するものである。 も
       し、コンソールの  terminfo  エントリーが正しい(かつ   rs1=\Ec   のエントリーが   ある)なら
       ば、"tput reset"でも同じ効果がある。

       ユーザー定義のマッピングテーブルは mapscrn(8)  を使って定義できる。 マッピングの結果、シン
       ボル c が印字されるとシンボル s = map[c] が ビデオメモリに送られる。s に対応するビットマッ
       プはキャラクター ROM にあり、 setfont(8) により変更可能である。

   マウストラッキング
       マウストラッキング機能は、     xterm(1)-互換の    マウスステータスリポート(mouse    status
       reports)を返させるためのものである。  コンソールドライバーはマウスのデバイスや種類について
       知る方法が  ないので、仮想ターミナルドライバーがマウス更新の ioctl を受け取った時だけ、 マ
       ウスステータスリポートがコンソールの入力ストリームに送られる。  この  ioctl  は、   gpm(8)
       デーモンのようなマウス対応のユーザーモード アプリケーションが発生しなければならない。

       xterm(1) によって生成される全てのマウス追跡エスケープシーケンスのための パラメータは、数値
       を value+040 のように符号化し、一つの文字として あらわす。 例えば、'!' は  1  になる。スク
       リーン座標は 1 をベースにする。

       X10  互換モードでは、ボタンが押された時にマウスの位置と押されたマウスの ボタンとをエンコー
       ドしたエスケープシーケンスを送る。 この機能は ESC [ ? 9 h を送ると有効になり ESC [ ?  9  l
       により無効になる。 ボタンが押されると xterm(1) は ESC [ M bxy (の 6 文字)を送る。 ここで b
       は button-1, xy は マウスがボタンが押された 時の x と y 座標である。  このコードはカー
       ネルが発生するのと同じコードである。

       ノーマルトラッキングモード(Normal  tracking  mode)(Linux  2.0.24  では 実装されていない)で
       は、両方のボタンが押されたか離された時に エスケープシーケンスが送られる。 モディファイアの
       情報も一緒に送られる。 この機能は、ESC [ ? 1000 h を送ると有効になり ESC [ ? 1000 l で無効
       になる。 ボタンが押されるか離されるかした時には、xterm(1) は ESC [ M bxy を送る。 b の低位
       の2ビットにはボタン情報がエンコードされる:  0=MB1 が押された, 1=MB2 が押された, 2=MB3 が押
       された, 3=離された。  高位のビットには、ボタンが押された時にどのモディファイアがダウンして
       いたかが  エンコードされる: 4=Shift, 8=Meta, 16=Control。 そして、上位と下位ビットが加算さ
       れる。 ここでも xy  は、マウスイベントが起こった時の  x  と  y  座標であり、左上の隅
       が(1,1)である。

   他のターミナルとの比較
       多くの異なるターミナルタイプが、Linux  コンソールのように、"VT100互換"を 名乗っている。 こ
       こでは、Linux コンソールと 2 つの最も重要なターミナルである DEC VT102 と xterm(1)   との違
       いについて述べる。

       コントロール文字の取り扱い

       VT102 は以下のコントロール文字も認識する:

       NUL (0x00) は無視される;

       ENQ (0x05) はアンサーバックメッセージ(answerback message)を発生する;

       DC1 (0x11, ^Q, XON) は送信を再開する;

       DC3 (0x13, ^S, XOFF) は VT100 に XOFF と XON 以外のコードを無視(そして 送信の停止)を起こさ
              せる。

       端末ドライバーにより VT100 に似た DC1/DC3 処理を有効にする。

       xterm(1)  (VT100 モード)は BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC の  コントロール文字を
       認識する。

       エスケープシーケンス

       Linux コンソールで実装されていない VT100 コンソールシーケンスは以下の通り:

       ESC N       SS2   シングルシフト 2 (次の文字だけ G2
                         文字集合を選択する)。
       ESC O       SS3   シングルシフト 3 (次の文字だけ G3
                         文字集合を選択する)。
       ESC P       DCS   デバイス制御文字列 (ESC \ で終わる)
       ESC X       SOS   文字列の始まり。
       ESC ^       PM    プライバシーメッセージ(ESC \ で終わる)。
       ESC \       ST    文字列の終端文字。
       ESC * ...         G2 文字集合を指定する。
       ESC + ...         G3 文字集合を指定する。

       xterm(1)   (VT100  モード)は ESC c, ESC # 8, ESC >, ESC =, ESC D, ESC E, ESC H, ESC M, ESC
       N, ESC O, ESC P ... ESC \, ESC Z を認識する("わたしは高等ビデオオプション付きの  VT100  で
       す"という  意味で  ESC  [ ? 1 ; 2 c と返答する)、ESC ^ ... ESC \ は上述と同じ意味を あらわ
       す。ESC (, ESC ), ESC *, ESC + に続く 0, A, B を DEC 特殊文字と して受け、それぞれラインド
       ローイング(line drawing) のセット、UK、 US-ASCII をあらわす。

       ユーザーは xterm(1) が VT220 特有のコントロールシーケンスに 反応するように設定でき、また設
       定と初期化のされかたによって 自分自身を VT52, VT100 などと認識する。

       xterm は、特定のリソースの設定のために ESC ] (OSC) を受け付ける。 ECMA-48 の文字列終端文字
       (ST)  に加えて、  xterm(1)  は  BEL  を  OSC 文字列を終端するものとして受け付ける。 以下は
       xterm(1) が認識する OSC コントロールシーケンスの一部である。

       ESC ] 0 ; txt ST        アイコン名とウインドウタイトルを txt にセットする。
       ESC ] 1 ; txt ST        アイコン名を txt にセットする。
       ESC ] 2 ; txt ST        ウインドウタイトルを txt にセットする。
       ESC ] 4 ; num; txt ST   ANSI 色 numtxt にセットする。
       ESC ] 10 ; txt ST       動的テキスト色を txt にセットする。
       ESC ] 4 6 ; name ST     チェンジログファイルを name に変更する(通常は
                               コンパイル時オプションにより無効になっている)。
       ESC ] 5 0 ; fn ST       フォントを fn にセットする。

       以下のものは、少し違った意味にとられる (より多くの状態を保存し、より VT100/VT220  に近いふ
       るまいをする):

       ESC 7  DECSC   カーソルの保存。
       ESC 8  DECRC   カーソルの復元。

       また、次のものも認識する:

       ESC F          カーソルをスクリーンの左下に移動する。
                      (xterm(1) の hpLowerleftBugCompatリソースにより有効な時)
       ESC l          (HP ターミナル毎に)メモリロック。
                      カーソルより上のメモリをロックする。
       ESC m          (HP ターミナル毎に)メモリロックを解除する。
       ESC n   LS2    G2 文字集合の呼び出し。
       ESC o   LS3    G3 文字集合の呼び出し。
       ESC |   LS3R   G3 文字集合を GR として呼び出す。
       ESC }   LS2R   G2 文字集合を GR として呼び出す。
       ESC ~   LS1R   G1 文字集合を GR として呼び出す。

       また ESC % を認識し、Linux コンソールより更に完全な UTF-8 実装を提供する。

       CSI シーケンス

       X11R5  由来のような、古いバージョンの xterm(1) はブリンク SGR を ボールド SGR として解釈す
       る。 1995 年の XFree86 3.1.2A のような、ANSI  カラーが実装された、より新しい  バージョンで
       は、ブリンク属性を色として表示することによってこれを   改善している。   最近のバージョンの
       xterm はブリンク SGR をテキストをブリンクさせることで 実装し、さらにまた、SGR 表示の代替案
       として色付きのテキストも利用できる。  Stock  X11R6  版では、XFree86 xterm が組み入れられた
       X11R6.8 リリースまで 色設定 SGR を認識しなかった。  Linux  が認識する他のすべての  ECMA-48
       CSI シーケンスは xterm でも認識されるが、xterm(1) は Linux が認識しない いくつかの ECMA-48
       と DEC のコントロールシーケンスも実装している。

       xterm(1) は上述のすべての DEC  プライベートモードのシーケンスを認識するが、  Linux  プライ
       ベートモードのシーケンスはどれも認識しない。 xterm(1) 自身のプライベートモードシーケンスに
       関しての議論は、 X 配布とともに入手可能な Edward Moy, Stephen Gildea,Thomas E. Dickey によ
       る Xterm Control Sequences ドキュメントを参照されたい。 このドキュメントは、簡潔なものであ
       るが、このマニュアルページより 遥かに長いものである。 年代順の概観としては、

              ⟨http://invisible-island.net/xterm/xterm.log.html⟩

       には xterm の変更の詳細がある。

       vttest は

              ⟨http://invisible-island.net/vttest/⟩

       で入手でき、これらのコントロールシーケンスの多くに関するデモを行う。  xterm(1)  ソース配布
       パッケージには その他の機能を学ぶことが出来るサンプルスクリプトが入っている。

注意

       ESC 8 (DECRC) は ESC % で変更された文字集合を復元することはできない。

バグ

       2.0.23 では CSI が壊れていて、エスケープシーケンス中の NUL が 無視されない。

       古いバージョン(2.0 以降)のカーネルには、8 ビット制御シーケンスを解釈する。 これらの "C1 コ
       ントロール" は ESC [, ESC ] および同様な制御シーケンス 起動子を置き換えるために  128  から
       159  のコードを使う。  新しいカーネルでは (UTF-8 対応の変更時に見落とされたか壊れたために)
       寸断しているが、実装は不完全で信頼できないものと評価されている。

       Linux "プライベートモード" シーケンスは ECMA-48 のプライベートモード  コントロールシーケン
       スのルールに従っていない。  特に、 ] で終わるものは標準終端文字を使えない。 OSC(パレット設
       定)シーケンスは大きな問題がある。 xterm(1) はこれを文字列終端文字 (ST)  が必要なコントロー
       ルシーケンスと 解釈するかもしれないからである。 (不正なコントロールシーケンスなので)無視さ
       れる setterm(1) シーケンスと 違い、パレットシーケンスは xterm(1)  をハングさせるかもしれな
       い (しかしリターンキーを押すことで回復できる)。 Linux コントロールシーケンスをハードコード
       しているアプリケーションに 適応させるには、xterm(1) リソースの brokenLinuxOSC を 真 (true)
       に設定する。

       このドキュメントの古いバージョンでは、Linux が ECMA-48 の不可視テキストの コントロールシー
       ケンスを認識するかのように書かれていた。 これは無視される。

関連項目

       console(4), console_ioctl(4), charsets(7)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部  である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。