Man page - console_codes(4)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr pt_BR es pl ko ja ru zh_TW zh_CN deManual
CONSOLE_CODES
名 前説 明
Linux コ ン ソ ー ル コ ン ト ロ ー ル
文 字 集 合
マ ウ ス ト ラ ッ キ ン グ
他 の タ ー ミ ナ ル と の 比 較
注 意
バ グ
関 連 項 目
こ の 文 書 に つ い て
名 前
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 シ ー ケ ン ス で な い も の |
ECMA-48 CSI シ ー ケ ン ス
CSI (ま た は ESC [ ) の あ と に 、 最 大 で NPAR (16) 個 の セ ミ コ ロ ン で 区 切 ら れ た 10 進 数 の パ ラ メ ー タ ー シ ー ケ ン ス が 続 く 。 空 で あ る か そ こ に な い パ ラ メ ー タ ー は 0 と さ れ る 。 パ ラ メ ー タ ー シ ー ケ ン ス の 前 に は ひ と つ の ク エ ス チ ョ ン マ ー ク が つ く こ と が あ る 。
し か し 、 CSI [ (ま た は ESC [ [ ) の 後 で は 、 一 文 字 が 読 ま れ 、 こ の す べ て の パ ラ メ ー タ ー シ ー ケ ン ス が 無 視 さ れ る (要 す る に フ ァ ン ク シ ョ ン キ ー の エ コ ー は 無 視 さ れ る と い う こ と で あ る )。
|
CSI シ ー ケ ン ス の 動 作 は 、 そ の 最 後 の 文 字 に よ っ て 決 ま る 。 |
ECMA-48 グ ラ フ ィ ク ス レ ン デ ィ シ ョ ン (Graphics Rendition)の 設 定
|
ECMA-48 SGR シ ー ケ ン ス ESC [ <パ ラ メ ー タ ー > m は 表 示 属 性 を 設 定 す る 。 セ ミ コ ロ ン で 区 切 る こ と で 、 同 じ シ ー ケ ン ス で い く つ か の 属 性 を 設 定 で き る 。 空 パ ラ メ ー タ ー (セ ミ コ ロ ン か 文 字 列 開 始 文 字 か 文 字 列 終 端 文 字 の 間 )は ゼ ロ と 解 釈 さ れ る 。 |
|
Commands 38 and 48 require further arguments: |
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 = 白 ; 8–15 は 0–7 の 色 が 明 る い バ ー ジ ョ ン で あ る 。 |
文 字 集 合
カ ー ネ ル は 、 バ イ ト 列 か ら コ ン ソ ー ル ス ク リ ー ン 符 号 の 変 換 を 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, x と y は マ ウ ス が ボ タ ン が 押 さ れ た 時 の 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。 そ し て 、 上 位 と 下 位 ビ ッ ト が 加 算 さ れ る 。 こ こ で も x と y は 、 マ ウ ス イ ベ ン ト が 起 こ っ た 時 の 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 コ ン ソ ー ル シ ー ケ ン ス は 以 下 の 通 り : |
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 コ ン ト ロ ー ル シ ー ケ ン ス の 一 部 で あ る 。 |
|
以 下 の も の は 、 少 し 違 っ た 意 味 に と ら れ る (よ り 多 く の 状 態 を 保 存 し 、 よ り VT100/VT220 に 近 い ふ る ま い を す る ): |
|
ま た 、 次 の も の も 認 識 す る : |
ま た 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 の 不 可 視 テ キ ス ト の コ ン ト ロ ー ル シ ー ケ ン ス を 認 識 す る か の よ う に 書 か れ て い た 。 こ れ は 無 視 さ れ る 。
関 連 項 目
ioctl_console (2), charsets (7)
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 5.10 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は https://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。