Courses/Computer Science/CPSC 457.W2012/FIFO Example
From wiki.ucalgary.ca
< Courses | Computer Science | CPSC 457.W2012
$ echo "hello" > hello.txt
$ cat hello.txt hello $ tail -f hello.txt & [1] 3983 $ hello $ echo "goodbye" > hello.txt goodbye $ ps PID TTY TIME CMD 3949 ttys006 0:00.03 -bash 3983 ttys006 0:00.00 tail -f hello.txt $
Pipes
$ history | gawk '{print $2}' | head make emacs make emacs make emacs make emacs make ls $ history | gawk '{print $2}' | sort | head PS1="$ bunzip2 bunzip2 cat cd cd cd cd cd cd $ history | gawk '{print $2}' | sort | uniq -c | head 1 PS1="$ 2 bunzip2 1 cat 76 cd 31 clear 3 cp 2 dot 3 echo 29 emacs 20 exit $ history | gawk '{print $2}' | sort | uniq -c | sort -nr | head 100 ls 76 cd 37 ssh 31 clear 29 emacs 21 man 20 exit 19 open 18 more 14 mkdir
Named Pipes (FIFOs)
Named pipes provide a way of creating an I/O FIFO buffer, represented by a file, that can be referred to by name in other operations, scripts, and programs. The command-line pipes we encountered above are somewhat anonymous; we cannot refer to the pipe at stage three above, for example. It simply exists to pass output from sort
to uniq
$ mkfifo pipeline $ ls hello.txt pipeline| plan.txt plan.txt~ $ tail -f pipeline & [1] 4153 $ cat hello.txt > pipeline goodbye $ fg tail -f pipeline ^C $ cat hello.txt