bash_profile、bashrc 有什么区别?
它们都用于设置用户的shell环境,但它们的加载时机和用途有所不同。
1. 加载时机:
-
.bash_profile
当用户登录系统时,以“login shell”方式启动bash shell时,该文件会被读取。也就是说,当你通过终端登录或者通过SSH登录时,.bash_profile会被执行。该文件仅在登录时执行一次。 -
.bashrc
当用户打开一个新的终端窗口或者在一个已经打开的终端窗口中启动一个新的bash shell(“non-login shell”方式启动)时,该文件会被读取。也就是说,每次你打开一个新的终端,.bashrc都会被执行。
2、用途
-
.bash_profile:
通常用于设置一些只需要在登录时执行一次的环境变量和启动程序。例如,设置PATH环境变量、启动一些后台服务等。通常.bash_profile会调用.bashrc,以便在登录时也加载.bashrc中的设置。 -
.bashrc:
通常用于设置一些每次打开新的shell都需要执行的命令和别名。例如,设置终端提示符、定义常用的命令别名、加载一些shell函数等。
3、关系:
为了方便管理,通常会在.bash_profile中添加以下代码,以便在登录时也加载.bashrc中的设置
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
这样,无论是以“login shell”还是“non-login shell”方式启动bash shell,.bashrc中的设置都会被加载。
##### 补充
除了.bash_profile和.bashrc,还有一些其他的shell配置文件,例如`/etc/profile`和`/etc/bashrc`,它们是系统级别的配置文件,对所有用户生效。

浙公网安备 33010602011771号