Shells are the user's interface to the operating system. Most UNIX shells are text based although there are some graphical shells as well. X-Windows window managers also display a shell like behaviour in some cases, but are not really shells.
We have already seen the most important function of a shell: the starting of programs. Shells do provide other services as well.