Linux /etc/rc.local和~/.bashrc之间有什么区别?
这是一个与linux相关的问题。我到处找了找,但没有得到很好的解释 在我看来,这两个文件在我登录时都配置了设置,但有什么区别吗?我注意到,在决定什么应该进入两个不同的文件时,似乎有“一些规则”。例如,如果我需要将特定的搜索路径添加到$path,我应该在~/.bashrc中进行。但是如果我决定改变一些系统设置,比如Linux /etc/rc.local和~/.bashrc之间有什么区别?,linux,ubuntu,Linux,Ubuntu,这是一个与linux相关的问题。我到处找了找,但没有得到很好的解释 在我看来,这两个文件在我登录时都配置了设置,但有什么区别吗?我注意到,在决定什么应该进入两个不同的文件时,似乎有“一些规则”。例如,如果我需要将特定的搜索路径添加到$path,我应该在~/.bashrc中进行。但是如果我决定改变一些系统设置,比如 /sys/class/backlight 或 然后我必须在/etc/rc.local中执行此操作,否则它将无法工作 是不是因为这些配置在用户之间没有差异 谢谢。不同之处在于它们何时运
/sys/class/backlight
或
然后我必须在/etc/rc.local中执行此操作,否则它将无法工作
是不是因为这些配置在用户之间没有差异
谢谢。不同之处在于它们何时运行以及运行时以谁的身份运行,即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 file选项将强制bash读取和
从文件而不是~/.bashrc执行命令
在这个问题中有更多关于bashrc的信息
.bashrc
为每个启动的bash
会话运行(即每次打开shell时)。听起来好像你在谈论.bashrc
,就好像它是.bash\u profile
,每次登录都会运行一次
根据您运行的设置类型,rc.local是一个遗留构造,但传统上它是在启动期间的最后一个运行级别上运行的。你可以在其他有关rc.local
的帖子中看到这一点
如果您在运行
systemd
的系统上,这通常默认包含在systemd
包中。这个问题是我一个月前提出的,不过后来我意识到堆栈溢出不是解决这个Linux问题的最佳站点。感谢之前回答这个问题的人,但我想在这里补充一些解释
用户在Linux中更改系统环境基本上分(至少)三个阶段:
/etc/…
进行设置。例如,在我最初的问题中,背光以及一些CPU的在线/离线管理可以通过这种方式设置,而/etc/rc.local
是我应该编辑的正确shell脚本。“永久”意味着此更新将影响使用系统的所有用户~/
(或主页
)下查找文件。例如,~/.profile
(历史上称为/bash\u profile
或~/bash\u login
)是在登录时运行的shell脚本~/pam_environment
不是一个shell脚本,但用于设置环境变量(有关更多信息,请参阅)~/.bashrc
。例如,可以在此处更改环境变量PATH
man bash