首页 > 系统相关 >Linux语言环境变量LANG设置后不生效

Linux语言环境变量LANG设置后不生效

时间:2024-06-14 10:33:02浏览次数:23  
标签:LANG zh LC 设置 Linux UTF 环境变量 CN

问题描述

在 Linux 系统中,`LANG` 环境变量用于设置默认的语言和区域(locale)信息。设置 `LANG=c` 通常会将语言设置为 C locale(即 POSIX locale),这意味着系统会使用英语,并且字符集设置为 ASCII。所以,设置LANG=C之后,是不是理所应当就该回显英文了。然而,哐哐打脸。

现在回想起来,这也是一个“会者不难,难者不会”的问题。一开始,以为是Linux操作系统版本兼容性问题,跟现场再三确认,人家版本很新~~得~~

那大概率是其他环境变量跟LANG冲突了,并且比LANG优先级高。(公司本地的服务器,为了避免中文乱码,各种糟心事,一般我都喜欢设置成英文的,所以没环境确认~~算不算自己给自己挖了个坑)

让现场用户执行locale命令查看本地化参数,如下:

可以看到LC_ALL=zh_CN.UTF-8,一般情况下LC_ALL是空的(如下图),设置LANG会将其他的本地化语言变量一起修改掉。怀疑当LC_ALL有值的时候,LANG优先级低而失效。

验证过程

 

Linux下的环境变量可以设置在/etc/profile或 /etc/profile.d/*的文件(全局生效),也可以设置在~/.bash_profile(优先级高,只对当下用户有效)。

1、修改/etc/locale.conf ,设置LANG="en_US.UTF-8"

2、备份并修改~/.bash_profile,设置LC_ALL="zh_CN.UTF-8"

cp ~/.bash_profile{,_bak}
echo 'export LC_ALL="zh_CN.UTF-8"' >>~/.bash_profile 

3、重新登录系统,执行locale命令
LANG=en_US.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=zh_CN.UTF-8
4、执行其他命令发现回显为“中文”,虽然LANG=en_US.UTF-8。

标签:LANG,zh,LC,设置,Linux,UTF,环境变量,CN
From: https://blog.csdn.net/avatar_2009/article/details/139674600

相关文章

  • Linux DNS域名解析
    DNS系统的作用及类型整个Internet大家庭中连接了数以亿计的服务器、个人主机,其中大部分的网站、邮件等服务器都使用了域名形式的地址,如www.google.com、mail.163.com等。很显然这种地址形式要比使用64.233.189.147、202.108.33.74的IP地址形式更加直观,且更容易被用户记住......
  • linux环境 kafka3.4.0 刚搭建好(用kraft替代zookeeper) 怎么建个topic测试一下消费有没
        在使用Kafka3.4.0并且用Kraft(KafkaRaft)替代Zookeeper的情况下,步骤会有一些变化。这是因为Kraft模式下Kafka自身管理元数据,而不再依赖Zookeeper。以下是使用Kraft模式的Kafka3.4.0创建topic并进行生产和消费测试的具体步骤:###1.**启动Kaf......
  • 关于Golang中的依赖注入实现
    先定义一个内部调用接口用于后面的注入//被注入的接口typeUserFaceinterface{Get()stringSet()string}然后定义一个Struct,开启构造函数,并实现上面的接口 typeSysUserstruct{Namestring}//User的构造函数funcNewSysUser(Namestring......
  • Golang性能优化实践
    内存警察警惕一切隐式内存分配典型case:函数返回了字符串、切片,警惕一切字符串传进去的输入,函数内部重新分配了一个新的内存返回对象复用1.sync.pool 保证有一个ch大小的对象可用 假设有cpu核数那么多并发任务,可以保证gc的时候有保底在 2.局部cachesync.pool......
  • Linux Debian安装教程
    Debian是一个免费的开源操作系统,是最古老的Linux发行版之一,于1993年由IanMurdock创建。它采用了自由软件协议,并且由志愿者社区维护和支持。Debian的目标是创建一个稳定、安全且易于维护的操作系统,以自由软件为基础,同时保持尽可能广泛的硬件兼容性。Debian的特点包括强......
  • linux+windows跨端md软件选择(未找到)
    目的windows上使用typora当初是通过破解的方式实现的。现在装双系统时想做做笔记,没有一个管理的软件用起来很不方便。要求正常编辑,没有难以忍受的问题。目录管理及大纲(基于标题层级)linux+windows双端,且linux端能够读取。从粘贴图片能够在相应的img目录下创建图片文件并引用......
  • Linux脚本语言入门.md
    0、shell介绍1)Shell是什么?Shell是一个命令行解释器,它为用户提供一个详Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中......
  • Linux下编译arm64驱动代码汇编器报错
    简单来说就是错误的汇编Ir约束会导致编译器优化把这个操作数生成非法的汇编指令然后汇编器就会傻眼会报一个非常难懂的错误如下:/tmp/ccxxxxxx.s:Assemblermessages:/tmp/ccxxxxxx.s:xxx:错误:立即数越界atoperand3--'eorw3,w20,4294967295'我通过查看汇编手册发......
  • linux用户及用户组管理,目录或文件权限管理
            在Linux系统中,用户及用户组管理以及目录或文件权限管理是非常重要的系统管理任务。正确管理用户和用户组可以确保系统安全性和数据完整性,而正确设置文件和目录权限可以控制用户对系统资源的访问权限。1.用户及用户组管理对用户进行管理,首先要了解相关的指令......
  • 运维必备Linux学习day4(Vmware磁盘扩容)
    虚拟机添加磁盘与linux逻辑卷扩容1.1 虚拟机添加磁盘1.1.1. 检查linux系统的磁盘分区及逻辑卷的相关信息是否正常(1)cat/etc/redhat-release查看系统版本【适用于RHEL及CentOS】:我已自己电脑上的虚拟机,50G内存2G运行内存为例>>>(2)df -h看挂载点空间使用率情况:(3)blkid查看......