`/etc/profile`、`~/.bash_profile`、`/etc/bashrc` 和 `~/.bashrc`的启动顺序

`/etc/profile`、`~/.bash_profile`、`/etc/bashrc` 和 `~/.bashrc` 都是用于设置环境变量和 Shell 配置的文件。

`/etc/profile` 是系统级别的配置文件,会在每次登录系统时被执行,用于设置全局的环境变量和 Shell 配置,对所有用户都生效,该文件通常包含设置全局环境变量、PATH 等系统级别的配置信息,也可以定义全局的别名、函数等。

`~/.bash_profile` 是用户级别的 Shell 配置文件,会在用户登录时被执行,用于设置用户的个人环境变量和 Shell 配置,只对当前用户生效。在 macOS 系统中,如果 `~/.bash_profile` 不存在,会尝试执行 `~/.bash_login`,如果 `~/.bash_login` 也不存在,则会尝试执行 `~/.profile`。

`/etc/bashrc` 是系统级别的 Shell 配置文件,在每次打开新的终端窗口时都会被执行,是每个用户登录到 Bash Shell 时都会自动读取的。该文件只作用于 Bash Shell,不会影响其他 Shell,用于设置默认的 Shell 环境变量、别名、函数等。只对当前终端窗口生效。

该文件通常包含设置 Bash Shell 的默认环境变量、别名、函数、配色方案等信息。这些配置对所有登录到 Bash 的用户生效。

`~/.bashrc` 是用户级别的 Shell 配置文件,在每次打开新的终端窗口时都会被执行,用于设置用户个人偏好的 Shell 环境变量、别名、函数等。只对当前终端窗口和当前用户生效。

一般情况下,排序登陆系统时这些文件的执行顺序如下:

1. `/etc/profile` 文件会在登录系统时被执行,其中设置的全局环境变量和 Shell 配置对所有用户和所有 Shell 会话生效。

2.如果登录的是 Bash Shell,接下来会执行用户的 `~/.bash_profile` 文件。如果该文件不存在,则会执行用户的 `~/.bash_login` 文件,如果该文件也不存在,则会执行用户的 `~/.profile` 文件。在执行这些文件时会先执行 `/etc/bashrc` 文件。

3.`/etc/bashrc` 文件会在每次打开新的终端窗口时被执行,其中设置的默认 Shell 环境变量、别名、函数等对所有用户在所有 Shell 会话中生效。

4.`~/.bashrc` 文件会在每次打开新的终端窗口时被执行,其中设置的用户个人偏好的 Shell 环境变量、别名、函数等只对当前用户在当前的 Shell 会话中生效。

需要注意的是,上述执行顺序并不是绝对固定的,可能会因为各种配置的不同而有所不同。例如,如果用户在 `~/.bash_profile` 文件中显式地调用了 `~/.bashrc`,那么 `~/.bashrc` 就会在 `~/.bash_profile` 之前被执行。

总之,以上的系统和用户级别的配置文件都是在用户登录时或者打开新的 Terminal 窗口时被执行,它们都用于设置环境变量、别名和函数等内容,只是作用范围和优先级不同。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值