linux获取语言环境变量,linux语言环境变量

P.S.本文不讲linux如何配置语言环境变量

现象

服务器明明配置的是英文,但是使用不同的机器ssh登录服务器时,发现服务器的系统语言有时中文有时英文

使用locale命令执行后发现,无论locale.conf配置的是什么,实际的语言环境都在变

[root@lc-dev ~]# cat /etc/locale.conf

LANG="en_US.UTF-8"

[root@lc-dev ~]# locale

LANG=zh_CN.UTF-8

LANGUAGE=zh_CN:en_US:en

LC_CTYPE="zh_CN.UTF-8"

LC_NUMERIC=zh_CN.UTF-8

LC_TIME=zh_CN.UTF-8

LC_COLLATE="zh_CN.UTF-8"

LC_MONETARY=zh_CN.UTF-8

LC_MESSAGES="zh_CN.UTF-8"

LC_PAPER=zh_CN.UTF-8

LC_NAME=zh_CN.UTF-8

LC_ADDRESS=zh_CN.UTF-8

LC_TELEPHONE=zh_CN.UTF-8

LC_MEASUREMENT=zh_CN.UTF-8

LC_IDENTIFICATION=zh_CN.UTF-8

LC_ALL=

猜测应该是ssh登录的时候干了什么,然后使用ssh登录时的-v参数看下登录过程中的调试信息,发现在通过认证最后登录前,有一个发送环境变量的动作

maming@maming-Home:~$ ssh -v root@192.168.2.2

OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014

# ...

# 此处省略了一些没用的输出

# ...

debug1: Sending environment.

debug1: Sending env LC_PAPER = zh_CN.UTF-8

debug1: Sending env LC_ADDRESS = zh_CN.UTF-8

debug1: Sending env LC_MONETARY = zh_CN.UTF-8

debug1: Sending env LC_NUMERIC = zh_CN.UTF-8

debug1: Sending env LC_TELEPHONE = zh_CN.UTF-8

debug1: Sending env LC_IDENTIFICATION = zh_CN.UTF-8

debug1: Sending env LANG = zh_CN.UTF-8

debug1: Sending env LC_MEASUREMENT = zh_CN.UTF-8

debug1: Sending env LC_TIME = zh_CN.UTF-8

debug1: Sending env LC_NAME = zh_CN.UTF-8

Last login: Sat Nov 11 19:20:26 2017 from 192.168.2.192

[root@lc-dev ~]#

结论

所以可知,使用ssh登录的时候,ssh会将客户端语言相关的环境变量同时发送过去,设置目标服务的环境变量。比如如果客户端是中文,发过去就是中文配置,相当于在服务器上执行了下 export LANG=zh_CN.UTF-8 命令,所以在服务器上使用locale看到的就是中文的字符界面

解决

那如果想服务器始终保持自己配置的语言环境的话,可以通过以下2种方式实现。

第一种修改客户端的ssh配置,注释掉/etc/ssh/ssh_config文件中SendEnv LANG LC_*这一行,在登录的时候不发送环境变量

第二种修改服务器的ssh配置,注释掉/etc/ssh/sshd_config文件中AcceptEnv LANG LC_*这一行,拒绝接收客户端发送来的环境变量

如果是修改服务器的ssh配置,需要重启sshd服务

# centos 6.x 环境

[root@lc-dev ~] /etc/init.d/sshd restart

# centos 7.x 环境

[root@lc-dev ~] systemctl restart sshd

# other 环境

# 自行google.com重启sshd服务的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值