Довольно много дистрибутивов Linux устанавливают kbd как обязательную часть системы. Сам пакет доступен по адресу kbd.
Пакет kbd содержит утилиты управления клавиатурой, кроме этого, с ним поставляется широкий выбор шрифтов и раскладок.
Установка кириллицы с помощью kbd обычно состоит из:
Загрузки соответствующей раскладки клавиатуры с помощью программы loadkeys. Практически в каждом дистрибутиве можно установить раскладку клавиатуры, которую система загружает по умолчанию во время загрузки, с помощью соответствующей программы настройки (например, для RedHat — это /usr/sbin/kbdconfig). Вы также можете просто запустить loadkeys из вашего ˜/.profile или сделать это руками.
Настройки экранного шрифта. Это делается с помощью программы setfont. Файлы шрифтов находятся в /usr/lib/kbd/consolefonts.
Если вы являетесь приверженцем программ, работающих в текстовом режиме и использующих достоинства псевдографики PC (таких как Midnight Commander), то вы можете предпочесть использовать шрифты с CP866 кодировкой и консольной раскладкой (console character map). Это означает, что ваша консоль отображает CP866 шрифты, но все кириллические символы, соответствующие KOI8-R кодировки, соответственным образом отображаются в CP866 и поэтому выглядят правильно. Преимущество этого метода заключается в том, что он позволяет использовать псевдографические символы кодировки CP866.
Ниже перечислены команды, которые позволяют достичь этого эффекта.
loadkeys /usr/lib/kbd/keytables/ru.map setfont /usr/lib/kbd/consolefonts/Cyr_a8x16 mapscrn /usr/lib/kbd/consoletrans/koi2alt # ниже идёт магическая последовательность echo -ne "\033(K"
При кириллизации всех консолей при загрузке системы вместо строчки
echo -ne "\033(K"
следует использовать строчку которая кириллизует все терминалы
for i in 1 2 3 4 5 6 7; do echo -ne "\033(K" > /dev/tty$i; done
Этого же эффекта можно достичь следующим способом:
Для тех систем, где файл /etc/issue не меняется в стартовых скриптах можно один раз в жизни сказать:
echo -ne "\033(K" >> /etc/issue
Наличие в системе /etc/issue можно проверить путем:
grep -r "/etc/issue" /etc |grep ">>"
В новых системах /etc/issue обычно стало модно перезаписывать в стартовых скриптах, где именно, можно найти с помощью вышеупомянутого grep'а, добавить в эти скрипты echo -ne .... но при этом быть внимательным, чтобы не добавить эти же магические символы в /ets/issue.net, который используется для всех telnet—сессий, а не для консоли.
Магическая последовательность необходима для перекодировки вывода символов на экран, если вы используете CP866 шрифты. Она работает, и этого достаточно для спокойной жизни. Однако, если вам любопытно, то посмотрите документацию к пакету kbd.