Percebi algo estranho em nossos servidores RHEL7: no shell sempre há pontos de interrogação retornados, envolvendo partes do texto. Mais ou menos assim:
rm file.txt
rm: remove regular file ?file.txt??
Ou isto:
rm 886- rm: cannot remove ?886-?: No such file or directory
Isso é normal?
Estou fazendo ssh de um desktop Ubuntu 16.04 para os servidores RHEL7 e usando screen. Poderia ser esta a origem das diferenças?
Responder1
rm
está tentando exibir um caractere que seu terminal não suporta. Isso é um sinal de que seulocalidadeas configurações estão erradas, especificamente LC_CTYPE
. A LC_CTYPE
variável de ambiente deve ser definida pelo emulador de terminal e não alterada por nenhum script como .profile
ou .bashrc
.
Você indica que está executando a tela. Se você iniciou a sessão screen em um local e anexou-a em outro local, então screen traduzirá caracteres não suportados para ?
. Ele não pode alterar a configuração de localidade em aplicativos já em execução, como o shell que você está executando naquela janela - a maioria dos aplicativos não tem suporte para alterar as configurações de localidade dinamicamente. Vocêpodefaça isso no shell definindo a LC_CTYPE
variável. Para ver o que seu terminal espera, imprima o valor de LC_CTYPE
antes de anexar à sessão de tela.
Para evitar dores de cabeça, adote configurações de localidade consistentes em todos os lugares. Hoje em dia UTF-8 é o padrão em todos os lugares, qualquer outra codificação deve ser usada apenas para compatibilidade com aplicativos ou dispositivos mais antigos.