How do I find out what shell I am using on Linux/Unix?

Both Linux and Unix provides various shell out of the box. One can find bash (Bourne Again shell), ksh (Korn shell), csh (C shell)/tcsh (TC shell), sh (Bourne shell) and more installed by default. What is the most reliable and straightforward way to get the current shell interpreter name on Linux or Unix-like system? How do I check how many shells are installed? How do I change the shell used from my Linux/Unix user account?