在Linux系统中,有三种文件类型出现的频率非常高,即profile、bash_profile和bashrc文件。因为名字的关系,很多人会混淆这三类文件的功能,所以今天我们就来详细盘点一下这三类文件的作用和区别。一、配置文件1.1配置文件的作用profile(/etc/profile),用于设置系统级的环境变量和启动程序,该文件中的配置对所有用户生效。当用户登录时,将执行该文件并从/etc/profile.d目录中的配置文件中查找shell设置。1.2在profile中添加环境变量一般不建议在/etc/profile文件中添加环境变量,因为在这个文件中添加的设置对所有用户都有效。当需要添加的时候,我们可以通过以下方式添加:比如添加一个HOST值为magedu.com的环境变量:exportHOST=magedu.com添加时,可以使用数字;在行尾,否则你不能使用它。一个变量名可以对应多个变量值,多个变量值需要用:隔开。添加环境变量后需要重新登录才能生效,也可以使用source命令强制立即生效:source/etc/profile查看是否生效可以使用echo命令:$echo$HOSTmagedu.com2.bashrc文件bashrc文件用于配置函数或别名。bashrc文件有两个级别:系统级别位于/etc/bashrc,用户级别位于~/.bashrc,两者分别对所有用户和当前用户生效。bashrc文件只会对指定的shell类型起作用,bashrc只会被bashshell调用。3、bash_profile文件bash_profile只对单个用户有效,文件存放在~/.bash_profile中。这个文件是用户级别的设置,可以理解为某个用户的个人资料目录。该文件也可用于配置环境变量和启动程序,但仅限于单个用户。与配置文件类似,bash_profile也会在用户登录(login)时生效,也可以用来设置环境变量。但与profile不同的是,bash_profile只会对当前用户生效。4.区别总结这三种文件类型的区别一句话可以表达:/etc/profile,/etc/bashrc是系统全局环境变量设置;~/.profile、~/.bashrc是用户家目录下的私有环境变量设置。当一个shell进程在登录系统时获取,读取环境配置文件如下:4.1首先读取全局环境变量配置文件/etc/profile,然后根据其内容读取附加配置文件,如/etc/profile.d和/etc/inputrc;4.2根据不同的用户账户,读取其家目录下的~/.bash_profile;如果读取失败,它将读取~/.bash_login;如果再次失败,则读取~/.profile(这三个文件的设置基本没有区别,只是读取优先);4.3***,根据用户账号读取~/.bashrc。至于~/.profile和~/.bashrc,都具有个性化定制功能,但~/.profile可以设置用户独有的路径和环境变量,登录时只能执行一次。~/.bashrc也是一个用户特定的设置文件,可以设置路径和命令别名,每次执行shell脚本都会用到一次。
