I always had confusion about login vs non-login shell and today decided to clear this up. Here is what I have understood. Please refer to the following site for more explanation.
Reference: http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/profile.html
When a user starts The shell program /bin/bash (hereafter referred to as just "the shell"), shell uses a sequence of startup files to create an environment for the user.




