Continuing the second part, in this part you will learn how to combine two commands in one (called pipelining) and also to store data from memory into text file (called redirection). These two techniques are the basic of all Unix-like systems and applicable on all GNU/Linux distros. Go ahead and practice them all!
Subscribe to UbuntuBuzz Telegram Channel to get article updates directly.
Read also First Part: Navigation and Second Part: Copy & Delete of the most basic command lines for Ubuntu beginners.
The Keys
There are two keys you will use in this exercise: the vertical pipe sign ( | ) and the greater-than sign ( > ). They are pipeline and redirection signs. You get the former by pressing Shift+Backslash, and the latter by pressing Shift+Period, for most keyboards.
The Commands Used
- ps aux
- cat
- ls
- ping
- grep
- awk
Command 1
$ ps aux
$ ps aux | grep bash
$ ps aux | grep shell
Command 2
$ nautilus
$ ps aux
$ ps aux | grep nautilus
$ ls
$ ls | grep D
$ ls | grep M
$ ls | grep V
$ ls | grep P
$ ls -R | grep pdf
$ ls -R | grep mp3
What do you see?
$ soffice --writer
$ soffice --calc
$ soffice --impress
$ ps aux | grep writer
$ ps aux | grep calc
$ ps aux | grep impress
Close all LibreOffice windows, and try again:
$ ps aux | grep writer
$ ps aux | grep calc
$ ps aux | grep impress
Command 3
Turn on your internet access here.
$ cat /etc/resolv.conf
$ cat /etc/resolv.conf | grep nameserver
Command 4
$ ping gnu.org
Wait 5 seconds
Press Ctrl+C
$ ping kernel.org
Wait 5 seconds
Press Ctrl+C
$ ping localhost
Wait 5 seconds
Press Ctrl+C
Command 5
$ ping gnu.org | awk '{ print $8 }'
Wait 5 seconds
Press Ctrl+C
$ ping kernel.org | awk '{ print $8 }'
Wait 5 seconds
Press Ctrl+C
$ ping localhost | awk '{ print $8 }'
Wait 5 seconds
Press Ctrl+C
Turn off your internet access here.
What do you see?
Command 6
$ dpkg -l
What do you see?
$ dpkg -l | grep firefox
What do you see?
$ dpkg -l | grep thunderbird
What do you see?
$ dpkg -l | grep kernel
$ dpkg -l | grep kernel | grep image
What's the difference?
Command 7
$ cat /etc/apt/sources.list
$ cat /etc/apt/sources.list | grep security
$ cat /etc/apt/sources.list | grep updates
Command 8
echo "Hello, I am a message!"
echo "Hi!"
echo "This is a data!"
Command 9
echo "this was written on Terminal screen" > text.txt
echo "this text become a file by redirection" >> text.txt
echo "take data from memory and store it as file" >> text.txt
echo "create new text!" > file1.txt
echo "single sign means to replace" > file2.txt
echo "double sign means to append" >> file2.txt
echo "this is added as the last line" >> file2.txt
cat text.txt
cat file1.txt
cat file2.txt
Command 10
$ cat /etc/apt/sources.list
$ cat /etc/apt/sources.list > file3.txt
$ cat file3.txt
$ cat /etc/resolv.conf
$ cat /etc/resolv.conf > file4.txt
$ cat file4.txt
$ cat cat /usr/share/doc/firefox/copyright
$ cat /usr/share/doc/firefox/copyright > file5.txt
$ cat file5.txt
$ cat file3.txt
$ cat file4.txt
$ cat file5.txt
Try to copy the content of file5.txt and paste it into LibreOffice Writer and save as PDF. You got a PDF!
Command 11
man apt
man cp
man rm
man ls
man wget
Press q to quit every manual.
man apt > apt-book.txt
man cp > cp-book.txt
man rm > rm-book.txt
man ls > ls-book.txt
man wget > wget-book.txt
Again, try to copy the books into LibreOffice Writer and export them as PDF. Otherwise, you can also print them to papers!
Command 12
$ ps aux | grep bash
$ dpkg -l | grep firefox
$ dpkg -l | grep kernel
$ dpkg -l | grep gnome
$ ps aux | grep bash > file6.txt
$ dpkg -l | grep firefox > file7.txt
$ dpkg -l | grep kernel > file8.txt
$ dpkg -l | grep gnome > file9.txt
Command 13
$ cat file1.txt file2.txt file3.txt > joined-file1.txt
$ cat file4.txt file5.txt file6.txt > joined-file2.txt
$ cat file7.txt file8.txt file9.txt > joined-file3.txt
Open up joined-file one, two, and three with Gedit instead. What do you see?
Command 14
$ cat joined-file1.txt joined-file2.txt joined-file3.txt > final-file.txt
Again, open up the final-file with Gedit. Also try to open it up with LibreOffice and export it as PDF.
Notes
- Ctrl+C is cancel in Terminal: to cancel running command.
- cat command is not an animal, it is concatenation.
- echo command is a text printer to Terminal screen. The printed text are stored in computer memory (temporary), not file (permanent).
- dpkg -l is a command to list all software packages installed on Ubuntu system.
- ps aux is a command similar to Windows Task Manager, to show all currently running programs.
- grep is a command to search text based on your keyword (texts found are marked as red).
- awk is a command to read and manipulate text in beautiful way.
Summary
- Commands can be combined one with another.
- Combining commands is achieved by using pipe ( | ) sign. Thus it's called pipelining.
- Text from Terminal screen can be stored (redirected) into file.
- Redirecting data into file is achieved by using redirection ( > ) sign.
- You can create TXT version of Ubuntu commands' manuals by using redirection. Once created, TXT can be printed or saved as PDF with LibreOffice! This way you can read Ubuntu manuals you want in papers.
- Pipelining and redirection can be combined, too.
- You can combine any pair of commands and any number of commands as you wish (not limited to 2!) and the result is infinite number of solutions you can achieve.
- cat command can be used to join split files (part1, part2, etc.) into one.
This article is licensed under CC BY-SA 3.0.