LinuxFEST 7.3.2009               GNU/Linux                      Presmerovanie I/OAutor: Michal SedlákEmail: michal6103 [at...
Prezentácia je založená na                           The LBook:             An Introductory Guide to Linux Basics         ...
Obsah   ●       Jednoduché presmerovania       –   Štandardný vstup a výstup       –   Operátory   ●       Pokročilé presm...
Presmerovanie   ●       Zachytenie výstupu           –   Súboru           –   Príkazu           –   Programu           –  ...
Input, Output, Error●    Program           –   Standard input                  ●                      Klávesnica          ...
Operátory > a |   ●        prikaz > subor           –   Presmeruje stdout do súboru           –   Ak súbor neexistuje, tak...
Príklad >   $ cat > test1   Toto sa zapise do suboru   $ cat > test2   Toto sa zapise do ineho suboru   $ cat test1   Toto...
Príklad >#zlúč enie súborov test1 a test2 $ cat test1 test2 > test3$ cat test3Toto sa zapise do suboruToto sa zapise do su...
Prepísanie súborov >|   ●       Noclobber – bash ochrana (.bashrc)$ set ­o noclobber cat > test3bash: test3: nedá sa prepí...
Vytvorenie súboru$ ls ­lacelkom 12drwxr­xr­x   2 michal michal 4096 2009­03­06 18:17 .drwxr­xr­x 161 michal michal 8192 20...
Sieť   ●       /dev/tcp/host/port   ●       /dev/udp/host/port   ●       Vypnuté v Debiane:           –   nepredvídateľné ...
Rúra |    ●        Presmerovanie výstup jedného programu        do druhého    ●        grep retazec1 subor | grep -v retaz...
Rúra |  $ ls /dev |grep sda  sda  sda1  sda2  sda3  sda57.3.2009                13/40
Príklad <   ●       Presmerovanie obsahu súboru do       štandardného vstupu programu$ ls Obrázky/Avatar  Experimenty  Web...
Kombinovanie operátorov    ●        Operátory sa dajú kombinovať$ sort ­r < dir.txt > reversed.txt$ cat reversed.txt Webca...
Kombinovanie operátorov   ●       Ľubovoľný počet |   ●       Niektoré programy nepoužívajú stdin a       stdout (čítajte ...
Operátor >>   ●       Pripojenie stdout na koniec súboru   ●       Ak súbor neexistuje, tak vytvorí súbor   ●       Ak súb...
Príklad >>  $ date >> datum.txt  $ date >> datum.txt  $ date >> datum.txt  $ date >> datum.txt  $ date >> datum.txt  $ cat...
File deskriptor   ●       Pridelený každému otvorenému súboru   ●       Číslo pridelené OS   ●       Identifikátor slúžiac...
/dev/fd $ ls ­la /dev/fd /dev/fd ­> /proc/self/fd  $  ls ­la /dev/fd/        $  ls ­la /dev/fd/  0 ­> /dev/pts/1          ...
0,1,2 File deskriptor   ●       3 typy I/O           –   standard input:    FD 0           –   standard output:   FD 1    ...
Príklad 1> a 2>$ mkdir testdir$ cd testdir$ > file1$ lsFile1$ ls file1 file2 ls: nie je možné pristupovať  k file2: No suc...
>N vs. >&N   ●       >N            –   Presmerovanie do suboru N   ●       >&N            –   Presmerovanie na FD N7.3.200...
stderr a stdout v jednom súbore$ ls file1 file2 > dirlist 2>&1$ cat dirlistls: nie je možné pristupovať  k file2: No such ...
Prezeranie chýb   ●       Ak program generuje veľa chýb   ●   command 2>&1 | less7.3.2009                               25...
Bash 4 (23. 2. 2009)  &>>      ekvivalent   cmd >>subor 2>&1  |&       ekvivalent   cmd 2>&1 | cmd7.3.2009                ...
Presmerovanie chýb  ●      Presmerovanie chýb do iného terminálu$ tty/dev/pts/1$ make 2> /dev/pts/0$ tty/dev/pts/0 $ make:...
Zapisovanie do súborov a zároveň na obrazovku$ ls file1 file2 | tee dirlist ls: nie je možné pristupovať  k file2: No such...
Vypisovanie chýb v skriptoch  $ echo Chybova hlaska >&2  Chybova hlaska  case "$1" in    start)     # No­op     ;;    rest...
Vytvorenie FD N<> Zatvorenie FD n<&-, n>&-$ echo 1234567890 > File$ exec 3<> File$ read ­n 4 <&3$ echo ­n . >&3$ exec 3>&­...
Príklad <<a <<- Here documents   #!/bin/bash   interactive-program <<-LimitString     command #1     command #2     ...   ...
Trvalé presmerovanie exec   ●       exec - vytvorenie nového procesu,       nahradením starého   ●       exec ovplyvní pre...
Príklad na exec#!/bin/bashexec 6<&0          # zapametame si stdinexec < data­file   # nahradime stdin s "data­file"read a...
Filtrovanie výstupu   ●       grep   ●       cut   ●       sort   ●       sed7.3.2009               34/40
grep    ●        Vyhľadáva v súboroch, alebo zo stdin$ grep users /etc/groupusers:x:100:dusko,michal,martickavboxusers:x:1...
cut$ ls ­la | cut ­c 35­502009­03­07 12:082009­03­07 10:392009­03­07 12:062009­03­07 12:06$ ls ­la | cut  ­d" " ­f 12,1312...
sort   ●       Zoradenie podľa    michal@doma:~/testdir$ ls |                           sort ­r       rôznych kriterií   g...
sort$ ls ­la | cut ­c 35­502009­03­07 12:082009­03­07 10:392009­03­07 12:062009­03­07 12:062009­03­07 12:062009­03­07 12:0...
sed   ●       Stream editor   ●       Regulárne výrazy$ echo Windows je dominantny OS a Balmer je stastny | sed s/Windows/...
Zhrnutie   ●       Presmerovanie   ●       Operátory >, >>, &>, &>>, |&, |   ●       File deskriptory >&, <>, <&-, >&-   ●...
Ďakujem za pozornosť           Na prípadné otázky rád odpoviem           michal6103 [at] gmail [dot] com7.3.2009          ...
LinuxFest podporujú
Referenciehttp://tldp.org/LDP/abs/html/io-redirection.html
Upcoming SlideShare
Loading in …5
×

Linux: Presmerovanie I/O

471
-1

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
471
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Linux: Presmerovanie I/O

  1. 1. LinuxFEST 7.3.2009 GNU/Linux Presmerovanie I/OAutor: Michal SedlákEmail: michal6103 [at] gmail [dot] com
  2. 2. Prezentácia je založená na The LBook: An Introductory Guide to Linux Basics http://linuxbasics.org/course/book/index Vizuálna téma prezentácie je odvodená témy vytvorenej: Sakari Koivunen and Henrik Omma Released under the LGPL license.7.3.2009 2/40
  3. 3. Obsah ● Jednoduché presmerovania – Štandardný vstup a výstup – Operátory ● Pokročilé presmerovania – File deskriptor ● Filtre7.3.2009 3/40
  4. 4. Presmerovanie ● Zachytenie výstupu – Súboru – Príkazu – Programu – Skriptu – Bloku kódu v skripte ● Poslanie na vstup – Súboru, príkazu, programu, alebo skriptu7.3.2009 4/40
  5. 5. Input, Output, Error● Program – Standard input ● Klávesnica – Standrad output ● Obrazovka ● Tlačiareň ● Súbor – Standard error7.3.2009 5/40
  6. 6. Operátory > a | ● prikaz > subor – Presmeruje stdout do súboru – Ak súbor neexistuje, tak bude vytvorený – Ak súbor existuje, bude prepísaný ● prikaz1 | prikaz2 – Presmeruje stdout príkazu jedna do stdin príkazu dva7.3.2009 6/40
  7. 7. Príklad > $ cat > test1 Toto sa zapise do suboru $ cat > test2 Toto sa zapise do ineho suboru $ cat test1 Toto sa zapise do suboru $ cat test2 Toto sa zapise do ineho suboru7.3.2009 7/40
  8. 8. Príklad >#zlúč enie súborov test1 a test2 $ cat test1 test2 > test3$ cat test3Toto sa zapise do suboruToto sa zapise do suboru test27.3.2009 8/40
  9. 9. Prepísanie súborov >| ● Noclobber – bash ochrana (.bashrc)$ set ­o noclobber cat > test3bash: test3: nedá sa prepísať  existujúci súbor$ cat >| test3prepisal som subor test2        $ cat test3prepisal som subor test2$ set +o noclobber7.3.2009 9/40
  10. 10. Vytvorenie súboru$ ls ­lacelkom 12drwxr­xr­x   2 michal michal 4096 2009­03­06 18:17 .drwxr­xr­x 161 michal michal 8192 2009­03­06 18:17 ..$ > prazdny subor$ ls ­lacelkom 12drwxr­xr­x   2 michal michal 4096 2009­03­06 18:17 .drwxr­xr­x 161 michal michal 8192 2009­03­06 18:17 ..­rw­r­­r­­   1 michal michal    0 2009­03­06 18:17 prazdny subor7.3.2009 10/40
  11. 11. Sieť ● /dev/tcp/host/port ● /dev/udp/host/port ● Vypnuté v Debiane: – nepredvídateľné dôsledky – Netcat – /usr/share/doc/bash/README.Debian.gz7.3.2009 11/40
  12. 12. Rúra | ● Presmerovanie výstup jedného programu do druhého ● grep retazec1 subor | grep -v retazec2 ● ls -la | less ● cat script | mysql7.3.2009 12/40
  13. 13. Rúra | $ ls /dev |grep sda sda sda1 sda2 sda3 sda57.3.2009 13/40
  14. 14. Príklad < ● Presmerovanie obsahu súboru do štandardného vstupu programu$ ls Obrázky/Avatar  Experimenty  Webcam$ ls Obrázky/ > dir.txt$ cat dir.txt | sort ­rWebcamExperimentyAvatar$ sort ­r < dir.txtWebcamExperimentyAvatar7.3.2009 14/40
  15. 15. Kombinovanie operátorov ● Operátory sa dajú kombinovať$ sort ­r < dir.txt > reversed.txt$ cat reversed.txt WebcamExperimentyAvatar$ less ­­help | grep ­i examine > examine.txt$ cat examine.txt   :e [file]         Examine a new file.  :n             *  Examine the (N­th) next file  :p             *  Examine the (N­th) previous file  :x             *  Examine the first (or N­th) file  +cmd              Execute the less cmd each time a new file7.3.2009 15/40
  16. 16. Kombinovanie operátorov ● Ľubovoľný počet | ● Niektoré programy nepoužívajú stdin a stdout (čítajte man stránky)7.3.2009 16/40
  17. 17. Operátor >> ● Pripojenie stdout na koniec súboru ● Ak súbor neexistuje, tak vytvorí súbor ● Ak súbor existuje, tak ho rozšíri o výstup spusteného programu7.3.2009 17/40
  18. 18. Príklad >> $ date >> datum.txt $ date >> datum.txt $ date >> datum.txt $ date >> datum.txt $ date >> datum.txt $ cat datum.txt  Pi mar  6 20:59:46 CET 2009 Pi mar  6 20:59:48 CET 2009 Pi mar  6 20:59:49 CET 2009 Pi mar  6 20:59:50 CET 2009 Pi mar  6 20:59:51 CET 20097.3.2009 18/40
  19. 19. File deskriptor ● Pridelený každému otvorenému súboru ● Číslo pridelené OS ● Identifikátor slúžiaci na poskytnutie prístupu ● Pre používateľa 0-9 ● exec (3 -Ubuntu, 5-LDP)7.3.2009 19/40
  20. 20. /dev/fd $ ls ­la /dev/fd /dev/fd ­> /proc/self/fd $  ls ­la /dev/fd/ $  ls ­la /dev/fd/ 0 ­> /dev/pts/1 0 ­> /dev/pts/0 1 ­> /dev/pts/1 1 ­> /dev/pts/0 2 ­> /dev/pts/1 2 ­> /dev/pts/0 3 ­> /proc/7381/fd 3 ­> /proc/7381/fd7.3.2009 20/40
  21. 21. 0,1,2 File deskriptor ● 3 typy I/O – standard input: FD 0 – standard output: FD 1 – standard error: FD 2 ● Čísla sú sú identifikátory – > je ekvivalent k 0> – < je ekvivalent k <17.3.2009 21/40
  22. 22. Príklad 1> a 2>$ mkdir testdir$ cd testdir$ > file1$ lsFile1$ ls file1 file2 ls: nie je možné pristupovať  k file2: No such file or directory File1$ ls file1 file2 1> dirlist 2> errorlist$ cat dirlistFile1$ cat errorlistls: nie je možné pristupovať  k file2: No such file or directory7.3.2009 22/40
  23. 23. >N vs. >&N ● >N – Presmerovanie do suboru N ● >&N – Presmerovanie na FD N7.3.2009 23/40
  24. 24. stderr a stdout v jednom súbore$ ls file1 file2 > dirlist 2>&1$ cat dirlistls: nie je možné pristupovať  k file2: No such file or directoryfile1$ ls file1 file2 &> dirlist$ cat dirlistls: nie je možné pristupovať  k file2: No such file or directoryfile1 $ ls file1 file2 2>&1 > dirlist ls: nie je možné pristupovať  k file2: No such file  or directory $ cat dirlist  file17.3.2009 24/40
  25. 25. Prezeranie chýb ● Ak program generuje veľa chýb ● command 2>&1 | less7.3.2009 25/40
  26. 26. Bash 4 (23. 2. 2009) &>> ekvivalent cmd >>subor 2>&1 |& ekvivalent cmd 2>&1 | cmd7.3.2009 26/40
  27. 27. Presmerovanie chýb ● Presmerovanie chýb do iného terminálu$ tty/dev/pts/1$ make 2> /dev/pts/0$ tty/dev/pts/0 $ make: *** No targets specified and no  makefile found.  Stop. make: *** No targets specified and no makefile  found.  Stop.7.3.2009 27/40
  28. 28. Zapisovanie do súborov a zároveň na obrazovku$ ls file1 file2 | tee dirlist ls: nie je možné pristupovať  k file2: No such file or directoryfile1$ cat dirlist file1$ ls file1 file2 2>&1 | tee dirlist ls: nie je možné pristupovať  k file2: No such file or directoryfile1 $ cat dirlist  ls: nie je možné pristupovať  k file2: No such file  or directory file17.3.2009 28/40
  29. 29. Vypisovanie chýb v skriptoch $ echo Chybova hlaska >&2 Chybova hlaska case "$1" in   start) # No­op ;;   restart|reload|force­reload) echo "Error: argument $1 not supported" >&2 exit 3 ;;   stop) do_stop ;;   *) echo "Usage: $0 start|stop" >&2 exit 3 ;;7.3.2009 29/40
  30. 30. Vytvorenie FD N<> Zatvorenie FD n<&-, n>&-$ echo 1234567890 > File$ exec 3<> File$ read ­n 4 <&3$ echo ­n . >&3$ exec 3>&­$ cat File1234.678907.3.2009 30/40
  31. 31. Príklad <<a <<- Here documents #!/bin/bash interactive-program <<-LimitString command #1 command #2 ... LimitString7.3.2009 31/40
  32. 32. Trvalé presmerovanie exec ● exec - vytvorenie nového procesu, nahradením starého ● exec ovplyvní presmerovanie, pre celý skript, alebo shell (PID) ● exec >filename (cely shell, skript) ● > filename (len pre novo forknuté procesy)7.3.2009 32/40
  33. 33. Príklad na exec#!/bin/bashexec 6<&0          # zapametame si stdinexec < data­file   # nahradime stdin s "data­file"read a1            # nacitame prvy riadok z "data­file".read a2            # nacitame druhy riadok "data­file."echo $a1echo $a2echo; echo; echoexec 0<&6 6<&­     # vratime hodnotu stdin a zmazeme fd6echo ­n "Enter data  "read b1            # citanie z klavesnice.echo "b1 = $b1"exit 07.3.2009 33/40
  34. 34. Filtrovanie výstupu ● grep ● cut ● sort ● sed7.3.2009 34/40
  35. 35. grep ● Vyhľadáva v súboroch, alebo zo stdin$ grep users /etc/groupusers:x:100:dusko,michal,martickavboxusers:x:1001:michalmichal@axserver:~$ ps ­ef | grep apacheroot      2445     1  0 Feb28 ?     /usr/sbin/apache2 ­k startmichal    2905  2891  0 11:57 pts/0 grep apachewww­data 21638  2445  0 Mar01 ?     /usr/sbin/apache2 ­k startwww­data 25639  2445  0 Mar02 ?     /usr/sbin/apache2 ­k startmichal@axserver:~$ ps ­ef | grep apache | wc      4      39     2857.3.2009 35/40
  36. 36. cut$ ls ­la | cut ­c 35­502009­03­07 12:082009­03­07 10:392009­03­07 12:062009­03­07 12:06$ ls ­la | cut  ­d" " ­f 12,1312:06 a12:06 b12:06 c12:08 d12:08 e12:08 f12:08 g7.3.2009 36/40
  37. 37. sort ● Zoradenie podľa michal@doma:~/testdir$ ls |  sort ­r rôznych kriterií g f e ● -r reverse d c ● -R random b a michal@doma:~/testdir$ ls |  ● -u iba unikátne sort ­R g e b d c f a7.3.2009 37/40
  38. 38. sort$ ls ­la | cut ­c 35­502009­03­07 12:082009­03­07 10:392009­03­07 12:062009­03­07 12:062009­03­07 12:062009­03­07 12:082009­03­07 12:082009­03­07 12:082009­03­07 12:08$ ls ­la | cut ­c 35­50 | sort ­u2009­03­07 10:392009­03­07 12:062009­03­07 12:087.3.2009 38/40
  39. 39. sed ● Stream editor ● Regulárne výrazy$ echo Windows je dominantny OS a Balmer je stastny | sed s/Windows/Linux/s/stastny/nestastny/Linux je dominantny OS a Balmer je nestastny7.3.2009 39/40
  40. 40. Zhrnutie ● Presmerovanie ● Operátory >, >>, &>, &>>, |&, | ● File deskriptory >&, <>, <&-, >&- ● exec ● Filtre grep, cut, sort, sed7.3.2009 40/40
  41. 41. Ďakujem za pozornosť Na prípadné otázky rád odpoviem michal6103 [at] gmail [dot] com7.3.2009 41/40
  42. 42. LinuxFest podporujú
  43. 43. Referenciehttp://tldp.org/LDP/abs/html/io-redirection.html
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×