Next Previous Contents

5. Кириллизация shell

5.1 bash

Для того чтобы заставить bash понять 8-ми битные символы, должны быть установлены три переменные. Лучше всего это сделать из файла ~/.inputrc.

Должны быть сделаны следующие установки:

set meta-flag on
set convert-meta off
set output-meta on

Следует отметить, что файл ~/.inputrc не имеет отношения непосредственно к bash - это конфигурационный файл библиотеки GNU readline, используемой bash-ем. Поэтому совет о .inputrc кириллизирует не только bash, но и многие другие программы (все использующие GNU readline).

Версии GNU readline во многих дистрибутивах, кроме файла ~/.inputrc используют также и общесистемный конфигурационный файл /etc/inputrc или /etc/Inputrc. Это дает возможность системному администратору сделать общесистемную "кириллизацию" сразу для всех пользователей. Если ваша система не использует общесистемный конфигурационный файл, то вы можете научить ее это делать. Создайте файл /etc/inputrc, а затем установите переменную окружения INPUTRC равную /etc/inputrc.

5.2 csh/tcsh

Поместите в .cshrc следующее:

setenv LC_CTYPE iso_8859_5
stty pass8

Если у вас нет POSIX-совместимого stty (только не в Linux), замените последнюю строчку следующей:

stty -istrip cs8

5.3 zsh

Сделайте то же самое, что делается для csh ( csh). Файл инициализации в этом случае - .zshrc или /etc/zshrc.

5.4 ksh

Что касается public domain реализации ksh - pdksh версии 5.1.3 и выше, то вы можете разрешить 8-ми разрядный ввод только для vi в режиме ввода. Для этого используйте:

set -o vi

5.5 less

Если локаль (см. раздел Настройка локали) не настроена (а она обязана быть настроенной), то вывод кириллицы через less можно получить установив переменную окружения LESSCHARSET:

export LESSCHARSET=koi8-r

Это решение годится для всех 8-битовых кириллических кодировок.

Старые версии less не поддерживали эту установку, поэтому вместо koi8-r в этом случае следует подставить latin1. При этом однако становятся недоступными символы чьи коды находятся в диапазоне 128-159. К счастью коды букв обычно вне этого диапазона.

При настроенной локали (см. раздел Настройка локали) указывать LESSCHARSET НЕ НАДО. Более того, в ~/.lesskey надо добавить

#env
LESSCHARSET=

чтобы программа игнорировала установку LESSCHARSET= другими "глупыми" программами (к примеру, man). После этого надо запустить lesskey для получения бинарного файла ~/.less. В противном случае он не будет вызывать setlocale(LC_CTYPE,"") и, как следствие, не будет icase search для русских букв.

5.6 mc (The Midnight Commander)

Чтобы увидеть кириллицу из mc, выберите опцию full 8 bits в Options/Display меню.

Если и в этом случае при просмотре файла из mc вы не увидите кириллических символов, то загляните в раздел nroff.

В случае возникновения проблем при просмотре man статей - сверьтесь с разделом man.

Если у вас проблемы в виде уродливых оконных рамок, то проконсультируйтесь в разделе Linux консоль.

off-topic: если вы захотите чтобы mc в окне Xterm был цветным, а не черно-белым, то установите переменную COLORTERM:

COLORTERM= ; export COLORTERM

5.7 nroff

Для того чтобы через nroff можно было "пропустить" символы кириллицы, надо использовать его с ключем -Tlatin1. Пропишите где-нибудь в стартовом скрипте (если у вас bash, то в .bashrc)

  alias nroff='nroff -Tlatin1'

Просмотр файлов в mc запускается через nroff (по крайней мере, в mc, идущем с Slackware'96). В файле /usr/lib/mc/mc.ext следует в строке вызова nroff'а изменить параметр вызова с -Tascii на -Tlatin1.

5.8 man

Сейчас довольно бурно развивается деятельность по переводу всего и вся на русский язык (ну, не так чтобы уж очень, но кое-кто кое-что делает). Все больше и больше появляется статей man, переведенных на русский язык, но вот отобразить их не всегда удается

Если у меня есть файл с русскими буквами, то вызов, скажем man ar приводит к ерунде на экране.

Для исправления этого безобразия следует поправить соответствующие строки в /usr/lib/man.config если это файл есть или правильно настроить less (см. раздел less).

5.9 ls

Если локаль установлена не правильно (см. раздел Настройка локали), то ls не будет печатать кириллические символы. В этом случае возможно поможет одна из следующих команд: ls -N, dir -N или ls --show-control-chars.

5.10 rlogin

Удостоверитесь, что shell на месте адресата установлена правильно. Если ваш rlogin не работает, как надо по умолчанию, то используйте 'rlogin -8'.

Пропишите в стартовом скрипте (если вы используете bash, то это .bashrc)

  alias rlogin='rlogin -8'

5.11 Samba

Чтобы увидеть русские буквы в именах файлов на диске Samba в файл /etc/smb.conf следует добавить строчки:


[global]
character set = koi8-r
client code page = 866
preserve case = yes
short preserve case = yes

5.12 telnet

Если возникают проблемы с вводом русских символов, надо написать файлик ~/.telnetrc со следующей строкой:

DEFAULT set outbinary

Вы можете встретить проблемы при работе в кодировке cp1251 -- не передается маленькая русская буква "я" 0xff. У протокола TELNET 0xff -- это первый символ управляющей последовательности. Дабы передать собственно "я", нужно его удваивать : 0xff, 0xff. При использовании KOI8-R такая проблема отсутствует.

off-topic: вместо telnet лучше использовать ssh - Secure Shell - максимальная безопасность при минимуме затрат.

5.13 IrcII

Добавить в файл конфигурации ~/.ircrc следующие строчки:

/set translation russian
/set eight_bit_characters on


Next Previous Contents