There are many more commands available to ordinary users under Linux than you have seen so far. This tutorial will concentrate on some of the more sophisticated commands available, which singly or in combination make it possible to do many useful things without having to resort to any programming.
Many of the commands described in this tutorial are designed to take their input from the standard input device and to send their output to the standard output device. This makes them ideal candidates to use when building up more complex pipelines, where the output from one command is piped into the input of the next. Commands of this type are generally called filters. These commands read their standard input, perform some transformation on it and then write the result to the standard output.