LANG 环境变量
Posted Li-Yongjun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LANG 环境变量相关的知识,希望对你有一定的参考价值。
中文系统
大家常用的 Linux 系统,为了方便使用,通常设置成了中文环境,这时候,命令的输出信息往往也是中文,如
$ free -h
总计 已用 空闲 共享 缓冲/缓存 可用
内存: 7.8Gi 2.9Gi 216Mi 247Mi 4.6Gi 4.4Gi
交换: 2.0Gi 87Mi 1.9Gi
$ man ls
LS(1) General Commands Manual LS(1)
NAME
ls, dir, vdir - 列目录内容
提要
ls [选项] [文件名...]
POSIX 标准选项: [-CFRacdilqrtu1]
GNU 选项 (短格式):
[-1abcdfgiklmnopqrstuxABCDFGLNQRSUX] [-w cols] [-T cols] [-I pattern] [--full-time]
[--format=long,verbose,commas,across,vertical,single-column] [--sort=none,time,size,extension]
[--time=atime,access,use,ctime,status] [--color[=none,auto,always]] [--help] [--version] [--]
描述( DESCRIPTION )
程序ls先列出非目录的文件项,然后是每一个目录中的“可显示”文件。如果 没有选项之外的参数【译注:即文件名部分为空】出
现,缺省为 "." (当前目录)。 选项“ -d ”使得目录与非目录项同样对待。除非“ -a ” 选项出现,文 件名以“.”开始的文件不属
“可显示”文件。
......
英文显示
但是,这些中文输出往往来自机器翻译,或者不专业的人工翻译。这样,对于理解原意有时会造成困扰。这个时候,我们更希望系统输出原始英文。
怎么办呢?
LANG 环境变量可以帮你解决这个问题。
$ echo $LANG
zh_CN.UTF-8
LANG 环境变量默认为 zh_CN.UTF-8
,因为我安装系统是选择的是中文。
我们只要修改一下这个环境变量的值就可以了
$ LANG=C
再来看下显示
$ free -h
total used free shared buff/cache available
Mem: 7.8Gi 2.9Gi 216Mi 247Mi 4.6Gi 4.4Gi
Swap: 2.0Gi 87Mi 1.9Gi
$ man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default). Sort entries alpha-
betically if none of -cftuvSUX nor --sort is specified.
这样就能看到原始英文表述了。
如, free 命令显示的结果,“Swap” 肯定比 “交换” 意思更准确无歧义。
如,man ls 命令显示的结果,“list directory contents” 肯定比 “列目录内容” 意思更清楚。
吐槽一下,“列目录内容” 。。。, 什么鬼。。。🙄
更进一步
一个疑问,LANG 环境变量都可以设置为什么值呢?
可以使用 locale 命令查看
$ locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IL
en_IL.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX
zh_CN.utf8
zh_SG.utf8
这里解释一下 “C” 的含义,“C” 在这里指 ASCII 的意思。
以上是关于LANG 环境变量的主要内容,如果未能解决你的问题,请参考以下文章