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


有什么功能差异 .profile.bash_profile 和 .bashrc 文件?


119
2018-04-20 15:42






答案:


.bash_profile 和 .bashrc 具体到 bash,而 .profile 在没有自己的特定于shell的配置文件的情况下被许多shell读取。 (.profile 原来的Bourne shell使用了。) .bash_profile 要么 .profile 登录shell读取,以及 .bashrc;子壳只读 .bashrc。 (在工作控制和现代窗口系统之间, .bashrc 本身并没有得到太多的使用。如果你使用 screen 要么 tmux,屏幕/窗口通常运行子shell而不是登录shell。)

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

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

/etc/bash_profile (倒退 /etc/profile)在用户之前阅读 .profile 对于系统范围的配置,同样如此 /etc/bashrc 在子壳中(这个没有后备)。包括Ubuntu在内的许多系统也使用了 /etc/profile.d 包含shell scriptlet的目录 . (source来自 /etc/profile;这里的片段是per-shell,with *.sh 适用于所有与Bourne / POSIX兼容的shell以及适用于该特定shell的其他扩展。


101
2018-04-20 15:51





。轮廓

.profile 用于与之无关的事物 Bash,就像环境变量一样 PATH 和朋友们,应该随时可用。

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


的.bashrc

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


.bash_profile中

.bash_profile用于确保两者中的所有内容 .profile 和 .bashrc 正在加载 login shells

例如, .bash_profile 可能是简单的事情

. ~/.profile
. ~/.bashrc

如果你要省略 .bash_profile, 只要 .profile 会加载。


31
2018-04-17 06:15



这回答了我对Mac OS X的疑问 - Jake Toronto


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

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

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

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

更多这里 http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html


21
2018-04-03 12:52