identifying commands, options, and arguments
commands may interact with each other, often via pipes
redirection operators may be used for input and output