Centos环境变量文件的读取流程

Posted kikkiking

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos环境变量文件的读取流程相关的知识,希望对你有一定的参考价值。

首先说一下login shell和non-login shell的区别。所谓login shell简单来说就是需要输入用户名、密码的登录方式;而non-login shell的登录方式就是不需要输入用户名、密码的登录方式。举个更具体的例子,当你不管登录到tty1~tty6那个界面输入账户密码,这就是login shell;而当你登录有Xwindow的级别,当你右键新建一个命令终端时,此时就是non-login shell。

login shell

上流程图:

/etc/profile--------------------------------------------------->~/.bash_profile---------------->开始操作 bash

                |                                  |

                |                                  |

                |- - ->/etc/inputrc                 |- - ->~/.bashrc

                |                                                  |

                |- - ->/etc/profile.d/*.sh <- - - - - - - - - - - - - - - - -/etc/bashrc

                                |

                        /etc/sysconfig/i18n

大致流程就是这样的,实线方向是主流程,虚线是文件的调用。

 login shell 在启动的时候,一定会读取两个配置文件:/etc/profile、~/.bash_profile(或 ~/.bash_login 或 ~/.profile)

一、/etc/profile

        这个文件是系统的整体设定,也是每个使用者登录 bash 的时候一定会读取的配置文件。主要有一下几个变量:

    PATH:环境变量。会依据 UID 决定是否要包含 sbin 的系统目录 
    MAIL:依据 UID 决定使用者的邮箱 
    USER:用户名 
    HOSTNAME:主机名 
    HISTSIZE:历史命令记录数 
/etc/profile 文件还会还会调用其他的文件,包括以下文件: 

  • /etc/inputrc
        自定义按键输入功能。
  • /etc/profile.d/*.sh
        bash 窗口的颜色、语系、命令别名等的一些设定。

    当你需要自定义一些整体环境变量时,就可以在这个目录下新建一个以.sh结尾的文件。

  • /etc/sysconfig/i18n
        语系设定

    二、~/.bash_profile

bash 在读取完整体环境设定的 /etc/profile 并呼叫其他配置文件之后,接下来会读取使用者的个人配置文件。在 login shell 的环境下,读取的个人配置文件主要有以下三个: 

    1.~/.bash_profile 
    2.~/.bash_login 
    3.~/.profile
bash 只会读取上面文件中的一个,而且读取的优先级 1 > 2 > 3。

.bash_profile文件的内容,主要在PATH路径上添加了/bin路径;且如果存在~/.bashrc还会去读取~/.bashrc

技术分享图片

三、~/.bashrc

主要的定义了rm、cp、mv三个命令别名,并调用/etc/bashrc

技术分享图片

四、/etc/bashrc

这个文件主要设置了umask的值变量PS1的值。

如果这个文件丢失,那么,你的界面提示符就是变成这样,因为你的PS1变量的值没有设置:

技术分享图片

 

五、其他的配置文件

1、~/.history  存储了你的历史命令

2、~/.bash_logout  可以自定义注销时自动执行的操作

non-login shell

弄清楚了login shell的登录流程,那么non-login shell的登录顺序就很好理解了。

non-login方式登录时是直接从~/.bashrc往后读取的。

所以如果你要设置自己的环境变量,只需要写到~/.bashrc文件里面就可以了

 

 

 

 

 

 

 












以上是关于Centos环境变量文件的读取流程的主要内容,如果未能解决你的问题,请参考以下文章

systemctl 启动某个程序,程序读取某个环境变量不生效的问题

Flask配置文件和环境变量:配置文件和环境变量的读取与调用

环境变量说明

CentOS中环境变量和配置文件

一个脚本测试系统环境变量配置文件的启动顺序

SpringMVC配置文件中读取环境变量