编辑 /etc/locale.conf 改成 LANG="en_US.UTF-8" , 重启服务器后,进入系统,仍然是显示中文
# locale -a | grep en_US
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8 //英文utf8语言环境是支持的
root@BJ-CentOS7 ~ # echo $LANG
zh_CN.UTF-8 //生效中的语言环境是中文utf8
root@BJ-CentOS7 ~ # locale
LANG=zh_CN.UTF-8 //生效中的语言环境是中文utf8
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=
root@BJ-CentOS7 ~ # grep LANG /etc/locale.conf
LANG="en_US.UTF-8"
root@BJ-CentOS7 ~ # grep LANG /etc/profile
root@BJ-CentOS7 ~ # grep LANG ~/.bashrc
原来是作为跳板的服务器和要连接的目标服务器中默认配置了 SendEnv 和 AcceptEnv 参数,且客户端和远程主机中都配置了 $LANG 变量,这导致客户端环境中指定的环境变量在远程会话中生效了
客户端 ssh_config 配置文件中:SendEnv 参数用来定义发送哪些环境变量到远程会话中 远程主机 sshd_config 配置文件中:AcceptEnv 参数用来定义接收哪些匹配到的环境变量
root@BJ-CentOS7 ~ # grep AcceptEnv /etc/ssh/sshd_config
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
root@BJ-CentOS7 ~ #
root@BJ-CentOS7 ~ # grep SendEnv /etc/ssh/ssh_config
SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
SendEnv LC_IDENTIFICATION LC_ALL LANGUAGE
SendEnv XMODIFIERS
参考文档: https://www.cnblogs.com/52linux/archive/2012/03/24/2415470.html