[freebsd] Ламерский вопрос

Владимир Друзенко vvd at unislabs.com
Thu Mar 26 19:27:56 EET 2020


26.03.2020 20:16, Taras Heichenko пишет:
>> On 26 Mar 2020, at 18:54, Eugene Grosbein <eugen at grosbein.net> wrote:
>>
>> 26.03.2020 23:43, Taras Heichenko пишет:
>>>>> Каталоги, названные с использованием кириллических символов показываются правильно.
>>>>> Но я не могу их набрать в командой строке. При попытке набрать что-нибудь кириллицей, выскакивают
>>>>>
>>>>> :\262\320\321\321\320\320\320
>>>>>
>>>>> Вообще нажатия клавиш передаются на удаленную машину правильно. В vim текст кириллицей набирается
>>>>> без проблем. Т.е. впечатление, что bash'у нужно что-то сказать, чтобы он в командной строке воспринимал
>>>>> этот ввод правильно. Но что?
>>>> В данном конкретном шелле локаль не выставлена. Так может быть, если вместо правильной команды su -m
>>>> использовать неправильную команду su (без ключа -m). Нужно всегда использовать su -m или аналогичные
>>>> инструменты, которые поднимают привилегии, но оставляют старое окружение - и шеллом остаётся bash,
>>>> и профиль пользователя (с локалью). su без -m меняет шелл и окружение на рутовые:
>>>> шеллом будет tcsh вместо bash и т.п.
>>> Может я чего не так понял, но root к моему письму не имеет никакого отношения. Я не могу ввести символы,
>>> будучи обычным пользователем. Вот как это выглядит.
>> Может быть, рут и не имеет отношения - это был просто пример,
>> каким способом вроде бы установленная локаль может "слететь".
>>
>> Скриншот показывает, что с одной стороны эмулятор терминала передаёт коды клавиш верно
>> и cat их "показывает", потому что ему плевать на локаль. А вот шеллу не плевать, и скриншот
>> показывает, что локаль в шелле не соответствует кодировке символов.
> Правильно ли я понимаю эту фразу, что локальный клиент терминала передает символы не в той кодировке,
> которую ожидает bash? Но если терминал передает в правильной кодировке (cat ведь показывает их правильно),
> то это значит, что у bash'а выставлена кодировка неправильно.
>
> tasic at academ:~>set | grep LC
> LC_ALL=uk_UA.UTF-8
> LC_CTYPE=uk_UA.UTF-8
> MAILCHECK=60
> tasic at academ:~>set | grep LANG
> LANG=uk_UA.UTF-8
>
> Чего ему не хватает?

MM_CHARSET=UTF-8

Логинкласс попробуй выставить russian у пользователя и перелогиниться.

Загляни в /etc/login.conf (поиск по слову UTF).
Возможно поможет создать свой логинкласс ukrainian (надеюсь не ошибся с 
написанием) аналогичный russian:
#
# Russian Users Accounts. Setup proper environment variables.
#
russian|Russian Users Accounts:\
         :charset=UTF-8:\
         :lang=ru_RU.UTF-8:\
         :tc=default:



More information about the freebsd mailing list