.profile和.bash_profile有什么区别,什么时候配置?(Mac)[重复]


23

可能重复:
.bashrc和.bash_profile之间的差异

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

即,如果我配置.bash_profile,是否还需要配置.profile

Answers:


12

假设bash是您的默认外壳,则在bash手册页(man 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。阅读整个手册页部分以获取所有详细信息。


在Ubuntu 18.04开盘的新的终端窗口不会调用.profile不仅.bashrc:(
CpILL

5

如果您进行配置.bash_profile,则无需进行配置.profile

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

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


3

.profile在正常的shell进程(例如,打开终端工具)时由bash执行。.bash_profile是由bash用于登录shell的-举例来说,这是当您远程telnet / ssh进入计算机时。例如,如果您远程SSH到计算机中(例如您打开X终端),则最初将执行.bash_profile。如果在该XTerminal中键入“ xterm”并生成另一个X终端,则将为XTerminal的第二个实例执行.profile。这些文件位于您的主目录(〜)中。如果默认情况下我没有记错的话,它们都执行〜/ .bashrc,因此您可以对其进行编辑以配置登录和非登录Shell的通用设置/变量(例如,设置PATH,某些别名/快捷方式等)。


在Ubuntu 18.04中打开新的终端窗口不会调用.profile
CpILL

1

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

我也是在OS X上,从不需要.bash_profile或.bash_login,仅使用.profile,但是您的里程可能会有所不同...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.