`

/etc/profile,/etc/environment,.bash_profile及.bashrc等与环境变量有关的文件的比较

阅读更多

先将export LANG=zh_CN加入/etc/profile ,退出系统重新登录,登录提示显示英文。将/etc/profile 中的export LANG=zh_CN删除,将LNAG=zh_CN加入/etc/environment,退出系统重新登录,登录提示显示中文。用户环境建立的过程中总 是先执行/etc/profile然后在读取/etc/environment。为什么会有如上所叙的不同呢?

应该是先执行/etc/environment,后执行/etc/profile。
/etc/environment是设置整个系统的环境,而/etc/profile是设置所有用户的环境,前者与登录用户无关,后者与登录用户有关。
系统应用程序的执行与用户环境可以是无关的,但与系统环境是相关的,所以当你登录时,你看到的提示信息,象日期、时间信息的显示格式与系统环境的LANG 是相关的,缺省LANG=en_US,如果系统环境LANG=zh_CN,则提示信息是中文的,否则是英文的。


对于用户的SHELL初始化而言是先执行/etc/profile,再读取文件/etc /environment.对整个系统而言是先执行/etc/environment。这样理解正确吗?
/etc/enviroment --> /etc/profile --> $HOME/.profile   -->$HOME/.env (如果存在)



/etc/profile 是所有用户的环境变量
/etc/enviroment是系统的环境变量
登陆系统时shell读取的顺序应该是
/etc/profile ->/etc/enviroment -->$HOME/.profile   -->$HOME/.env
原因应该是jtw所说的用户环境和系统环境的区别了


如果同一个变量在用户环境(/etc/profile)和系统环境(/etc /environment)有不同的值那应该是以用户环境为准了。


(1)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。
(2)/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
(3)~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户 的.bashrc文件。
(4)~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
(5) ~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。
(6)~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

分享到:
评论

相关推荐

    arm环境变量的设置

    - **`/etc/environment`**: 在登录时操作系统使用的第二个文件,系统在读取用户自己的profile前设置环境变量。 - **`~/.bash_profile`**: 每个用户都可以使用这个文件来设置专属于自己的环境变量。当用户登录时,该...

    Linux各种环境变量配置1

    此外,还可以编辑`/etc/environment`文件来设置系统范围内的环境变量。这个文件不依赖于任何shell,它定义的是与用户登录无关的环境变量。 例如,要在`/etc/profile`中添加一个新的路径`yourpath1`,可以这样操作:...

    Vi下etc下profile直接看安装目录.docx

    在CentOS这样的Linux发行版中,环境变量的管理也涉及到其他配置文件,如`~/.bashrc`(用户级别的环境变量)和`/etc/environment`(仅包含PATH变量)。不过,`/etc/profile`是最通用的,适合配置全局性的系统环境变量...

    Tony老师聊shell—环境变量配置文件

    这些变量对于程序的运行至关重要,因为它们可以提供程序运行时所需的各种参数,如路径设置、语言环境等。在Linux中,环境变量可以通过`export`命令来设置,并且可以在shell脚本中进行读取和修改。 #### 三、环境...

    bash,shell模版 语法 设置文件

    2. **~/.bash_profile**:在登录 shell 中,此文件会被执行一次,通常用于设置系统级别的环境变量和别名。 3. **~/.bash_aliases**:虽然不是标准的Bash配置文件,但许多用户喜欢将所有的别名定义单独放在这个文件...

    浅谈Linux环境变量文件介绍

    理解并正确配置这些环境变量文件对于管理和维护Linux系统至关重要,无论是设置路径变量,如`PATH`,还是配置Java、Python等开发环境的环境变量,都需要遵循这些规则。因此,熟悉这些文件的结构和作用对于日常的系统...

    profile.zip

    - `/etc/environment`:另一个全局环境变量文件,但格式较为简单,只包含键值对。 总结来说,`/etc/profile` 是Linux系统中配置全局环境变量的重要文件,它确保了系统的正常运行和用户的使用体验。了解并熟练掌握...

    linux下设定环境变量的方法介绍.docx

    在Linux操作系统中,环境变量是控制程序运行的重要因素,它们定义了系统如何解释命令、查找文件以及设置其他配置。理解如何设置和管理这些环境变量对于系统管理员和开发人员来说至关重要。下面详细介绍在Linux环境下...

    Linux安装OracleXE.docx

    配置`oracle_home`环境变量,切换到`oracle`用户并编辑`.bash_profile`文件: ``` su oracle cd ~ vi .bash_profile ``` 在`.bash_profile`中添加以下内容: ```bash # .bash_profile TMP=/tmp TMPDIR=/tmp ORACLE_...

    ubuntu profile environment bashrc 添加环境变量

    /etc/environment 是第二个文件,系统在读取用户的 Profile 文件前,使用该文件设置环境变量。~/.profile 是第三个文件,每个用户都可以使用该文件输入专用于自己使用的 shell 信息,当用户登录时,该文件仅仅执行一...

    LINUX里面的环境变量的配置

    - **全局配置文件**:对于所有用户生效,通常位于`/etc/profile`或`/etc/environment`中。 - **用户配置文件**:只对当前用户生效,通常位于用户的主目录下,如`~/.bashrc`或`~/.bash_profile`。 - 例如,在`~/....

    oracle安装过程.doc

    在 `/etc/sysctl.conf` 文件中修改或添加以下环境变量,以满足 Oracle 的运行需求: ```plaintext kernel.sem=250 32000 100 128 fs.file-max=65536 net.ipv4.ip_local_port_range=1024 65000 ...

    获取系统环境变量.rar

    - 编辑 `/etc/environment` 或者 `~/.bashrc`(用户级别的)、`/etc/profile`(系统级别的)文件。 - **在MacOS中**: - 使用`launchctl setenv 变量名 值`命令,但这种修改只在当前会话有效;持久化修改需编辑`/...

    storage_foundation_for_Linux_Oracle_RAC安装实例

    为确保 Oracle 用户能够正确加载环境变量,需要为该用户创建一个登录脚本 `.bash_profile`,并根据不同的节点配置唯一的 `ORACLE_SID`。例如,在 h1 上: ```shell echo -e "# .bash_profile\n# Get the aliases ...

    修改RedHatEnterpriseLinux4.0操作系统字符集解决乱码问题

    检查是否所有相关配置文件(如`.bashrc`、`.profile`)都已正确设置了中文支持。确保所有地方的`LANG`变量都被设置为相同的中文编码。 2. **字体问题:** 如果更改字符集后某些中文字体无法正常显示,可能需要...

    linux里etc下的文件解析

    - **/etc/profile**:全局的Shell初始化脚本,通常用于设置环境变量或函数等。 - **/etc/bash.bashrc**:针对Bash Shell的初始化脚本。 - **/etc/environment**:定义了系统范围内的环境变量。 - **/etc/updatedb....

    Ubuntu Linux 环境变量PATH设置.doc

    本文将详细介绍 Ubuntu Linux 系统中环境变量 `PATH` 的配置方法,并对相关的配置文件进行深入解析。 #### 二、关键配置文件及作用 在 Ubuntu Linux 系统中,存在多个关键配置文件用于设置环境变量 `PATH`。以下是...

Global site tag (gtag.js) - Google Analytics