.profile .bash_profile 和 .bashrc 之间的功能区别是什么

lol*_*ter 285 linux ubuntu bash profile

.profile,.bash_profile.bashrc文件之间的功能区别是什么?

gee*_*aur 230

.bash_profile.bashrc特定于bash,而.profile在没有自己的特定于外壳的配置文件的情况下,许多外壳会读取它们。(.profile由原始 Bourne shell 使用。) .bash_profile.profile由登录 shell 读取,以及.bashrc; 子shell 只读.bashrc。(在作业控制和现代窗口系统之间,.bashrc本身并没有得到太多使用。如果您使用screentmux,屏幕/窗口通常运行子外壳而不是登录外壳。)

这背后的想法是一次性设置由.profile(或其特定于外壳的版本)完成,每个外壳的东西由.bashrc. 例如,您通常只想在每个会话中加载一次环境变量,而不是在您在会话中启动子 shell 时让它们受到重击,而您总是想要别名(它们不会像环境变量那样自动传播)。

其他值得注意的 shell 配置文件:

/etc/bash_profile(fallback /etc/profile) 在用户的.profile系统范围配置之前被读取,同样/etc/bashrc在子 shell 中(没有后备)。包括 Ubuntu 在内的许多系统也使用一个/etc/profile.d包含 shell scriptlet的目录,这些脚本是.( source)-ed from /etc/profile; 这里的片段是每个 shell,*.sh适用于所有 Bourne/POSIX 兼容的 shell 和适用于该特定 shell 的其他扩展。

  • 助记:Pro-File 很少用于修改您的环境并启动您的点火开关,Bashrc 是一些人在您的仪表板上喷洒的飞溅。 (4认同)

Man*_*dar 103

。轮廓

.profile用于与 没有特别关系的事物Bash,例如环境变量PATH和朋友,并且应该随时可用。

例如,.profile也应该在启动图形桌面会话时加载。


.bashrc

.bashrc用于配置交互式 Bash 用法,例如Bash aliases,设置您最喜欢的editor,设置Bash prompt等。


.bash_profile

.bash_profile是为确保无论是在事情.profile.bashrc被加载login shells

例如,.bash_profile可能是一些简单的东西

. ~/.profile
. ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

如果您要省略.bashrc,则只会.profile加载。


Pau*_*cci 51

根据 bash 手册页,.bash_profile为登录 shell.bashrc执行,而为交互式非登录 shell 执行。

那么,什么是登录或非登录 shell?

当您通过控制台登录(输入用户名和密码)时,无论是坐在机器上,还是通过 ssh: 远程登录.bash_profile,都会在初始命令提示符之前执行以配置您的 shell。但是,如果您已经登录到您的机器并在 Gnome 或 KDE 中打开一个新的终端窗口 (xterm),那么.bashrc它会在窗口命令提示符之前执行。.bashrc当您通过/bin/bash在终端中键入来启动新的 bash 实例时,也会运行。

终端窗口指南的一个例外是 Mac OS X 的 Terminal.app,它默认为每个新的终端窗口运行一个登录 shell,.bash_profile而不是调用.bashrc. 其他 GUI 终端仿真器可能会做同样的事情,但大多数不会。

更多在这里

  • 您的答案比公认的答案更准确。 (2认同)