What is the difference between interactive shells, login shells, non-login shell and their use cases?

view story

http://unix.stackexchange.com – I have been looking at /etc/profile. bash.bashrc to see how they are run, and notice that some are executed by non-login shells, some work with interactive shells etc. What are the differences in this type of shells, ie interactive & non-interactive, login & non-login etc? The question may be pretty basic,but it seems I need to ask what a shell is, first and foremost. What is a shell, what is its relevance, how do you use it, and why does it exist to start with? Update: To make the intent of the question better understood, what I need to understand besides the definitions, are the u (HowTos)