Видите странные вопросительные знаки в оболочке bash

Видите странные вопросительные знаки в оболочке bash

Я заметил нечто странное в наших серверах RHEL7: в оболочке всегда возвращаются вопросительные знаки, заключающие в себе части текста. Примерно так:

rm file.txt
rm: remove regular file ?file.txt??

Или это:

rm 886- rm: cannot remove ?886-?: No such file or directory

Это нормально?

Я подключаюсь по ssh с рабочего стола Ubuntu 16.04 к серверам RHEL7 и использую screen. Может ли это быть источником различий?

решение1

rmпытается отобразить символ, который ваш терминал не поддерживает. Это признак того, что вашлокальнастройки неверны, в частности LC_CTYPE. LC_CTYPEПеременная окружения должна быть установлена ​​эмулятором терминала и не должна изменяться никаким скриптом, таким как .profileили .bashrc.

Вы указываете, что запускаете screen. Если вы запустили сеанс screen в одной локали и присоединились к нему в другой локали, то screen будет переводить неподдерживаемые символы в ?. Он не может изменить настройки локали в уже запущенных приложениях, таких как оболочка, которую вы запускаете в этом окне — большинство приложений не поддерживают изменение настроек локали на лету. Выможетсделайте это в оболочке, установив LC_CTYPEпеременную. Чтобы увидеть, что ожидает ваш терминал, выведите значение LC_CTYPEперед присоединением к сеансу экрана.

Чтобы избавить себя от головной боли, используйте везде согласованные настройки локали. В настоящее время UTF-8 является стандартом везде, любые другие кодировки следует использовать только для совместимости со старыми приложениями или устройствами.

Связанный контент