a shell is an important interaction component between the user and the system
since a user typically types one or more commands in a line, and then sends it to the shell by pressing the RETURN key, shells are also known as command lines
for most commands issued by the user, the shell launches separate child processes
shells frequently use the redirection operators (< and >) for more flexible ways of dealing with input and output for commands
pipes are often used to direct the output of one command to be used as input by another command
redirection and pipes can be handled by rearranging file descriptors for the processes involved