Como posso encontrar onde as variáveis ambientais LANG, LANGUAGE e MAIL estão definidas?

2

Eu tive um alguns issues com variáveis ambientais não definidas corretamente em meu Raspberry Raspberry Pi. Especificamente, eu tive que especificar manualmente o seguinte em ~/.bashrc .

export LANG='en_AU.UTF-8"
export LANGUAGE='en_AU:en'
export MAIL='/var/mail/pi'

No entanto, em outro Pi executando o Raspbian vanilla, essas variáveis ambientais são definidas corretamente. Eu queria ver o arquivo especificado, mas não consegui encontrá-lo. Eu testei os arquivos que eu conheço que são executados ao efetuar login em um terminal. Estes não deram resultados.

grep LANG -r /etc/profile /etc/profile.d/ /etc/bash.bashrc ~/.profile ~/.bashrc /etc/environment
grep MAIL -r /etc/profile /etc/profile.d/ /etc/bash.bashrc ~/.profile ~/.bashrc /etc/environment

Por outro lado, no meu laptop que está executando o Arch, /etc/profile.d/locale.sh aparece para definir LANG e ~/.profile especifica LANGUAGE . No entanto, não encontrei menção de MAIL .

Como posso encontrar onde essas variáveis ambientais estão definidas?

EDITAR

Eu pesquisei o conjunto de /etc e ~ para essas cadeias no sistema de trabalho (Raspbian).

grep "\bMAIL=" -r /etc 2>/dev/null
grep "\bMAIL=" -r ~ 2>/dev/null

A pesquisa por MAIL não deu resultados.

grep "\bLANG=" -r /etc 2>/dev/null
grep "\bLANG=" -r ~ 2>/dev/null

Essa estratégia deu apenas alguns hits para LANG em /etc e nenhum para LANGUAGE. Ocorreram alguns resultados falsos em /etc com LANG=C e um verdadeiro sucesso (como mencionado por vinc17 ) em /etc/default/locale:LANG=en_AU.UTF-8 . No entanto (como por um pergunta anterior por mim), este arquivo em /etc/default/locale não é originado na minha máquina Raspbmc, então presumo que a situação é um pouco mais complicada do que a mera presença deste arquivo.

    
por Sparhawk 14.07.2014 / 09:10

1 resposta

2

E apenas para confundir mais as coisas, se você fizer logon remotamente usando SSH, seu cliente SSH terá permissão para substituir (alguns) os padrões do sistema com suas configurações / preferências do lado do cliente ...

Isso é regido pelas diretivas AcceptEnv no arquivo sshd_config , por exemplo, :

# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
    
por 14.07.2014 / 13:00