zoukankan      html  css  js  c++  java
  • Linux配置文件的生效顺序:profile、bashrc等

    环境变量初始化与对应文件的生效顺序

    在登录Linux系统并启动一个 bash shell 时,默认情况下 bash 会在若干个文件中查找环境变量的设置,这些文件可统称为系统环境文件,bash 检查的环境变量文件的情况取决于系统运行 Shell 的方式,系统运行 Shell 的方式有 3 种。

    (1)通过系统用户登录后默认运行的 Shell

    (2)非登录交互式运行 Shell

    (3)执行脚本运行非交互是 Shell

    1、登录shell方式进入Linux

    账号和密码——>/etc/profile(全局文件G1)——>/etc/profile.d/(全局脚本目录F1)——>$HOME/.bash_profile(用户文件U1)——>$HOME/.bashrc(用户文件U2)——>/etc/bashrc(全局文件G2)

    当用户登录 Linux 系统时,Shell 会作为登录 Shell 启动,此时的登录 Shell 加载环境变量的顺序如上图。

    用户登录系统后首先会加载 /etc/profile 全局环境变量文件,这是 Linux 系统上默认的 Shell 主环境变量文件,系统上每个用户登录都会加载这个文件。

    当加载完 /etc/profile 文件后,才会执行 /etc/profile.d/目录下的脚本文件,这个目录下的脚本文件由很多,例如:系统的字符集设置(/etc/sysconfig/i18n)等,以便用户登录后即可运行脚本

    之后开始运行 $HOME/.bash_profile(用户环境变量文件),在这个文件中,又会去找 $HOME/.bashrc(用户环境变量文件),如果有,则执行,如果没有,则不执行,在$HOME/.bashrc文件中又会去找/etc/bashrc(全局环境变量文件),如果有,则执行,如果没有,则不执行。

    2、非登录Shell方式进入Linux

    不需要输入密码的登录及远程 SSH 连接——>$HOME/.bashrc(用户文件U2)——>/etc/bashrc(全局文件G2)

    如果用户的Shell 不是登录时启动的(比如手动敲下 bash 时启动或者其他不需要输入密码的登录及远程 SSH 连接情况)那么这种非登录 Shell 只会加载 $HOME/.bashrc(用户环境变量文件),并会去找 /etc/bashrc(全局环境变量文件),因此如果希望在非登录 Shell 下也可读到设置的环境变量等内容,就需要将变量设定写入 $HOME/.bashrc 或者 /etc/bashrc,而不是 $HOME/.bash_profile/etc/profile

     参考:

    https://www.cnblogs.com/liuhedong/p/10356411.html

  • 相关阅读:
    ffmpeg参数说明
    【FFmpeg】FFmpeg常用基本命令
    ffmpeg最全的命令参数
    数据库总结
    linux redis安装及JAVA使用jedis
    记录一次工作中jvm被linux杀死的调查
    ExecutorService线程池submit的使用
    java四种引用与回调函数
    java排序
    NIO教程笔记
  • 原文地址:https://www.cnblogs.com/andy9468/p/13321905.html
Copyright © 2011-2022 走看看