Gangmax Blog

.bashrc, .bash_profile, .bash_login以及.profile的区别

转贴自这里

在类unix系统中,bash shell的使用已经非常的普遍,特别是在linux系统中,bash shell更是成为系统用户的默认shell.

在bash shell里面,有一些用户配置文件值得注意:

1
2
3
4
~/.bashrc
~/.bash_profile
~/.bash_login
~/.profile

在安装oracle数据库时,需要为oracle用户配置一些环境变量,对于在哪个文件进行配置往往会产生混淆,现将它们的区别整理如下:

1. 在non login shell启动之前会执行~/.bashrc的配置,比如用户在图形界面启动一个terminal,执行/bin/bash或者是/usr/bin/bash,都属于non login shell。

2. 用户通过conosole登陆系统shell,属于login shell方式,系统执行以下配置文件之一:

1
2
3
~/.bash_profile
~/.bash_login
~/.profile

如果三个文件都存在,则/.bash_profile被执行,而/.bash_login和/.profile不执行,如果只有/.bash_login,/.profile文件,则/.bash_login执行,~/.profile不执行。

由此可知,我们可以将oracle的相关配置信息放置于/.bash_profile或者/.bashrc,如果放置于/.bashrc,则需确保/.bash_profile有如下配置:

1
2
3
4
# Run .bashrc if it exists
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

这样就能保证~/.bashrc在login shell或non login shell方式都能被执行。

Comments