LANG、LANGUAGE、およびMAIL環境変数が設定されている場所をどのように見つけますか?

LANG、LANGUAGE、およびMAIL環境変数が設定されている場所をどのように見つけますか?

僕に一つあった珍しい 質問Raspbmc Raspberry Piの環境変数が正しく設定されていません。特に、私はする必要があります~/.bashrc

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

しかし、バニラRaspbianを実行している他のPiでは、これらの環境変数はい設定が正しいです。どのファイルがそれを指定したかを確認したかったが見つかりませんでした。端末にログインしたときに実行されることがわかっているファイルをテストしました。これらはパンチを詰めませんでした。

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

代わりに私のラップトップでアーチを実行すると/etc/profile.d/locale.sh設定LANG~/.profile指定になるようですLANGUAGE。しかし、私はそれへの言及を見つけることができませんMAIL

これらの環境変数が設定されている場所をどのように見つけることができますか?


編集する

私の作業システム(Raspbian)で文字列全体を検索して/etc見つけました。~

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

MAILを検索しても結果はありません。

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

この戦略は、LANGに対しては一部の照会のみを提供し、/etcLANGUAGEに対しては照会を提供しません。いくつかの偽のヒット/etcLANG=C1つの実際のヒットがあります(例:言及する渡すウィンク17)存在する/etc/default/locale:LANG=en_AU.UTF-8。しかし(によると前の質問言い換えれば、このファイルは/etc/default/locale私のRaspbmcシステムからインポートされたものではないので、このファイルが存在するよりも少し複雑です。

答え1

状況をさらに混乱させるためにSSHを使用してリモートでログインすると、SSHクライアントはクライアントの設定/デフォルト設定でシステムのデフォルト(一部)を上書きできます。

これはファイルAcceptEnvのディレクティブによって制御されますsshd_config。たとえば、次のようになります。

# 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

関連情報