The idea behind a standard input and output is that there is a data source, a sink and a place to report all errors.
To summarize standard IO:
As an example, take this RepeatInput program which reads in an input, then spits it back out.
$ java RepeatInput < "hello world!" > hello_world.txt # "hello world!" now stored in hello_world.txt
/dev/null is a special place on our UNIX machine that acts as a trash bin. Anything sent to /dev/null is discarded.
If you want to omit all errors when running a program (which you should have a very good reason to do) then you can simply direct error messages to /dev/null.
#!/bin/bash # Program runs silently by throwing away error messages java ProgramWithErrors 2> /dev/null
You can also run a script that clears files by overwriting its content with /dev/null
#!/bin/bash cd /var/log cat /dev/null > logMessages echo "Log files all cleaned up!"
There are also pipelines, which are used to take the standard output of one command to be used as the standard input of another command. These commands are joined together by a
Pipelines should be ordered so that you reduce the most amount of data on each step.
$ ls | grep .txt | wc -w # How many files with .txt extension are in current folder 22
This foam seat cushion relieves lowerback pain, numbness and pressure sores by promoting healthy weight distribution, posture and spine alignment. Furthermore, it reduces pressure on the tailbone and hip bones while sitting. Perfect for sitting on the computer desk for long periods of time.$ Check price
In this completely revised second edition of the perennial best seller How Linux Works, author Brian Ward makes the concepts behind Linux internals accessible to anyone curious about the inner workings of the operating system. Inside, you'll find the kind of knowledge that normally comes from years of experience doing things the hard way.$ Check price