Linux コンソール
Wikipedia より:
- Linux コンソールは、Linux カーネル に内蔵されているシステムコンソールです。Linux コンソールは、カーネルや他のプロセスがテキスト出力をユーザに送信したり、ユーザからのテキスト入力を受信したりするための方法を提供します。ユーザは通常、コンピュータのキーボードでテキストを入力し、出力されたテキストをコンピュータのモニタで読みます。Linux カーネルは仮想コンソールをサポートしています - コンソールは論理的に分離されていますが、同じ物理キーボードとディスプレイにアクセスします。
この記事では、Linux コンソールの基本とフォント表示の設定方法について説明します。キーボードの設定は、コンソールでのキーボード設定 サブページで説明しています。
目次
実装
コンソールは、ユーザーと直接対話するほとんどのサービスとは異なり、カーネルに実装されています。これは、通常のアプリケーションとしてユーザースペースに実装される、Xterm などの端末エミュレーションソフトウェアとは対照的です。コンソールは常にリリースされた Linux カーネルの一部でしたが、その歴史に変化を遂げてきました。最も顕著なのは、framebuffer の使用と、Unicode のサポートへの移行です。
コンソールには多くの改良が施されていますが、レガシーハードウェアとの完全な下位互換性があるため、グラフィカルターミナルエミュレータと比較すると制限があります。
仮想コンソール
コンソールは、一連の仮想コンソールとしてユーザーに表示されます。それぞれの仮想コンソールは、異なるユーザーでログインし、独自のシェルを実行し、独自のフォント設定を持つことができます。仮想コンソールはそれぞれ /dev/ttyX
デバイスを使用し、Alt+Fx
(x
は 1 から始まる仮想コンソール番号と同じ) を押すことで切り替えが可能です。デバイス /dev/console
は自動的にアクティブな仮想コンソールにマップされます。
chvt(1)、openvt(1)、deallocvt(1) も参照してください。
テキストモード
Since Linux originally began as a kernel for PC hardware, the console was developed using standard IBM CGA/EGA/VGA graphics, which all PCs supported at the time. The graphics operated in VGA text mode, which provides a simple 80x25 character display with 16 colours. This legacy mode is similar to the capabilities of dedicated text terminals, such as the DEC VT100 series. It is still possible to boot in text mode if the system hardware supports it, but almost all modern distributions (including Arch Linux) use the framebuffer console instead.
フレームバッファーのコンソール
As Linux was ported to other non-PC architectures, a better solution was required, since other architectures do not use VGA-compatible graphics adapters, and may not support text modes at all. The framebuffer console was implemented to provide a standard console across all platforms, and so presents the same VGA-style interface regardless of the underlying graphics hardware. As such, the Linux console is not a terminal emulator, but a terminal in its own right. It uses the terminal type linux
, and is largely compatible with VT100.
キーボードショートカット
Keyboard Shortcut | Description |
---|---|
Ctrl+Alt+Del
|
Reboots the system (specified by the symlink /usr/lib/systemd/system/ctrl-alt-del.target )
|
Alt+F1 , F2 , F3 , ...
|
Switch to n-th virtual console |
Alt+ ←
|
Switch to previous virtual console |
Alt+ →
|
Switch to next virtual console |
Scroll Lock
|
When Scroll Lock is activated, input/output is locked |
Ctrl+c
|
Kills current task |
Ctrl+d
|
Inserts an EOF |
Ctrl+z
|
Pauses current Task |
See also console_codes(4).
フォント
仮想コンソールはカーネルに含まれているフォントと ASCII 文字セットがデフォルトで使用しますが、どちらも簡単に変えることができます。
コンソールフォントは 256 か 512 文字に制限されています。利用できるフォントは /usr/share/kbd/consolefonts/
にあります。
押したキーとコンピュータで使われる文字をつなぐ、キーマップは /usr/share/kbd/keymaps/
のサブディレクトリにあります。
プレビューとテスト
フォントで利用できる記号・文字は showconsolefont
コマンドでテーブル表示できます:
$ showconsolefont
setfont ユーティリティを使うことで一時的にフォントを変えることができます。フォントの名前 (/usr/share/kbd/consolefonts/
にあります) を指定してください:
$ setfont Lat2-Terminus16
任意で、使用する文字セットを -m
オプションで指定できます:
$ setfont Lat2-Terminus16 -m 8859-2
もし新しく変えたフォントに不満ならば、何も引数を付けないで実行することでデフォルトフォントに戻ります (コンソール画面が全く読めなくなってしまったときでも、このコマンドは動作します。なんとかしてコマンドを入力してください):
$ setfont
デフォルトフォントを変更
デフォルトフォントを変えるには、/etc/vconsole.conf
(このファイルは新しく作る必要があるかもしれません) の FONT
と FONT_MAP
で設定します。
Č, ž, đ, š or Ł, ę, ą, ś などの文字を表示するために lat2-16.psfu.gz
フォントを使うとします:
FONT=lat2-16
これで ISO/IEC 8859 の第2部がサイズ16で使われます。他の値にすればフォントサイズを変えられます (例: lat2-08
)。8859 によって定められている地域については、Wikipedia の表を見て下さい。X サーバーを使わずコンソールで作業することが多いならば Terminus フォントが推奨です。例えば ter-216b はラテン2、サイズ16、太字です。ter-216n は通常の太さになります。Terminus フォントは32までのサイズが揃っています。
フォントを変えたら、適切なフォントマップを設定します。lat2-16 の場合は:
FONT_MAP=8859-2
初期のユーザースペース、つまりブートプロセスでも特定のフォントを使いたい場合は、/etc/mkinitcpio.conf
で keymap
フックを使って下さい。詳しくは Mkinitcpio#HOOKS を参照してください。
ブート時にフォントが変わっていない、もしくは一時的にしか変わらなかった場合、グラフィックドライバが初期化されコンソールがフレームバッファに切り替わるときにリセットされている可能性があります。これを避けるには、グラフィックドライバを早くロードするようにしてください。Kernel Mode Setting#Early KMS start のサンプルを見るか他の方法で /etc/vconsole.conf
が適用される前にフレームバッファをセットアップするようにしてください。
HiDPI
HiDPI#Linux コンソール を参照。
Audible tones
PC スピーカー#Beep を参照。