bash中的环境变量配置文件
环境变量的配置文件主要有5类:
全局配置文件: /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)时,执行该文件
/etc/profile的主要的作用
1、USER变量:目前环境使用者的名称
2、LOGNAME变量:登录主机的用户名称
3、MAIL变量:当前登录的用户的邮箱
4、PATH变量:当前登录的用户的命令查找文件路径
5、HOSTNAME变量:主机名
6、HISTSIZE变量:历史命令条数
7、umask:默认的权限
8、调用/etc/profile.d/*.sh文件
一、环境变量的配置文件在用户输入用户名密码登录时的调用顺序:
先调用/etc/profile文件,/etc/profile文件中会指定调用/etc/profile.d/*.sh文件,.sh文件里也会指定调用如/etc/profile.d/lang.sh等,等这一系列的调用完成以后会把所有文件本身的变量和调用的结果整体传送给家目录/.bash_profile文件,该文件在传递的结果的基础上修改某些变量值(如给变量PATH增加"家目录/bin"等),并调用某些文件,最后整合所有的结果,等这一系列的工作完成以后会显示命令提示符。
调用顺序越靠后,优先级越高,因为后面调用的文件如果重新定义变量值的话会该变量值会变成重新定义的值。
二、环境变量的配置文件在用户没有输入用户名密码登录时的调用顺序:
横向的最后一步调用/etc/bashrc文件后,该文件会重新定义所有的环境变量的值,但是仅仅是针对没有通过用户名密码登录的用户的,然后在由该文件重新调用/etc/profile.d/*.sh等后续的调用,最后整合所有的结果。
最后,在这些所有的环境变量配置文件中,可以把环境变量随意的写到任何一个文件中,都是可以生效的,但是注意的是有些文件是针对当前登录用户修改环境变量的,有些文件是针对所有用户的,有写文件是针对没有登录的用户的,另外顺序越靠后的配置文件优先级越高。