Ravindra BagaleCourses & study guides

Chapter 4: Linux Advanced Commands

4.4 Pipes and redirection

Pipes are like a relay race — the output of one runner (command) is handed to the next. Technically, the shell connects the standard output (stdout) of the left command to the standard input (stdin) of the right command. Samjla ka? Once you master this, you can combine small commands into powerful one-liners.

Symbol Meaning Example
| (pipe) Output of left command becomes input of right command ps aux | grep nginx
> Redirect output to file (overwrite) echo "hi" > a.​txt
>> Append output to file date >> log.txt
< Take input from file mysql -​u root -​p mydb < backup.​sql
2> Redirect errors find / -​name x 2> errors.​txt
2>&1 Send errors to same place as output ./​script.​sh > out.​log 2>&1
&> Output and errors together (bash) cmd &> all.log
/dev/null "Black hole" — discard cmd > /​dev/​null 2>&1
tee Write to file and screen echo "x" | sudo tee /​etc/​file
&& / || Run next only if success / failure sudo nginx -​t && sudo service nginx reload

Why sudo tee instead of sudo echo > file?

In sudo echo "text" > /etc/file, the redirection > is done by your shell (not root), so it fails with Permission denied. Pipe the text into sudo tee /etc/file instead (or sudo tee -a to append).

Here-documents (used a lot in this book)

A here-doc writes multiple lines into a file in one command — perfect for creating config files by copy-paste. Everything between <<'EOF' and the line containing only EOF is written to the file:

sudo tee /tmp/hello.txt > /dev/null <<'EOF'
Line one
Line two with $HOME not expanded because 'EOF' is quoted
EOF
cat /tmp/hello.txt

Copy-pasting here-docs

Paste the whole block at once, including the final EOF line. The closing EOF must be at the very start of the line with nothing after it.

Ravindra Bagale's Tip

When a website is down, my first three commands are always: sudo service <name> status, sudo tail -n 50 <error log> and sudo ss -tlnp. Nine times out of ten the answer is right there. Make this your reflex too.