.profile, .bash_profile和.bashrc的区别

Posted 普通学习者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.profile, .bash_profile和.bashrc的区别相关的知识,希望对你有一定的参考价值。

(1) 登陆shell (login shell)和交互式shell (interactive shell)


shell是一个程序,通过shell,用户与计算机之间可以进行交互。

登陆shell是指当用户登陆计算机时运行的shell,用户在登录之后运行的shell称为非登录shell。判断是否为登录shell的一种方法是执行echo $0,若输出-bash则为登录shell,若输出bash则为非登录shell。

交互式shell指的是shell通过终端(terminal)接受输入和显示输出,相对应地,通过脚本运行shell则是非交互式shell。

(2) .bash_profile, .profile和.bashrc的区别

以bash shell为例,当shell以登录shell的方式运行,会执行.bash_profile,若.bash_profile不存在,执行.profile文件;当shell以非登录、交互式shell的方式运行,会执行.bashrc。

(3) Mac OSX


在Mac OSX系统上默认运行的是登录shell,因此默认情况下只会读取.bash_profile或者.profile。

来源:
(1) https://unix.stackexchange.com/questions/50665/what-is-the-difference-between-interactive-shells-login-shells-non-login-shell
(2) https://apple.stackexchange.com/questions/51036/what-is-the-difference-between-bash-profile-and-bashrc

以上是关于.profile, .bash_profile和.bashrc的区别的主要内容,如果未能解决你的问题,请参考以下文章

mac 中.bash_profile 和 .zshrc 区别

.bash_profile和.bashrc

Snow Leopard 上 .profile 和 .bash_profile 的区别

Snow Leopard 上 .profile 和 .bash_profile 的区别

linux /etc/profile bashrc bash_profile

/etc/profile和/etc/bashrc、~/.bash_profile和~/.bashrc、.zshrc和.zprofile的区别