以下内容来自博客:http://www.ochef.net/category/script
随着在Unix和Linux平台下工作的时间越长,不同种类的shell繁多,感觉对shell的认识由清晰开始变得模糊,所以应该赶紧弄清楚它们,shell太重要了。以下内容来自互联网综合、整理后的。
.profile:是Bourne Shell (sh)的配置文件,Korn Shell (ksh)兼容sh所以也会使用.profile。
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。
.bash_ profile:是bash特有的, 由于bash被设计成兼容sh、ksh并有csh的特征, 所以会在用户主目录依次查找.bash_profile, .bash_login,.profile并用找到的第一个作为自己的配置文件。
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息。当用户登录时,该文件仅仅执行一次。默认情况下,它设置一些环境变量,执行用户的.bashrc文件。
.login 是C Shell (csh) 的配置文件。
在Linux下sh是bash的一个链接, 如果bash使用sh命令启动的, 就会以sh兼容方式运行使用.profile,可用man bash命令查看更详细的解释。
/etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件。另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,它们是”父子”关系。
~/.bash_profile:是交互式、login 方式进入 bash 运行的;~/.bashrc 是交互式 non-login 方式进入 bash 运行的。通常二者设置大致相同,所以通常前者会调用后者。