/etc/profile The systemwide initialization file,executed for login shells /etc/bash.bashrc The systemwide per-interactive-shell startup file /etc/bash.bash.logout The systemwide login shell cleanup file,executed when a login shell exits ~/.bash_profile The personal initialization file,executed for login shells ~/.bashrc The individual per-interactive-shell startup file ~/.bash_logout The individual login shell cleanup file,executed when a login shell exits ~/.inputrc Individual readline initialization file
显然,不同的shell(bash,zsh,csh和其他)似乎有不同的配置文件.似乎有不同的linux和unix版本的shell:csh,ksh,bash,… Bash有一个.bashrc,Zsh有.zshrc等.还可以区分登录shell和非登录shell以及系统范围的默认值和用户特定的默认值之间.
区分登录和非登录shell是有意义的,因为某些命令只应在登录时处理,而其他命令应在每次打开新的终端窗口时运行.这就是.bash_profile and .bashrc之间的区别.对于bash,每次启动bash的新副本时都会重新加载.bashrc,即当你启动一个新的bash但是没有登录时.只有在您登录时才会加载.bash_profile或.profile. bashrc中的abbtreviation rc代表“运行命令”或“运行控制”,是旧Unix系统采用的约定.
系统范围的默认值为..
> / etc / profile ..login shell,用于登录的交互式shell
> / etc / bashrc ..non-login Bash shell
主目录中用户特定的默认值〜为..
>〜/ .profile ..login shell,登录后调用
>〜/ .bashrc ..非登录shell,如果已经登录
>〜/ .bash_profile ..login shell,登录后调用(优先级较低)
>〜/ .bash_login ..login shell(登录时调用)
>〜/ .bash_logout ..login shell(在注销时调用)
以下链接很有用:.bashrc vs .bashprofile和.bash_profile vs .bashrc,bash manual page(man bash)和Zsh/Bash startup files loading order (.bashrc,.zshrc etc.).