|
| ||||||||||||
| ||||||||||||
|
2004 г.
Linux для пользователяВиктор Костромин, http://rus-linux.net/Глава 11. Русификация и шрифты
11.5. Кириллизация shell и других программК сожалению, в Linux нет единой системы работы со шрифтами. Каждую отдельную программу, каждое приложение надо отдельно настраивать для того, чтобы эта программа могла использовать шрифты True Type, Type 1 или какие-то другие, почему-либо привлекательные для вас. И в каждой программе это может делаться по-своему! Я приведу здесь краткие рекомендации по русификации некоторых наиболее употребительных программ. Эти рекомендации заимствованы из [П13.1]. Однако, перечень этот далеко не полон, так что ответы на те вопросы, которые мне не удалось осветить, ищите в источниках, ссылки на которые приведены в конце книги. Для полноценной работы с кириллицей в текстовом режиме необходимо, чтобы программы умели интерпретировать значения 8-го бита в коде ASCII (напомним, что первоначально этот код был 7-ми битным). Вот этого давайте и добьемся. bashХотя для большинства программ вполне достаточно установки LANG=ru_RU.KOI8-R чтобы начать распознавать русские буквы, многие программы, основанные на библиотеке readline (например bash) все равно считают символы с кодами больше 128 особыми META-символами (пищит при вводе). Чтобы "отучить" библиотеку readline от этого, необходимо установить три переменные. set meta-flag on set convert-meta off set output-meta on Этого можно добиться разными способами. Поскольку вы являетесь суперпользователем своего компьютера, можно определить переменную INPUTRC=, например, создав файл /etc/profile.d/readline.sh следующего содержания: #!/bin/bash INPUTRC="/etc/inputrc"; export INPUTRC и сделать этот файл исполняемым. Кроме того, прописать в файле /etc/inputrc set meta-flag on set convert-meta off set output-meta on После этого библиотека readline (и bash) начнет воспринимать русские буквы. Еще один вариант: не задавать INPUTRC=, а прописать те же значения в файле ~/.inputrc в домашнем каталоге каждого пользователя. См. страницу man readline . lessЕсли локализация не настроена (а она обязана быть настроенной), то вывод кириллицы через less можно получить, установив переменную окружения LESSCHARSET: export LESSCHARSET=koi8-r Это решение годится для всех 8-битовых кириллических кодировок. При правильно настроенной локализации указывать LESSCHARSET НЕ НАДО. Более того, в ~/.lesskey надо добавить #env LESSCHARSET= чтобы программа игнорировала установку LESSCHARSET= другими "глупыми" программами (к примеру, man). После этого надо запустить lesskey для получения бинарного файла ~/.less. В противном случае он не будет вызывать setlocale(LC_CTYPE,"") и, как следствие, не будет icase search для русских букв. manВ последнее время появляется все больше и больше man-статей, переведенных на русский язык, но вот отобразить их не всегда удается. Для исправления этого неудобства следует поправить соответствующие строки в /usr/lib/man.config, если этот файл есть, или правильно настроить less. nroffДля того, чтобы через nroff можно было "пропустить" символы кириллицы, надо использовать его с ключом -Tlatin1. Пропишите где-нибудь в стартовом скрипте (если у вас bash, то в .bashrc) alias nroff='nroff -Tlatin1' Просмотр некоторых файлов в mc запускается через nroff, вызов которого осуществляется по расширению имени файла. Поэтому в файле /usr/lib/mc/mc.ext следует в строке вызова nroff изменить параметр вызова с -Tascii на -Tlatin1. lsЕсли локализация настроена неправильно, то ls не будет печатать кириллические символы. В этом случае, возможно, поможет одна из следующих команд: ls -N, dir -N или ls --show-control-chars. mc (The Midnight Commander)Чтобы корректно отображался текст кириллицы, необходимо установить флажки в опции Полный 8-битный вывод (full 8 bits) и Полный 8-битный ввод в команде меню Настройки | Биты символов (Options | Display). Диски Win'95 и DOSЧтобы подмонтировать диск Windows'95 и DOS с правильной поддержкой русских букв, необходимо воспользоваться командой: [user]$ mount -t vfat -o umask=002,noexec,gid=500,codepage=866,iocharset=koi8-r /dev/hdb1 /mnt То есть все русские имена на диске FAT сохраняются в Codepage 866 ! Для работы этой опции ядро (>2.0.36) должно быть пересобрано с поддержкой NLS, кодовыми страницами CP866, NLS KOI8-R и, конечно же, с поддержкой VFAT. SambaЧтобы увидеть русские буквы в именах файлов на диске Samba, в файл /etc/smb.conf следует добавить строки: [global] character set = koi8-r client code page = 866 preserve case = yes short preserve case = yes Первые две опции указывает внутреннюю кодировку имен файловой системы (client code page) и внешнюю кодировку пользователя (character set). Следующие две опции указывают, что надо сохранять регистр длинных и коротких имен файлов. rloginУдостоверьтесь, что shell на месте адресата установлена правильно. Если ваш rlogin не работает как надо по умолчанию, то используйте 'rlogin -8'. Пропишите в стартовом скрипте (если вы используете bash, то это .bashrc) alias rlogin='rlogin -8' telnetЕсли возникают проблемы с вводом русских символов, надо создать файл ~/.telnetrc со следующей строкой: DEFAULT set outbinary Вы можете встретить проблемы при работе в кодировке cp1251 -- не передается маленькая русская буква "я" (ASCII-код 0xff). У протокола Telnet 0xff -- это первый символ управляющей последовательности. Дабы передать собственно "я", нужно его удваивать: 0xff, 0xff. При использовании KOI8-R такая проблема отсутствует. IrcIIДобавить в файл конфигурации ~/.ircrc следующие строчки: /set translation russian /set eight_bit_characters on
|
|
CITForum © 1997–2025