profile和bashrc之间的区别

全局变量设定

/etc/profile 和 /etc/bashrc 是系统全局环境变量设定。

/etc/profile

用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效的。

/etc/bashrc

这个文件设置系统bash shell相关的东西,对系统内所有用户生效。只要用户运行bash命令,那么这里面的东西就在起作用。

用户家目录下的私有环境变量设定

~/.profile~/.bashrc是用户家目录下的私有环境变量设定

~/.bashrc

作用类似于/etc/bashrc, 只是针对用户自己而言,不对其他用户生效

另外/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是”父子”关系.

某用户专有设定文档,可以设定路径,命令别名,每次shell script的执行都会使用它一次

~/.profile

可以设定本用户专有的路径,环境变量等,它只能登入的时候执行一次

~/.bash_profile

用来设置一些环境变量,功能和/etc/profile 类似,但是这个是针对用户来设定的,也就是说,你在/home/user1/.bash_profile 中设定了环境变量,那么这个环境变量只针对 user1 这个用户生效.

注!
~/.bash_profile 是交互式、login 方式进入 bash 运行的,意思只有用户登录时才会生效
~/.bashrc 是交互式 non-login 方式进入 bash 运行的,用户不一定登录,只要以该用户身份运行命令行就会读取该文件。

读取环境三步骤

当登入系统时候获得一个shell进程时,其读取环境设定档有三步

  1. 首先读入的是全局环境变量设定档 /etc/profile ,然后根据其内容读取额外的设定的文档,如 /etc/profile.d/etc/inputrc
  2. 然后根据不同使用者帐号,去其家目录读取 ~/.bash_profile ,如果这读取不了就读取 ~/.bash_login ,这个也读取不了才会读取 ~/.profile ,这三个文档设定基本上是一样的,读取有优先关系;
  3. 然后在根据用户帐号读取 ~/.bashrc

参考博客

https://blog.csdn.net/aa1209551258/article/details/82023389
https://www.cnblogs.com/yuanqiangfei/p/10232148.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值