13,420
edits
Changes
→INVESTIGATION 2: REDIRECTION USING PIPES
=INVESTIGATION 2: REDIRECTION USING PIPES =
In this section, you will learn to issue '''pipeline commands ''' and learn how to perform tasks<br>using Linux commands with or without the generation of temporary files.
# Change to your '''home''' directory and confirm that you are now in your home directory.<br><br>
# Issue the '''ls''' command to view the contents of your '''~/redirect''' directory.<br><br>These are all temporary files that you created in your previous investigation.<br>The '''problem''' with creating temporary files, is that they take up space on your server,<br>and should be removed.<br><br>
# Issue the following Linux command to remove all files in your ''redirect'' directory: <span style="color:blue;font-weight:bold;font-family:courier;">rm -r ~/redirect</span><br>and confirm that you have removed this directory and its contents.<br><br>'''NOTE:''' You will be issuing a '''pipeline command ''' which will use the pipe symbol "|"<br>that will send the stdout from a command as stdin into another command.<br><br># Issue the follow Linux '''pipeline command''': <span style="color:blue;font-weight:bold;font-family:courier;">ls /bin | more</span><br><br>What happened?<br><br># Issue the following Linux '''pipeline command''': <span style="color:blue;font-weight:bold;font-family:courier;">ls /bin | who</span><br><br>What happened? Why is the result different than antipated?[[Image:pipe-diagram-1.png|thumb|right|350px|]]<br><br>'''NOTE:''' When issuing pipeline commands, commands to the right of the pipe symbol must be designed to accept stdin. Since the who command does not, you did NOT see the contents of the '''/bin''' directory but only information relating to the ''who'' command. Therefore, the '''order''' of which you build your pipeline command and the '''type of command''' that is used as a ''filter'' is extremely important!<br><br>
# Issue the following Linux command: <span style="color:blue;font-weight:bold;font-family:courier;">cp /bin/?? > listing.txt</span><br><br>
# Issue the following Linux command: <span style="color:blue;font-weight:bold;font-family:courier;">sort -r listing.txt</span><br><br>
# Issue the following Linux command to remove the listing file: <span style="color:blue;font-weight:bold;font-family:courier;">rm listing.txt</span><br><br>
# Issue the following Linux '''pipeline command''': <span style="color:blue;font-weight:bold;font-family:courier;">ls /bin/?? | sort -r</span><br><br>You should notice that the output from this pipeline command is the same output<br>from the command you issued in '''step #6'''<br><br># Issue the following Linux '''pipeline command''': <span style="color:blue;font-weight:bold;font-family:courier;">ls /bin/?? | sort -r | more</span><br><br>What is different with this pipeline command as opposed to the previous pipeline command?<br><br>
# Issue the '''ls''' command.<br><br>You should notice that no files have been created. Let's get practice issuing more pipeline commands<br>using commands (previously learned or new) to be used as filters.<br><br>
# Issue the following Linux '''pipeline command''': <span style="color:blue;font-weight:bold;font-family:courier;">ls /bin/?? | sort -r | head -5</span><br><br>What did you notice?<br><br># Issue the following Linux '''pipeline command''': <span style="color:blue;font-weight:bold;font-family:courier;">ls /bin/???? | sort -r | grep r | tail -2</span><br><br>What did you notice?<br><br># Issue the following Linux '''pipeline command''': <span style="color:blue;font-weight:bold;font-family:courier;">ls /bin/???? | sort -r | grep r | cut -c1-3</span><br><br># Issue the following Linux '''pipeline command''':<br><span style="color:blue;font-weight:bold;font-family:courier;">ls /bin/???? | tee unsorted.txt | sort -r | tee sorted.txt | tee unmatched.txt | grep r | tail -2</span><br><br>What did you notice?<br><br>
# Check the files that were created to see how the '''tee''' command was used in the previous pipeline command.<br><br>
# Change to your home directory.<br><br>