Pipes
We can describe a pipeline as a sequence of processes tied together by stdout
and stdin
so that the output of one process becomes the input of the following one. This is a simple form of IPC, commonly as anonymous pipe, and it is a one-way form of communicating: whatever comes from standard output of the preceding process flows into the standard input of the following one; nothing comes back from the latter to the former.
Let's see an example that will clarify the of anonymous pipe, staring with a simple ps
command:
zarrelli:~$ ps PID TTY TIME CMD 1427 pts/0 00:00:00 bash 12112 pts/0 00:00:00 ps
We have a simple listing with some commands: PID
, TTY
, and CMD
. Let's say we want to trim down the output to just PID
and CMD
. We could alter the output using some ps
switches, but who remembers them? It's easier to use something that is capable of mangling the text and gives us the result we want, so why not use awk
? The problem here is that awk
works on the text it receives from the input...