/etc/bash.bashrc** **: This file is read whenever an interactive shell is started (normal terminal) and all the commands specified in here are executed.
/etc/profile and /etc/profile.d/*: This file is read every time a user logs in. Thus all the commands executed in here will execute only once at the time of user logging in.
Files that affect behavior for only a specific user:
~/.bashrc** :** This file behaves the same way /etc/bash.bashrc file works but it is executed only for a specific user. If you want to create an environment for yourself go ahead and modify or create this file in your home directory.
~/.profile, ~/.bash_profile, ~/.bash_login: These files are same as /etc/profile. The difference comes in the way it is executed. This file is executed only when a user in whose home directory this file exists, logs in.