Для того чтобы заставить 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
.
Поместите в .cshrc
следующее:
setenv LC_CTYPE iso_8859_5 stty pass8
Если у вас нет POSIX-совместимого stty (только не в Linux), замените последнюю строчку следующей:
stty -istrip cs8
Сделайте то же самое, что делается для csh
( csh).
Файл инициализации в этом случае - .zshrc
или
/etc/zshrc
.
Что касается public domain реализации ksh
- pdksh
версии 5.1.3 и выше, то вы можете разрешить 8-ми разрядный ввод только для
vi
в режиме ввода. Для этого используйте:
set -o vi
Если локаль (см. раздел Настройка
локали) не настроена (а она обязана быть настроенной), то вывод кириллицы
через 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
для русских букв.
Чтобы увидеть кириллицу из mc, выберите опцию full 8
bits
в Options/Display
меню.
Если и в этом случае при просмотре файла из mc вы не увидите кириллических символов, то загляните в раздел nroff.
В случае возникновения проблем при просмотре man
статей -
сверьтесь с разделом man.
Если у вас проблемы в виде уродливых оконных рамок, то проконсультируйтесь в разделе Linux консоль.
off-topic: если вы захотите чтобы mc
в окне
Xterm
был цветным, а не черно-белым, то установите переменную
COLORTERM
:
COLORTERM= ; export COLORTERM
Для того чтобы через nroff
можно было "пропустить" символы
кириллицы, надо использовать его с ключем -Tlatin1. Пропишите
где-нибудь в стартовом скрипте (если у вас bash
, то в
.bashrc
)
alias nroff='nroff -Tlatin1'
Просмотр файлов в mc запускается через nroff (по крайней мере, в mc, идущем с
Slackware'96). В файле /usr/lib/mc/mc.ext следует в строке вызова
nroff'а
изменить параметр вызова с -Tascii на
-Tlatin1.
Сейчас довольно бурно развивается деятельность по переводу всего и вся на русский язык (ну, не так чтобы уж очень, но кое-кто кое-что делает). Все больше и больше появляется статей man, переведенных на русский язык, но вот отобразить их не всегда удается
Если у меня есть файл с русскими буквами, то вызов, скажем man
ar
приводит к ерунде на экране.
Для исправления этого безобразия следует поправить соответствующие строки в
/usr/lib/man.config
если это файл есть или правильно настроить
less (см. раздел less).
Если локаль установлена не правильно (см. раздел Настройка
локали), то ls
не будет печатать кириллические символы. В этом
случае возможно поможет одна из следующих команд: ls -N
, dir
-N
или ls --show-control-chars
.
Удостоверитесь, что shell на месте адресата установлена правильно. Если ваш
rlogin
не работает, как надо по умолчанию, то используйте
'rlogin -8
'.
Пропишите в стартовом скрипте (если вы используете bash
, то это
.bashrc
)
alias rlogin='rlogin -8'
Чтобы увидеть русские буквы в именах файлов на диске Samba в файл
/etc/smb.conf
следует добавить строчки:
[global] character set = koi8-r client code page = 866 preserve case = yes short preserve case = yes
Если возникают проблемы с вводом русских символов, надо написать файлик
~/.telnetrc
со следующей строкой:
DEFAULT set outbinary
Вы можете встретить проблемы при работе в кодировке cp1251
-- не
передается маленькая русская буква "я" 0xff
. У протокола
TELNET
0xff
-- это первый символ управляющей
последовательности. Дабы передать собственно "я", нужно его удваивать :
0xff, 0xff
. При использовании KOI8-R
такая проблема
отсутствует.
off-topic: вместо telnet лучше использовать ssh - Secure Shell - максимальная безопасность при минимуме затрат.
Добавить в файл конфигурации ~/.ircrc
следующие строчки:
/set translation russian /set eight_bit_characters on