BASH/C3/More-on-Redirection/English-timed
From Script | Spoken-Tutorial
Timee | Narration |
00:01 | Dear friends, welcome to the spoken tutorial on More on redirection. |
00:07 | In this tutorial, we will learn:
Redirection of both standard error and output ; |
00:13 | appending redirected output |
00:15 | with the help of some examples. |
00:19 | To follow this tutorial, you should have knowledge of Shell Scripting in BASH. |
00:25 | If not, for relevant tutorials, please visit our website which is as shown. http://www.spoken-tutorial.org |
00:30 | For this tutorial, I am using: Ubuntu Linux 12.04 Operating System |
00:35 | GNU BASH version 4.2. |
00:39 | Please note, GNU Bash version 4 or above is recommended for practice. |
00:46 | In an earlier tutorial, we learned about standard output and standard errors. |
00:52 | Both, stderr and stdout, can be redirected to the same file. |
00:58 | This can be done in multiple ways. |
01:01 | We will cover two of the most important methods of redirection in this tutorial. |
01:08 | The first method to redirect both the standard output and error is by using &>(ampersand) followed by greater-than sign. |
01:18 | The syntax is command space ampersand greater than space filename. |
01:25 | Let me open a file named redirect.sh. |
01:30 | I have typed some code in this file. |
01:32 | This is the shebang line. |
01:36 | ls lists the directory content of 2 directories namely /usr and /user. |
01:44 | Note that /user directory does not exist. |
01:48 | Hence the command ls will throw an error. |
01:52 | '&'(ampersand) followed by 'greater than' will redirect stdout and stderr to out_(underscore)file.txt. |
02:03 | Now save the file. |
02:05 | Let us run the file redirect.sh. |
02:07 | Open the terminal using CTRL + ALT and T keys simultaneously on your keyboard. |
02:15 | Type: chmod space plus x space redirect dot sh |
02:23 | Press Enter. |
02:25 | Type: dot slash redirect dot sh |
02:28 | Press Enter. |
02:30 | We can see the output by opening out_(underscore)file.(dot)txt. |
02:36 | Type: cat space out_(underscore)file.(dot)txt. |
02:42 | We can see both, the error and output. |
02:48 | The error for directory /user is recorded in this file. |
02:51 | It says that there was no '/user' directory found. |
02:56 | The directory content for /usr is displayed. |
03:00 | Please note that the content for '/usr' directory may vary on your system. |
03:06 | Now, let us delete this file. So, on the terminal, type: rm space out_(underscore)file. (dot)txt. |
03:15 | Another method is to use 2 greater than ampersand 1 after the filename. |
03:24 | The syntax is command space greater than filename space 2 greater than ampersand 1. |
03:33 | We can also redirect to slash dev slash null (/dev/null) file. |
03:39 | Let us learn a little more about slash dev slash null (/dev/null) file. |
03:45 | It is a special kind of file. |
03:48 | It is a null file or a place where we can dump anything. |
03:52 | It includes the output and error messages. |
03:57 | It is also called as bit bucket. |
04:00 | Let us now come back to our code in gedit. |
04:04 | Let us redirect both standard output and error to the null file. |
04:11 | I will copy this line of code and paste it below over here. |
04:16 | I want both the output and error messages to be discarded. |
04:21 | So, I will change this part of the copied code. > (greater than) means truncate or write. |
04:30 | slash dev slash null is the null file. 2>&1 (2 greater than ampersand 1) |
04:37 | Number “2” will redirect standard error to standard output, denoted by number “1”. |
04:45 | Now, click on Save. Save the code. |
04:48 | Let us run the file redirect.sh. |
04:52 | Go to the terminal. |
04:54 | Recall the previous command with the up-arrow key. dot slash redirect.sh and press Enter. |
05:03 | We can see the output by typing cat out_(underscore)file.(dot)txt. |
05:11 | Come back to the slides. |
05:15 | We can capture as well as append standard output or error to a file. |
05:21 | The output or the error will be appended at the end of the file. |
05:26 | If the file does not exist, it will create a new file. |
05:31 | The syntax is command space greater than greater than space followed by filename . |
05:41 | Let us understand this using an example. |
05:45 | Let me open the file redirect.(dot)sh. |
05:49 | Now, here let's type: date space greater than greater than space out_(underscore)file.(dot)txt. |
06:00 | The 'date' command will simply display the system date as output. |
06:06 | We can check this command on the terminal by typing 'date.' |
06:11 | Come back to the terminal. Type date. You can see that the system date i.e. the current date is displayed. |
06:23 | The output of date command will be appended to the out_(underscore)file.(dot)txt file. |
06:31 | We are using this file to capture standard output and error of 'ls' command. |
06:39 | Click on SaveSwitch to the terminal. |
06:43 | Now press the up-arrow key. Recall the previous command dot slash redirect dot sh. |
06:50 | and press Enter. |
06:52 | Let us check the output by opening out_(underscore) file.(dot)txt. |
06:59 | Type: cat space out_(underscore)file.(dot)txt |
07:05 | Observe that the output of 'date' command is appended to the end of the file. |
07:12 | This brings us to the end of this tutorial. |
07:15 | Let us summarize. |
07:17 | In this tutorial, we learnt: |
07:19 | Redirection of both standard error and output;
And to append the redirected output. |
07:27 | As an assignment: |
07:29 | Create X_(underscore)file.(dot)txt file with some contents. |
07:34 | Redirect the contents of both out_(underscore)file.(dot)txt and X_(underscore)file.(dot)txt to a new file. |
07:44 | Watch the video available at the link shown below. |
07:47 | It summarizes the Spoken-Tutorial project. |
07:51 | If you do not have good bandwidth, you can download and watch it. |
07:56 | The Spoken Tutorial Project team:
Conducts workshops using spoken tutorials. Gives certificates to those who pass an online test. |
08:06 | For more details, please write to contact@spoken-tutorial.org |
08:13 | Spoken Tutorial project is a part of the Talk to a Teacher project. |
08:17 | It is supported by the National Mission on Education through ICT, MHRD, Government of India.
More information on this mission is available at http://spoken-tutorial.org/NMEICT-Intro |
08:30 | The script has been contributed by FOSSEE and Spoken-Tutorial teams. |
08:37 | This is Ashwini from IIT Bombay. Thank you for joining. |