.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 区别
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的区别