分页: 1 / 1

请问环境变量保存在哪里?(对网上的答案有疑惑!)

发表于 : 2007-09-25 12:52
uusky
中秋了,先祝大家,节日快乐,全家幸福,月圆人更圆。

好了,切入正题。
执行env的时候会出来很多的环境变量。我在网上找到答案说的最多的就是在:
/etc/environment
~/.bashrc
~/.bash_profile
三个文件中。可是这几个文件,我都打开看了,根本就没有那么多。environment文件里面有两三个。

我就是想知道,env命令出来的那么多的环境变量系统到底把它们放在哪里啊?

发表于 : 2007-09-25 13:02
bones7456
这个没有固定答案,可以在任何地方.
你先env看一下,再在终端里面执行个:

代码: 全选

export xxxx=1
,再用env看,就多出一个来了不是...

发表于 : 2007-09-25 13:13
xhy
每个发行版可能都不通

只要你愿意 它可以在系统的任何地方

发表于 : 2007-09-25 13:36
yiding_he
好吧,既然楼主在 Ubuntu 论坛提问,大家能不能给个有针对性的答案?

发表于 : 2007-09-25 13:42
uusky
呵呵。是的。

我使用的是ubuntu 7.04的。
大家觉得,env里面的东东在哪里咧?

先谢谢上面的了。

发表于 : 2007-09-26 10:42
uusky
莫非这是一个“秘密”?

呵呵。怎么大家都不说哦。呵呵。
请知情者告诉我一声啊,我的系统的环境变量到底保存在哪里哦?

发表于 : 2007-09-26 10:53
AutumnHealth
环境变量当然是在环境里,也就是内存
没有固定的统一的保存的地方
任何脚本都可以export一个全局变量到环境里
系统启动的时候会运行很多脚本,里面经常会export一些全局变量到环境里
不用export的话,直接定义一个变量,那它就是在当前的环境里,算是局部变量吧

大概是这样吧
可以去看看shell基础

发表于 : 2007-09-26 10:59
iblicf
没有固定的地方阿,大多数应该是 /etc 底下的,整个 init 过程都有设置环境,不同的service daemon 也有做这些事情,你真想知道在哪里,你只能彻底跟踪一遍 init 过程,而且根据不同的运行级,过程也不一样,或者你可以根据 env /set 的内容挨个 grep 去,肯定能找到在哪里定义的 , linux 不会对用户隐藏实现这个是肯定的,除了一些关键的设置文件定义,你要想完整的理解它,这个是程序员的思路,一般用户大多不想知道这些细节,但是你切实可以跟踪它,

发表于 : 2007-09-26 11:24
uusky
TO AutumnHealth:
你是说一开机的shell里面n多的环境变量都是由n多的程序export出来的。而并非用天一个文本文件,一下子全部弄进来的?

发表于 : 2007-09-26 11:28
uusky
呵呵。知道了啊。呵呵。谢谢两位了哦。

我知道不会隐藏的。逗你们玩的。

我也知道export可以设置环境变量。只是觉得奇怪一开机就有那么多的环境变量而已。呵呵。没有什么了。我了解了。

发表于 : 2007-09-26 11:51
bluepeng
网上资料:

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

当前用户:
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.

发表于 : 2007-09-27 10:15
uusky
TO bluepeng:

谢谢了。兄弟!!!!