linux ll命令 乱码,Linux乱码怎么解决

1. 前言

1.1 locale简介

理解一下Linux中的专业名词:locale

在Linux中,它使用locale命令来设置和显示程序运行的语言环境(也就是系统运行语言环境,应用进程是在系统的进程之上运行的,应用程序的父进程是init进程)

locale的英文直译为场所,地区,地域,但它在Linux中含义要更大,在Linux中Locale根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统定义一个软件运行时的语言环境 。

locale的主要作用是描述某一个地域内的人们的语言习惯和文化传统和生活习惯。一个地区的locale就是根据几大类的习惯(变量)定义的。

35a2012a8aff03fa0c4fbf08bd5e47a0.png

1.2 locale的配置语法

locale的配置语法:_.

例如:

zh_CN.utf8

zh代表中文,CN代表大陆地区,utf8表示字符集。

de_DE.UTF-8@euro

de表示德语,DE表示德国,UTF-8表示字符集,euro表示按照欧洲习惯加以修正

1.3 locale命令的原理

Locale命令的本质就是设置一组共12个LC开头的变量(不包括LANG和LC_ALL)

Linux中locale文件存放位置: /usr/share/i18n/locales

检查当前系统支持的语言:

[root@zcwyou ~]# ll /usr/share/i18n/locales

查看当前系统使用的语言环境:

[root@zcwyou ~]# locale

LANG=zh_CN.UTF-8

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=

LANG

LANG的优先级是最低的,它是所有LC_*变量的默认值。下方所有以LC_开头变量(不包括LC_ALL)中,如果存在没有设置的LC变量值,那么系统将会使用LANG的变量值来给这个变量进行赋值。如果LC变量有值,则以当前LC值为准。

LC_CTYPE

用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等,包括输入文字等等都与这个值有关。

LC_NUMERIC

用于格式化非货币的数字显示。

LC_TIME

用于格式化时间和日期。

LC_COLLATE

用于比较和排序。

LC_MONETORY

用于格式化货币单位。

LC_MESSAGES

用于控制程序输出时所使用的语言,主要是提示信息,错误信息,状态信息, 标题,标签, 按钮和菜单等。

LC_PAPER

默认纸张尺寸大小

LC_NAME

姓名书写方式

LC_ADDRESS

地址书写方式

LC_TELEPHONE

电话号码书写方式

LC_MEASUREMENT

度量衡表达方式

LC_IDENTIFICATION

locale对自身包含信息的概述

LC_ALL

它不是环境变量,它是一个宏,可通过该变量的设置覆盖所有的LC_变量。这个变量设置之后,可以废除LC_的设置值,使得这些变量的设置值与LC_ALL的值一致,注意,LANG变量不受影响。

优先级级别:LC_ALL>LC_*>LANG

补充一下:如果要用英文环境中输入中文,可以把 LC_CTYPE设定成zh_CN.GB18030,而其他所有的项都是en_US.UTF-8。

9fb98cde6ffb2d123052e8e68766259c.png

2. 远程登录命令行乱码解决方法

先确定当前终端软件工具(比如putty/xShell/SecureCRT)的编码设置,强烈建议使用UTF-8。

确认当前的语言环境:

[root@zcwyou ~]# echo $LANG

en_US.UTF-8

可以看出,当前的语言环境为en_US.UTF-8

查看locale配置

[root@zcwyou ~]# cat /etc/locale.conf

LANG=”en_US.UTF-8″

以上输出确认本系统支持的中文模式

[root@my_public_ip ~]# locale -a

留意最后的输出,可以看到zh_CN.utf8

zh_CN

zh_CN.gb18030

zh_CN.gb2312

zh_CN.gbk

zh_CN.utf8

zh_HK

zh_HK.big5hkscs

zh_HK.utf8

zh_SG

zh_SG.gb2312

zh_SG.gbk

zh_SG.utf8

zh_TW

zh_TW.big5

zh_TW.euctw

zh_TW.utf8

zu_ZA

zu_ZA.iso88591

zu_ZA.utf8

修改locale配置

[root@zcwyou ~]# vi /etc/locale.conf

修改为以下内容

#LANG=”en_US.UTF-8″

LANG=”zh_CN.UTF-8″

LANGUAGE=”zh_CN.UTF-8:zh_CN.UTF-8:zh_CN”

SUPPORTED=”zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en”

SYSFONT=”lat0-sun16″

a811ea3773380de5712794daadb052ec.png

检查:

[root@zcwyou ~]# echo $LANG

en_US.UTF-8

结果显示没有生效。

必须退出登录才生效

[root@zcwyou ~]# exit

重新登录系统后:

[root@zcwyou ~]# echo $LANG

zh_CN.UTF-8

可以看出,语言环境已经全局更改过来了。

检查:

[root@zcwyou ~]# date

2018年 11月 27日 星期二 14:31:09 CST

可以看到,已经有正确的中文显示了。

3. Linux图形界面设置中文

除了以上设置,还需要安装中文组件:

[root@zcwyou ~]# yum -y groupinstall "Chinese-Support"

[root@zcwyou ~]# yum -y install fonts-chinese

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值