locale命令的输出与/etc/default/locale内容不一致
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
- GalaxyYun
- 帖子: 94
- 注册时间: 2012-10-22 16:50
- 系统: Windows,Linux
locale命令的输出与/etc/default/locale内容不一致
如下图:
locale命令输出 /etc/default/locale文件 两个文件不一致,感觉/etc/default/locale文件没用,怎么删怎么改都不影响系统的语言和字体显示。
locale命令默认是从哪个文件读取并输出的,感觉这个命令的输出信息才是真实反映系统的locale设置。
多谢!!
locale命令输出 /etc/default/locale文件 两个文件不一致,感觉/etc/default/locale文件没用,怎么删怎么改都不影响系统的语言和字体显示。
locale命令默认是从哪个文件读取并输出的,感觉这个命令的输出信息才是真实反映系统的locale设置。
多谢!!
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: locale命令的输出与/etc/default/locale内容不一致
对,也不对。感觉这个命令的输出信息才是真实反映系统的locale设置。
locale 命令输出当前的语言和区域设置。Linux 的语言和区域设置是由一些环境变量(LANG,LC_*,LANGUAGE)确定的。那些配置文件也不过是让某些进程读取后设置这些环境变量而已。locale 程序就是读取这些环境变量的。
- GalaxyYun
- 帖子: 94
- 注册时间: 2012-10-22 16:50
- 系统: Windows,Linux
Re: locale命令的输出与/etc/default/locale内容不一致
首先,感谢你的回答。lilydjwg 写了:对,也不对。感觉这个命令的输出信息才是真实反映系统的locale设置。
locale 命令输出当前的语言和区域设置。Linux 的语言和区域设置是由一些环境变量(LANG,LC_*,LANGUAGE)确定的。那些配置文件也不过是让某些进程读取后设置这些环境变量而已。locale 程序就是读取这些环境变量的。
我知道,Linux Locale的设置是由(LANG,LC_*)这些环境变量确定的。但网上的教程都是讲到通过/etc/default/locale来设置这些环境变量。可我实践发现,根本不是这样的,因为我无论怎么修改/etc/default/locale文件都不影响locale命令的输出,甚至我将/etc/default/locale文件删除都没问题。
所以,locale命令一定是从哪个文件读取了Locale设定的信息,我不知道是不是与开机启动的一些文件有关。说来惭愧,学LINUX时日不多,我还不知道开机时需要读取哪些文件。
我不知道以前的LINUX是不是靠/etc/default/locale来设定当前Locale环境变量;我用的是13.04,感觉/etc/default/locale不再是设置Locale环境变量的工具了,当然,作为初学者我只是猜测。。。
我现在就想知道,locale变量到底是从哪得到Locale环境变量的,或者说Locale环境变量加载到内存初始化时到底是从哪个文件读取的。而且不同的用户的Locale环境变量不同,但我在自己家目录没找到与Locale环境变量相关的文件。。。
或者退一步,我如何修改Locale环境变量(LANG以及LC_*)并让它永久有效呢??
- zhw2101024
- 帖子: 1849
- 注册时间: 2009-03-28 16:10
- 系统: Arch debian win7
- 联系:
Re: locale命令的输出与/etc/default/locale内容不一致
各种不同的桌面环境都会有设定locale的工具,可能在.gconf或者.config之类的隐藏目录里,也可能在初始化脚本里,或者~/.xprofile之类的,文件名不一定准确,总之是.x开头。这个非要弄懂的话就复杂了。
为什么我的问题总是没有人回答?
金钱、责任与荣誉:OpenSSL主席谈心脏出血
拥有丰富API接口和广泛程序支持的dropbox云同步,点此注册,开始就比别人多500兆,我的空间也会增加。谢啦
==========我的作品==========
我做的一个面向开发者的gnome-shell扩展,有js基础又想自己调整gnome-shell功能的可以尝试一下
gnome-shell扩展开发入门,gnome-shell扩展系统扫盲帖
金钱、责任与荣誉:OpenSSL主席谈心脏出血
拥有丰富API接口和广泛程序支持的dropbox云同步,点此注册,开始就比别人多500兆,我的空间也会增加。谢啦
==========我的作品==========
我做的一个面向开发者的gnome-shell扩展,有js基础又想自己调整gnome-shell功能的可以尝试一下
gnome-shell扩展开发入门,gnome-shell扩展系统扫盲帖
- GalaxyYun
- 帖子: 94
- 注册时间: 2012-10-22 16:50
- 系统: Windows,Linux
Re: locale命令的输出与/etc/default/locale内容不一致
好吧,那请问我要如何通过终端修改Locale环境变量并使其长久有效呢???zhw2101024 写了:各种不同的桌面环境都会有设定locale的工具,可能在.gconf或者.config之类的隐藏目录里,也可能在初始化脚本里,或者~/.xprofile之类的,文件名不一定准确,总之是.x开头。这个非要弄懂的话就复杂了。
我man locale也找不到相关信息。。。
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: locale命令的输出与/etc/default/locale内容不一致
/etc/default/locale 好像是 Debian 的?GalaxyYun 写了:首先,感谢你的回答。lilydjwg 写了:对,也不对。感觉这个命令的输出信息才是真实反映系统的locale设置。
locale 命令输出当前的语言和区域设置。Linux 的语言和区域设置是由一些环境变量(LANG,LC_*,LANGUAGE)确定的。那些配置文件也不过是让某些进程读取后设置这些环境变量而已。locale 程序就是读取这些环境变量的。
我知道,Linux Locale的设置是由(LANG,LC_*)这些环境变量确定的。但网上的教程都是讲到通过/etc/default/locale来设置这些环境变量。可我实践发现,根本不是这样的,因为我无论怎么修改/etc/default/locale文件都不影响locale命令的输出,甚至我将/etc/default/locale文件删除都没问题。
所以,locale命令一定是从哪个文件读取了Locale设定的信息,我不知道是不是与开机启动的一些文件有关。说来惭愧,学LINUX时日不多,我还不知道开机时需要读取哪些文件。
我不知道以前的LINUX是不是靠/etc/default/locale来设定当前Locale环境变量;我用的是13.04,感觉/etc/default/locale不再是设置Locale环境变量的工具了,当然,作为初学者我只是猜测。。。
我现在就想知道,locale变量到底是从哪得到Locale环境变量的,或者说Locale环境变量加载到内存初始化时到底是从哪个文件读取的。而且不同的用户的Locale环境变量不同,但我在自己家目录没找到与Locale环境变量相关的文件。。。
或者退一步,我如何修改Locale环境变量(LANG以及LC_*)并让它永久有效呢??
图形界面用户登录时,有些登录器是可以指定登录语言的。那个通常在 ~/.dmrc 文件中。系统级的配置依发行版不同而不同,而我离开 Ubuntu 的原因就是,我搞不懂很多这种细节。
- GalaxyYun
- 帖子: 94
- 注册时间: 2012-10-22 16:50
- 系统: Windows,Linux
Re: locale命令的输出与/etc/default/locale内容不一致
关于这个东西我查了好几天了,发现没有人知道。lilydjwg 写了:/etc/default/locale 好像是 Debian 的?GalaxyYun 写了:首先,感谢你的回答。lilydjwg 写了:对,也不对。感觉这个命令的输出信息才是真实反映系统的locale设置。
locale 命令输出当前的语言和区域设置。Linux 的语言和区域设置是由一些环境变量(LANG,LC_*,LANGUAGE)确定的。那些配置文件也不过是让某些进程读取后设置这些环境变量而已。locale 程序就是读取这些环境变量的。
我知道,Linux Locale的设置是由(LANG,LC_*)这些环境变量确定的。但网上的教程都是讲到通过/etc/default/locale来设置这些环境变量。可我实践发现,根本不是这样的,因为我无论怎么修改/etc/default/locale文件都不影响locale命令的输出,甚至我将/etc/default/locale文件删除都没问题。
所以,locale命令一定是从哪个文件读取了Locale设定的信息,我不知道是不是与开机启动的一些文件有关。说来惭愧,学LINUX时日不多,我还不知道开机时需要读取哪些文件。
我不知道以前的LINUX是不是靠/etc/default/locale来设定当前Locale环境变量;我用的是13.04,感觉/etc/default/locale不再是设置Locale环境变量的工具了,当然,作为初学者我只是猜测。。。
我现在就想知道,locale变量到底是从哪得到Locale环境变量的,或者说Locale环境变量加载到内存初始化时到底是从哪个文件读取的。而且不同的用户的Locale环境变量不同,但我在自己家目录没找到与Locale环境变量相关的文件。。。
或者退一步,我如何修改Locale环境变量(LANG以及LC_*)并让它永久有效呢??
图形界面用户登录时,有些登录器是可以指定登录语言的。那个通常在 ~/.dmrc 文件中。系统级的配置依发行版不同而不同,而我离开 Ubuntu 的原因就是,我搞不懂很多这种细节。
我在国外论坛也发了类似的帖子,同样没人知道。
算了,我也懒得在这种细节上浪费时间了,等以后熟悉了LINUX再搞。。。
- leavfin
- 帖子: 599
- 注册时间: 2012-01-12 13:32
Re: locale命令的输出与/etc/default/locale内容不一致
只要是开机读取的文件 基本都可以设定一些变量
可以是profile *shrc login xinitrc xprofile 很多
只是读取的先后有别 最后读取的生效
根据个人经验 建议~/.xprofile 或者~/.xinitrc
系统级别locale改成中文的话
等到用tty的时候 就十分痛苦了
可以是profile *shrc login xinitrc xprofile 很多
只是读取的先后有别 最后读取的生效
根据个人经验 建议~/.xprofile 或者~/.xinitrc
系统级别locale改成中文的话
等到用tty的时候 就十分痛苦了
- GalaxyYun
- 帖子: 94
- 注册时间: 2012-10-22 16:50
- 系统: Windows,Linux
Re: locale命令的输出与/etc/default/locale内容不一致
zhw2101024 写了:各种不同的桌面环境都会有设定locale的工具,可能在.gconf或者.config之类的隐藏目录里,也可能在初始化脚本里,或者~/.xprofile之类的,文件名不一定准确,总之是.x开头。这个非要弄懂的话就复杂了。
lilydjwg 写了:/etc/default/locale 好像是 Debian 的?GalaxyYun 写了:首先,感谢你的回答。lilydjwg 写了:对,也不对。感觉这个命令的输出信息才是真实反映系统的locale设置。
locale 命令输出当前的语言和区域设置。Linux 的语言和区域设置是由一些环境变量(LANG,LC_*,LANGUAGE)确定的。那些配置文件也不过是让某些进程读取后设置这些环境变量而已。locale 程序就是读取这些环境变量的。
我知道,Linux Locale的设置是由(LANG,LC_*)这些环境变量确定的。但网上的教程都是讲到通过/etc/default/locale来设置这些环境变量。可我实践发现,根本不是这样的,因为我无论怎么修改/etc/default/locale文件都不影响locale命令的输出,甚至我将/etc/default/locale文件删除都没问题。
所以,locale命令一定是从哪个文件读取了Locale设定的信息,我不知道是不是与开机启动的一些文件有关。说来惭愧,学LINUX时日不多,我还不知道开机时需要读取哪些文件。
我不知道以前的LINUX是不是靠/etc/default/locale来设定当前Locale环境变量;我用的是13.04,感觉/etc/default/locale不再是设置Locale环境变量的工具了,当然,作为初学者我只是猜测。。。
我现在就想知道,locale变量到底是从哪得到Locale环境变量的,或者说Locale环境变量加载到内存初始化时到底是从哪个文件读取的。而且不同的用户的Locale环境变量不同,但我在自己家目录没找到与Locale环境变量相关的文件。。。
或者退一步,我如何修改Locale环境变量(LANG以及LC_*)并让它永久有效呢??
图形界面用户登录时,有些登录器是可以指定登录语言的。那个通常在 ~/.dmrc 文件中。系统级的配置依发行版不同而不同,而我离开 Ubuntu 的原因就是,我搞不懂很多这种细节。
终于被我找到了,本来准备放弃的。。。
https://help.ubuntu.com/community/Local ... ed_locales
是Ubuntu官方关于Locale的解释,基本跟我要解决的问题毫无关系。早些天已经看过了。
今天又重新打开看看,发现其中一个链接是关于environment variables的。
https://help.ubuntu.com/community/EnvironmentVariables
发现这么一段话:
代码: 全选
Environment variable settings that should affect just a particular user (rather than the system as a whole) should be set into:
~/.pam_environment - This file is specifically meant for setting a user's environment. It is not a script file, but rather consists of assignment expressions, one per line.
PATH DEFAULT=${PATH}:${HOME}/MyPrograms
Note: Using .pam_environment requires a re-login in order to initialize the variables. Restarting just the terminal is not sufficient to be able to use the variables.
而/etc/default/locale是属于系统全局设置,比如新建用户的默认Locale设置。
LINUX是先读取/etc/default/locale再读取~/.pam_environment。
在Ubuntu中,/etc/default/locale不会覆盖~/.pam_environment的设置,除非/etc/default/locale中设置了LC_ALL项,会导致LC_*变量被设置成LC_ALL。但LANG变量总是以~/.pam_environment中指定的为准,除非~/.pam_environment未指定;
每次修改/etc/default/locale需要re-login生效。
在Mint中,/etc/default/locale会覆盖~/.pam_environment的设置,每次修改/etc/default/locale需要restart生效。
我擦,Mint是基于Ubuntu的,为毛规则全变了??难道Mint专为单用户制定的规则,不过话说回来,Mint的桌面体验确实比Ubuntu好,前者仿Windows后者仿Mac,当然,各自都仿得比较烂。。。
之前,我说感觉在Ubuntu中/etc/default/locale设置没有用,甚至删除都可以,原因就在它会被~/.pam_environment覆盖。
最后,吐槽一下:
这个问题搞了我几天了,快把我整残了!
网上有修改/etc/locales.build的、有修改/usr/lib/locale/的、有修改/var/lib/locales/supported.d/local的、有修改/etc/default/locale的、有修改/etc/fonts/conf.d的,还有其它一大堆修改方案,我记不大清了。
我真想说LINUX发行版真TM混乱!!!
好了,LINUX虐我千百遍,我待LINUX如初恋,唉。。。。
-
- 帖子: 21
- 注册时间: 2010-09-13 21:03
Re: locale命令的输出与/etc/default/locale内容不一致
我用的是kde,用它的systemsettings设置locale的话,改的是 .kde/env/setlocale.sh 文件,内容:
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:zh
这文件只影响kde环境下的locale。
export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:zh
这文件只影响kde环境下的locale。
- flwwater
- 帖子: 806
- 注册时间: 2010-10-31 9:15
- 系统: kubuntu 24.04
Re: locale命令的输出与/etc/default/locale内容不一致
/etc/目录下有个enviroment文件,在里面把环境变量设置好就是全局的了.
个人收藏的数百个精美动态壁纸:
https://url17.ctfile.com/d/15983117-593 ... 768?p=6220
(访问密码:6220)
个人收藏的经典国语音乐和纯音乐(钢琴,笛子,二胡等):
https://url17.ctfile.com/d/15983117-446 ... 33e?p=6220
(访问密码:6220)
如果访问密码不对,可试试这个密码 566816
https://url17.ctfile.com/d/15983117-593 ... 768?p=6220
(访问密码:6220)
个人收藏的经典国语音乐和纯音乐(钢琴,笛子,二胡等):
https://url17.ctfile.com/d/15983117-446 ... 33e?p=6220
(访问密码:6220)
如果访问密码不对,可试试这个密码 566816
- zhw2101024
- 帖子: 1849
- 注册时间: 2009-03-28 16:10
- 系统: Arch debian win7
- 联系:
Re: locale命令的输出与/etc/default/locale内容不一致
从来没看过哪个发行版像ubuntu那样把配置文件隐藏得那么彻底
SUSE没用过,不知道是什么个情况
SUSE没用过,不知道是什么个情况
为什么我的问题总是没有人回答?
金钱、责任与荣誉:OpenSSL主席谈心脏出血
拥有丰富API接口和广泛程序支持的dropbox云同步,点此注册,开始就比别人多500兆,我的空间也会增加。谢啦
==========我的作品==========
我做的一个面向开发者的gnome-shell扩展,有js基础又想自己调整gnome-shell功能的可以尝试一下
gnome-shell扩展开发入门,gnome-shell扩展系统扫盲帖
金钱、责任与荣誉:OpenSSL主席谈心脏出血
拥有丰富API接口和广泛程序支持的dropbox云同步,点此注册,开始就比别人多500兆,我的空间也会增加。谢啦
==========我的作品==========
我做的一个面向开发者的gnome-shell扩展,有js基础又想自己调整gnome-shell功能的可以尝试一下
gnome-shell扩展开发入门,gnome-shell扩展系统扫盲帖
-
- 帖子: 7
- 注册时间: 2013-10-01 22:27
- 系统: Ubuntu 13.04
Re: locale命令的输出与/etc/default/locale内容不一致
GalaxyYun 写了:zhw2101024 写了:各种不同的桌面环境都会有设定locale的工具,可能在.gconf或者.config之类的隐藏目录里,也可能在初始化脚本里,或者~/.xprofile之类的,文件名不一定准确,总之是.x开头。这个非要弄懂的话就复杂了。lilydjwg 写了:/etc/default/locale 好像是 Debian 的?GalaxyYun 写了:首先,感谢你的回答。lilydjwg 写了:对,也不对。感觉这个命令的输出信息才是真实反映系统的locale设置。
locale 命令输出当前的语言和区域设置。Linux 的语言和区域设置是由一些环境变量(LANG,LC_*,LANGUAGE)确定的。那些配置文件也不过是让某些进程读取后设置这些环境变量而已。locale 程序就是读取这些环境变量的。
我知道,Linux Locale的设置是由(LANG,LC_*)这些环境变量确定的。但网上的教程都是讲到通过/etc/default/locale来设置这些环境变量。可我实践发现,根本不是这样的,因为我无论怎么修改/etc/default/locale文件都不影响locale命令的输出,甚至我将/etc/default/locale文件删除都没问题。
所以,locale命令一定是从哪个文件读取了Locale设定的信息,我不知道是不是与开机启动的一些文件有关。说来惭愧,学LINUX时日不多,我还不知道开机时需要读取哪些文件。
我不知道以前的LINUX是不是靠/etc/default/locale来设定当前Locale环境变量;我用的是13.04,感觉/etc/default/locale不再是设置Locale环境变量的工具了,当然,作为初学者我只是猜测。。。
我现在就想知道,locale变量到底是从哪得到Locale环境变量的,或者说Locale环境变量加载到内存初始化时到底是从哪个文件读取的。而且不同的用户的Locale环境变量不同,但我在自己家目录没找到与Locale环境变量相关的文件。。。
或者退一步,我如何修改Locale环境变量(LANG以及LC_*)并让它永久有效呢??
图形界面用户登录时,有些登录器是可以指定登录语言的。那个通常在 ~/.dmrc 文件中。系统级的配置依发行版不同而不同,而我离开 Ubuntu 的原因就是,我搞不懂很多这种细节。
终于被我找到了,本来准备放弃的。。。
https://help.ubuntu.com/community/Local ... ed_locales
是Ubuntu官方关于Locale的解释,基本跟我要解决的问题毫无关系。早些天已经看过了。
今天又重新打开看看,发现其中一个链接是关于environment variables的。
https://help.ubuntu.com/community/EnvironmentVariables
发现这么一段话:果不其然,locale命令是读取这个文件并显示的;通过修改这个文件就能设置自己的Locale信息。代码: 全选
Environment variable settings that should affect just a particular user (rather than the system as a whole) should be set into: ~/.pam_environment - This file is specifically meant for setting a user's environment. It is not a script file, but rather consists of assignment expressions, one per line. PATH DEFAULT=${PATH}:${HOME}/MyPrograms Note: Using .pam_environment requires a re-login in order to initialize the variables. Restarting just the terminal is not sufficient to be able to use the variables.
而/etc/default/locale是属于系统全局设置,比如新建用户的默认Locale设置。
LINUX是先读取/etc/default/locale再读取~/.pam_environment。
在Ubuntu中,/etc/default/locale不会覆盖~/.pam_environment的设置,除非/etc/default/locale中设置了LC_ALL项,会导致LC_*变量被设置成LC_ALL。但LANG变量总是以~/.pam_environment中指定的为准,除非~/.pam_environment未指定;
每次修改/etc/default/locale需要re-login生效。
在Mint中,/etc/default/locale会覆盖~/.pam_environment的设置,每次修改/etc/default/locale需要restart生效。
我擦,Mint是基于Ubuntu的,为毛规则全变了??难道Mint专为单用户制定的规则,不过话说回来,Mint的桌面体验确实比Ubuntu好,前者仿Windows后者仿Mac,当然,各自都仿得比较烂。。。
之前,我说感觉在Ubuntu中/etc/default/locale设置没有用,甚至删除都可以,原因就在它会被~/.pam_environment覆盖。
最后,吐槽一下:
这个问题搞了我几天了,快把我整残了!
网上有修改/etc/locales.build的、有修改/usr/lib/locale/的、有修改/var/lib/locales/supported.d/local的、有修改/etc/default/locale的、有修改/etc/fonts/conf.d的,还有其它一大堆修改方案,我记不大清了。
我真想说LINUX发行版真TM混乱!!!
好了,LINUX虐我千百遍,我待LINUX如初恋,唉。。。。
我也想实现不同用户不同locale,可惜不行哦。。一修改/etc/default/locale则全部用户都改了,但是~/.pam_environment修改了LANG=zh_CN.UTF-8,但是locale命令显示LANG=en_US.UTF-8
不知道为什么这种情况呢?到底是什么覆盖了locale设置呢???
我的系统也是ubuntu 13.04默认的unity桌面环境。本来想用户a用中文zn_CN.UTF-8,用户b用英文en_US.UTF-8,可惜只能全局修改/etc/default/locale。但是修改用户目录下的~/.pam_environment不起作用。