I believe that every developers has seen that _$ xxx command not found_, and we all found solution by $ source ~/.profile , or $ source ~/.bash_profile, this is a note to make things clear of those file.
.profileis for things that are not specifically related to Bash, like environment variablesPATHand friends, and should be available anytime. For example,.profileshould also be loaded when starting a graphical desktop session..bashrcis for the configuring the interactive Bash usage, like Bash aliases, setting your favorite editor, setting the Bash prompt, etc..bash_profileis for making sure that both the things in.profileand.bashrcare loaded for login shells. For example,.bash_profilecould be something simple like
. ~/.profile. ~/.bashrc
