Я заметил нечто странное в наших серверах 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 является стандартом везде, любые другие кодировки следует использовать только для совместимости со старыми приложениями или устройствами.