Why Simplicity Rules: Mastering Unix Data Streams, Redirection, and Pipes
This article explains the Unix philosophy of keeping things simple, detailing how tools should do one job well and how data streams, redirection, and pipelines combine commands to create powerful yet straightforward command‑line workflows.
Keep It Simple, Stupid!
"Keep it simple and stupid" is a core Unix philosophy: solve problems with simple methods.
Tools should do one thing and do it well. Unix commands each focus on a single function without overlapping responsibilities.
Unix introduced the concept of connection : combine multiple commands to achieve complex tasks.
A single command is a "point", and the connection mechanism is a "line". By linking points with lines, Unix remains simple yet powerful.
The connection mechanism is data stream redirection and pipelines , involving three concepts.
1. Data Streams
Running ls produces a data stream that is displayed on the screen (standard output). The system provides three standard I/O streams: /dev/stderr → file descriptor 2 (standard error) /dev/stdin → file descriptor 0 (standard input) /dev/stdout → file descriptor 1 (standard output)
stderr represents error output, stdin is input from the keyboard, and stdout is output to the screen.
2. Redirection
Example: find a reports an error. To redirect the error stream to a file: find a 2> err.txt Here 2 denotes stderr , > means redirection (overwrites the file), and >> appends to the file.
3. Pipelines
Example: # ps -aux | grep httpd uses a pipeline to feed the output of ps -aux into grep httpd. The pipeline passes the output of one command as the input to the next.
Common pipeline utilities include more, grep, sort, awk, and sed.
Difference Between Redirection and Pipelines
(1) Pipelines operate on commands, while redirection operates on files.
(2) Pipelines spawn two subprocesses for the commands on each side of “|”, whereas redirection occurs within a single process.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Java High-Performance Architecture
Sharing Java development articles and resources, including SSM architecture and the Spring ecosystem (Spring Boot, Spring Cloud, MyBatis, Dubbo, Docker), Zookeeper, Redis, architecture design, microservices, message queues, Git, etc.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
