Linux系统环境变量加载过程

作者: 下个路口到 | 来源:发表于2017-02-15 15:04 被阅读133次

Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量(在用户主目录下$HOME/)。
使用默认Bash时,用户登录后加载环境变量的流程如下:

1)/etc/profile-------->/etc/profile.d/*.sh
2)$HOME/.bash_profile-------->$HOME/.bashrc---------->/etc/bashrc

说明:
bash首先执行/etc/profile脚本,/etc/profile脚本先依次执行/etc/profile.d/*.sh,随后bash会执行用户主目录下的.bash_profile脚本,.bash_profile脚本会执行用户主目录下的.bashrc脚本,而.bashrc脚本会执行/etc/bashrc脚本至此,所有的环境变量和初始化设定都已经加载完成。bash随后调用terminfo和inputrc,完成终端属性和键盘映射的设定。

(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 运行的通常二者设置大致相同,所以通常前者会调用后者。


tcsh是一个加强的csh,目前大多数系统的csh都使用这个shell代替原来的csh,为csh提供命令补全和命令行编辑功能。/bin/csh实际上是/bin/tcsh的符号连接。这样一来,加载环境变量的流程如下:

(1) /etc/profile --------> /etc/profile.d/*. csh
(2) csh/tcsh: /etc/csh.cshrc --------> /etc/csh.login--------> $HOME/.cshrc --------> $HOME/.login





相关文章

  • 【现学现忘&Shell基础】— 23.环境变量配置文件调用过程

    环境变量配置文件调用过程有两个方向: 用户正常登陆Linux系统时的环境变量配置文件加载方向也就是登陆Linux系...

  • Linux系统环境变量加载过程

    Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变...

  • 【Linux学习笔记】Linux开机启动过程

    序言 计算机启动Linux系统的过程分为BIOS程序运行过程、引导加载程序运行过程、Linux系统运行过程。 BI...

  • Linux入门

    Linux系统启动过程 Linux系统如何启动 从BIOS开始,进入Boot Loader,再加载系统内核,再进行...

  • MAC系统查看和修改环境变量

    一、环境变量的位置和加载顺序 Mac系统的环境变量,加载顺序为: /etc/profile(系统级,系统启动就会加...

  • Ubuntu修改环境变量

    Ubuntu Linux系统包含两类环境变量:系统环境变量和用户环境变量。系统环境变量对所有系统用户都有效,用户环...

  • Mac系统下怎么配置环境

    一、Mac系统的环境变量文件配置 加载的环境变量文件 加载的环境变量文件顺序 1. /etc/profile ...

  • Mac在PATH中永久添加路径

    Mac系统的环境变量,加载顺序为: /etc/profile和/etc/paths是系统级别的,系统启动就会加载,...

  • Android 进阶解密摘要

    参照《Android 进阶解密》做的摘要。 Android 系统启动过程 init 进程启动 Linux 内核加载...

  • Linux学习之环境变量

    转自:Linux学习之环境变量在linux中环境变量是一个重要的概念,环境变量可以由系统、用户、shell、以及其...

网友评论

    本文标题:Linux系统环境变量加载过程

    本文链接:https://www.haomeiwen.com/subject/aftfwttx.html