In simple words - a shell is a program that accepts the input from users and excutes program on their behalf by creating a new process, and whatever the response from that particular program - which could be input, output or error - it shows back it the the user.
