I believe that every developers has seen that , and we all found solution by , or $ source this is a note to make things clear of those file. _$ xxx command not found_ $ source ~/.profile ~/.bash_profile, is for things that are not specifically related to Bash, like environment variables and friends, and should be available anytime. For example, should also be loaded when starting a graphical desktop session. .profile PATH .profile is for the configuring the interactive Bash usage, like Bash aliases, setting your favorite editor, setting the Bash prompt, etc. .bashrc is for making sure that both the things in and are loaded for login shells. For example, could be something simple like .bash_profile .profile .bashrc .bash_profile . ~/.profile. ~/.bashrc Reference: http://stefaanlippens.net/bashrc_and_others/ https://stackoverflow.com/questions/18791486/differences-uses-and-similarities-between-bashrc-bash-profile-and-etc-profil