Quiz: Remember the definition of mal de mer?
In Unix, to send ouput from a process to different file or device or to another process via a pipe, or to have a process read its input from a different file, device or pipe. Some other operating systems have similar facilities.
To redirect input to come from a file instead of the keyboard, use "<":
myprog < myfile
Similarly to redirect output to a file instead of the screen:
ls > filelist
A pipe redirects the output of one process directly into the input of another
who | wc -l
A common misuse by beginners is
cat myfile | myprog
Which is more or less equivalent to "myprog < myfile" except that it introduces an extra unnecessary cat process and buffer space for the pipe. Even the "<" is unnecessary with many standard Unix commands since they accept input file names as command line arguments anyway.
Unix's concept of standard input/output and I/O redirection make it easy to combine simple processes in powerful ways and to use the same commands for different purposes.