这是因为在 CentOS 中,startup 文件之间还存在着默认的显式调用关系,它们是: 1. ~/.bash_profile显式调用~/.bashrc文件; 2. ~/.bashrc显式调用/etc/bashrc文件; 再看startup 文件 分别打开 /etc/profile 和 /etc/bashrc 两个文件,我们可以看到: 代码语言:javascript 复制 [root@localhost~]head/etc/profi...
7. /.bash_profile 是交互式、login 方式进入 bash 运行的/.bashrc 是交互式 non-login 方式进入 bash 运行的,通常二者设置大致相同,所以通常前者会调用后者。
(6)~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。
作用范围 系统全局所有用户 系统全局所有用户 针对单个用户有效,如/home/user1/.bash_profile 中设定了环境变量,只针对 user1 这个用户生效. 针对单个用户有效 作用内容 设置全局系统环境参数 设置全局系统bash shell相关的配置 功能和/etc/profile类似 类似于/etc/bashrc 是否loginshell login shell non-loginshell ...
bash的加载遵循上图,从上到下顺序执行加载,尤其要注意non-login、非交互(上面蓝色线)执行,它不会加载很多脚本,比如/etc/profile(总profile),/etc/bash.bashrc(总basrc),和个人的.profile, .bash_profie,.bash_login和.bashrc等。所以如果你脚本处于这样环境下(比如cron脚本),你就要在脚本中自我设置一些环境变量...
个人配置 ~/.bash_profile ~/.bashrc profile类的配置:设定环境变量;运行命令或脚本 bashrc类的配置:设定本地变量;定义命令别名 登录式shell如何读取配置文件 (通过本地命令行或远程终端登录;su - username) /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc...
bash的加载遵循上图,从上到下顺序执行加载,尤其要注意non-login、非交互(上面蓝色线)执行,它不会加载很多脚本,比如/etc/profile(总profile),/etc/bash.bashrc(总basrc),和个人的.profile, .bash_profie,.bash_login和.bashrc等。所以如果你脚本处于这样环境下(比如cron脚本),你就要在脚本中自我设置一些环境变量...
bash的加载遵循上图,从上到下顺序执行加载,尤其要注意non-login、非交互(上面蓝色线)执行,它不会加载很多脚本,比如/etc/profile(总profile),/etc/bash.bashrc(总basrc),和个人的.profile, .bash_profie,.bash_login和.bashrc等。所以如果你脚本处于这样环境下(比如cron脚本),你就要在脚本中自我设置一些环境变量...
主要区别 对于用户而言,“登录shell”和“非登陆shell”的主要区别在于启动shell时所执行的startup文件不同。 简单来说,“登录shell”执行的startup文件为~/.bash_profile,而“非登陆shell”执行的startup文件为~/.bashrc。 关于bash的startup文件,请参阅我的另一篇博客: ...
说完了这些,来说说profile和bashrc两个文件,profile是指系统用户一旦登录就执行的文件,且只执行一次,bashrc则是每次打开一个bash就会执行一次,不管是否登录,所以修改profile文件需要重启系统或者使用source命令来更新系统配置环境,而修改bashrc文件只用新打开一个bash就执行了更改。