【问题标题】:What is the difference between /etc/rc.local and ~/.bashrc?/etc/rc.local 和 ~/.bashrc 有什么区别?
【发布时间】:2016-07-22 09:36:48
【问题描述】:

这是一个与 linux 相关的问题。我四处寻找,但没有得到很好的解释。

在我看来,这两个文件在我登录时都配置了设置,但有什么区别吗?我注意到在决定两个不同文件中应该包含哪些内容时似乎有“一些规则”。例如,如果我需要在 $PATH 中添加特定的搜索路径,我应该在 ~/.bashrc 中进行。但是如果我决定改变一些系统设置,比如

/sys/class/backlight

/sys/devices/cpu/cpu#/online

那我得在/etc/rc.local里做这个,不然不行。

是因为这些配置在用户之间不能有区别吗?

谢谢。

【问题讨论】:

    标签: linux ubuntu


    【解决方案1】:

    区别在于它们的运行时间和运行时的运行对象,即 rc.local 在运行级别更改时运行,并且以 root 身份运行。 bashrc 是特定于 bash 的,并且作为特定用户在非登录 shell 上运行。

    你可以在这里找到rc.local的一个很好的解释

    脚本 /etc/rc.local 供系统管理员使用。它是 传统上在所有正常系统服务完成后执行 开始,在切换到多用户的过程结束时 运行级别。您可以使用它来启动自定义服务,例如 安装在 /usr/local 中的服务器。大多数安装不需要 /etc/rc.local,它是为少数情况下提供的 需要。

    你可以找到你需要的关于bashrc的东西

    man bash
    

    当一个不是登录 shell 的交互式 shell 启动时,bash 从 ~/.bashrc 读取并执行命令,如果那样的话 文件已存在。这可以通过使用 --norc 选项来禁止。 --rcfile 文件选项将强制 bash 读取并 从文件而不是 ~/.bashrc 执行命令。

    在这个问题中有更多关于 bashrc 的信息...

    https://superuser.com/questions/49289/what-is-the-bashrc-file

    【讨论】:

      【解决方案2】:

      这个问题是我一个月前提出的,但后来我意识到堆栈溢出并不是这个 Linux 问题的最佳站点。感谢之前回答这个问题的人,但我想在这里添加更多解释。

      基本上有(至少)三个阶段,用户可以在 Linux 中更改系统环境:

      1. 系统启动时;如果我们喜欢永久系统设置,这个阶段是最合适的,应该通过/etc/...进行。比如我原来的问题,背光,以及部分CPU的在线/离线管理都可以这样设置,/etc/rc.local是我应该编辑的正确的 shell 脚本。 “永久”是指本次更新将影响所有使用系统的用户。
      2. 用户登录时;如果用户只想改变他的个人 Linux 环境,这个阶段是最合适的。因此,~/(或HOME)下的文件应该是寻找的正确位置。例如,~/.profile(历史上称为./bash_profile~/bash_login)是在登录时运行的shell 脚本。 ~/pam_environment 不是 shell 脚本,但可用于设置环境变量(有关详细信息,请参阅 Ubunte-official-wiki-environmental_variables)。
      3. 当用户启动 bash shell 时;此阶段受到更多限制,因为它仅在 bash shell(及其子进程)内具有影响,因此不会影响 GUI 环境。因此,如果用户在 shell 中完成他的大部分工作,那么这是一个合适的阶段。这个阶段相关的shell脚本是~/.bashrc。例如,环境变量PATH可以在这里更改。

      希望这个总结比技术更直观。

      【讨论】:

        【解决方案3】:

        .bashrc 为每个启动的bash 会话运行(即每次打开 shell 时)。听起来好像您在谈论 .bashrc,就好像它是每次登录运行一次的 .bash_profile

        根据您运行的设置类型,rc.local 是一个遗留结构,但传统上它在启动期间在最后一个运行级别上运行。您可以查看此link 以查看其他有关rc.local 的相关帖子。

        如果您在运行systemd 的系统上,这通常默认包含在systemdsystemd-backlight.service 中。

        【讨论】:

          猜你喜欢
          • 2010-09-29
          • 1970-01-01
          • 1970-01-01
          • 2016-09-09
          • 2014-07-26
          • 1970-01-01
          相关资源
          最近更新 更多