Understanding Shell Types: Interactive, Non-Interactive, Login, and Non-Login