.profile 和 .bash_profile 之间有什么区别,什么时候配置哪个?(Mac)

.profile 和 .bash_profile 之间有什么区别,什么时候配置哪个?(Mac)

可能重复:
.bashrc 和 .bash_profile 之间的区别

.profile和之间有什么区别.bash_profile,以及何时配置哪个?

即如果我配置了.bash_profile,我还需要配置吗.profile

答案1

假设是您的默认 shell,其差异在手册页 ( )bash中有描述:bashman bash

   When bash is invoked as an interactive login shell, or as  a  non-interac-
   tive  shell  with the --login option, it first reads and executes commands
   from the file /etc/profile, if that file exists.  After reading that file,
   it  looks  for  ~/.bash_profile,  ~/.bash_login,  and  ~/.profile, in that
   order, and reads and executes commands from the first one that exists  and
   is readable.  The --noprofile option may be used when the shell is started
   to inhibit this behavior.

手册页中详细介绍了 POSIX-shell 兼容模式,这就是它的来源.profile。阅读整个手册页部分以了解所有详细信息。

答案2

如果您配置了.bash_profile,则您不需要再配置.profile

我喜欢保留自己的别名和命令,.profile这样如果我搞乱了任何东西,我知道我可以随时删除它.profile而不会影响整个系统或其他修改的应用程序.bash_profile(如 MacPorts)。

要使用.profile,您可能需要source ~/.profile在您的文件中包括该行.bash_profile以便.profile读取该文件(参见Ned Deily的回答)。

答案3

当您获得正常的 shell 进程时,bash 会执行 .profile -- 例如,您打开一个终端工具。.bash_profile 由 bash 为登录 shell 执行 -- 例如,当您远程 telnet/ssh 进入您的计算机时。例如,如果您远程 ssh 进入一台机器(假设您打开一个 X 终端),您将首先执行 .bash_profile。如果在该 XTerminal 中键入“xterm”并生成另一个 X 终端,则将为 XTerminal 的第二个实例执行 .profile。这些文件位于您的主目录 (~)。如果我没有记错的话,默认情况下它们都执行 ~/.bashrc,因此您可以编辑它以配置登录和非登录 shell 的通用设置/变量(例如设置 PATH、一些别名/快捷方式等)。您可能偶尔想为这两个 shell 配置某些不同的东西,但我从未遇到过这种需要 -- 但是,这种可能性是存在的。

答案4

为了快速而简单的配置(您不想让事情复杂化),只需在您的 ~/.profile 中配置所有内容。只有当您遇到一些麻烦时(但可能永远不会)才了解有关 .bash_login 或 .bash_profile 的更多信息;)

我也在使用 OS X,从来不需要 .bash_profile 或 .bash_login,只使用 .profile,但你的情况可能会有所不同......

相关内容