Shells in Unix

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