Presentation is loading. Please wait.

Presentation is loading. Please wait.

CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT I/O Redirection.

Similar presentations


Presentation on theme: "CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT I/O Redirection."— Presentation transcript:

1 CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT I/O Redirection

2 CIT 140: Introduction to ITSlide #2 Topics 1.Standard Files: stdin, stdout, stderr. 2.Input Redirection 3.Output Redirection 4.Stderr Redirection 5.Appending 6.Pipes 7.Combining Pipes and Redirection

3 CIT 140: Introduction to ITSlide #3 Introduction All commands perform at least one of the following: 1.Input 2.Output 3.Processing Standard files for commands 1.Standard Input (stdin) 2.Standard Output (stdout) 3.Standard Error (stderr)

4 CIT 140: Introduction to ITSlide #4 Standard Files and File Descriptors By default – stdin is associated with keyboard – stdout is associated with display screen – stderr is associated with display screen

5 CIT 140: Introduction to ITSlide #5 Input Redirection Use ‘<‘ for input redirection command < input-file Input comes from input-file instead of keyboard. Examples: cat < tempfile mail waldenj <.bashrc

6 CIT 140: Introduction to ITSlide #6 Input Redirection

7 CIT 140: Introduction to ITSlide #7 Output Redirection Use ‘>‘ for output redirection command > output-file Output sent to output-file instead of screen. Examples: cat file1 file2 > mergefile find / -name “*.h” >headerfiles

8 CIT 140: Introduction to ITSlide #8 Output Redirection

9 CIT 140: Introduction to ITSlide #9 Output Redirection In a network environment, use the following command to sort on the server machine the file called datafile residing on your machine: ssh server sort < datafile

10 CIT 140: Introduction to ITSlide #10 Combining I+O Redirection command output-file command > output-file < input-file Input from input-file, output to output-file. Order of > and < operators does not matter. Example: cat lab2 cat takes input from lab1 and sends output to lab2.

11 CIT 140: Introduction to ITSlide #11 Redirection with File Descriptors File descriptor: a small integer that the UNIX kernel attaches with every open file standard input (sdin) — 0 standard output (stout) — 1 standard error (sderr) — 2 By making use of file descriptors, standard output and standard input can be redirected, using, 0 respectively. Example: $ grep “John” 0< tempfile

12 CIT 140: Introduction to ITSlide #12 Redirecting Standard Error command 2> error-file Errors sent to error-file instead of screen. Example: ls –l foo 2> error.log find / -name “*.h” 2>error.log

13 CIT 140: Introduction to ITSlide #13 Redirecting Standard Error

14 CIT 140: Introduction to ITSlide #14 Redirecting stdout and stderr Redirect stdout + stderr to same file using descriptors cat lab1 lab2 1> cat.output 2>cat.errors Send file descriptor 2 to fd 1 with 2>&1 cat lab1 lab2 lab3 1>cat.output.errors 2>&1 cat lab1 lab2 lab3 >cat.output.errors 2>&1 Send file descriptor 1 to fd 2 with 1>&2 cat lab1 lab2 lab3 2>cat.output.errors 1>&2

15 CIT 140: Introduction to ITSlide #15 Redirecting stdout and stderr

16 CIT 140: Introduction to ITSlide #16 Redirecting stdout and stderr

17 CIT 140: Introduction to ITSlide #17 Redirecting stdin, stdout, stderr command 0 output-file 2> error-file Command gets stdin from input-file sends stdout to output-file sends stderr to error-file File descriptors 0 and 1 not required as they are default values sort 0 students.sorted 2>sort.error sort 2>sort.error 0 students.sorted

18 CIT 140: Introduction to ITSlide #18 Appending Output By default, output and error messages overwrite the contents of the destination file. Append by using >> instead of using > Examples: cat memo letter >>stuff 2>error.log find / -name “*.h” >>files 2>>errors find / -name “*.h” >>find.output 2>&1

19 CIT 140: Introduction to ITSlide #19 Noclobber Options > set -o noclobber > touch a > cat smallFile >a bash: a: cannot overwrite existing file > set +o noclobber > cat smallFile >a

20 CIT 140: Introduction to ITSlide #20 The null device > ls -l /dev/null crw-rw-rw- 1 root root 1, 3 Oct 15 10:11 /dev/null > cat /dev/null > cat smallFile >/dev/null > cat /dev/null > find / -name “*.h” 2>/dev/null /usr/include/zconf.h … > ls –l smallFile -rw-r--r-- 1 waldenj 1100 Oct 19 14:13 smallFile > cat /dev/null >smallFile > ls -l smallFile -rw-r--r-- 1 waldenj 0 Oct 29 20:29 smallFile

21 CIT 140: Introduction to ITSlide #21 UNIX Pipes (‘|’) Connects the stdout of one command to the stdin of another. command1 | command2 | … | commandN Standard output of command1 is connected to stdin of command2,…, stdout of command N-1 is connected to stdin of command N. Filters: a special class of UNIX commands that take input from stdin process it and send it to stdout. I/O redirection and pipes can be used in a single command.

22 CIT 140: Introduction to ITSlide #22 UNIX Pipes (‘|’)

23 CIT 140: Introduction to ITSlide #23 UNIX Pipes (‘|’)

24 CIT 140: Introduction to ITSlide #24 Sending stdout+stderr to a pipe. 1. Send file descriptor 2 to fd 1. 2. Use pipe as usual. Example: find / -name "*.h" 2>&1 | less

25 CIT 140: Introduction to ITSlide #25 Redirection and Piping combined command1| tee file1…fileN|command2 Standard output of ‘command1’ is connected to ‘stdin’ of tee, and tee sends its input to files ‘file1’ through ‘fileN’ and as stdin on ‘command2’ Example: cat names stuents | grep “John Doe” | tee file1 file2 | wc –l

26 CIT 140: Introduction to ITSlide #26 Redirection and Piping combined

27 CIT 140: Introduction to ITSlide #27 Redirection in the C Shell Input, output, and append operators(,>>) same in csh. The operator for error redirection is >& in the C Shell. command >& file Redirects the stdout and stderr of command to file. Examples: ls –l foo >& error.log Csh does not have an operator for redirecting stderr alone. Use >>& operator to redirect and append stdout + stderr.

28 CIT 140: Introduction to ITSlide #28 Redirection in the C Shell Allows stdout and stderr of a command to be attached to stdin of another command with |& operator. command1 |& command2 Send stdout + stderr of command1 to command2. Examples: cat file1 file2 |& grep “John Doe” grep “John Doe” file* |& wc –l


Download ppt "CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT I/O Redirection."

Similar presentations


Ads by Google