Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры

UnixForum
Беспроводные выключатели nooLite

Lines Club

Ищем достойных соперников.

TransNeed.com - English to Russian translation services: English Russian translation services.


Книги по Linux (с отзывами читателей)

Библиотека сайта или "Мой Linux Documentation Project"

Вперед Назад Содержание

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

Первые две опции указывает внутреннюю кодировку имён файловой системы (client code page) и внешнюю кодировку пользователя (character set).

Следующие две опции указывают, что надо сохранять регистр длинных и коротких имён файлов соответственно.

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


Вперед Назад Содержание


Эта статья еще не оценивалась
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии отсутствуют