1.bash配置文件:
1).全局(bash的配置文件)
有 /etc/profile /etc/profile.d/* 与 /etc/bashrc
其实都是bash这个程序启动的时候会读取配置信息的.
无论现在什么样的应用程序,大多数都需要用配置文件来保存用户可以进行的设定的
2).用户个人:
~/.bash_profile 和 ~/.bashrc
我们对bash所做的任何设定,都可以将这些修改写入到这些文件中,但是这些文件还略有不同,并不是每一次bash的执行都会读取每一个bash配置文件的,这要取决于用户启动bash的启动方式(用户登陆,执行脚本)
2. bash启动运行模式:(交互和非交互模式)
1.).交互式模式
用户登录然后执行命令
2.).非交互式模式
将来我们通过系统的自动化执行命令定义好定时任务执行脚本,用户不需要登录,脚本就会运行,而脚本的运行需要解释器去执行,而bash的解释器就是bash,因此每一个脚本运行起来就会启动一个bash进程, 因此,交互式和非交互式的bash进程读取的配置文件是不一样的,而且读取次序也有所不同.
次序很关键:如果同一个变量或者设定出现了多次,那最后读取的生效。
1. 对于交互式的用户登录而言,读取次序是:
--> /etc/profile
--> /etc/profile.d/*(会被profile文件调用全部)
--> ~/.bash_profile
--> ~/.bashrc
--> /etc/bashrc
对于不同的用户,其用户个人配置文件是不一样的,所以其设定结果也是不一样的.
对于非交互的bash读取配置文件(执行脚本)
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*(最后一个不读)
其他文件将不再读取.
配置文件有的是profile类文件,有些是bashrc类文件.
profile类
1. 设定环境变量
2. 运行命令或脚本
用户登陆之前就运行一些命令或者脚本的话,就写在这里,bash登陆之前就进行的准备类工作
/etc/profile 对全局生效
~/.bash_profile 仅对该用户生效
2. bashrc类
1. 通常用于设定本地变量,对当前shell生效,对子shell不生效
2. 设定命令别名