|
|
| (14 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| =Einfache Shellsonderzeichen= | | =Eingabe/Ausgabe= |
| *[[Einfache Shellsonderzeichen]] | | |
| | *[[Shell Einausgabe/Ausgabe]] |
| | |
| =Bash Pipe= | | =Bash Pipe= |
| | |
| *[[Bash Pipe]] | | *[[Bash Pipe]] |
| =Eingabe/Ausgabe=
| | |
| *[[Shell Einausgabe/Ausgabe]]
| |
| =Nacheinander auszuführende Kommandos=
| |
| *[[Nacheinander auszuführende Kommandos]]
| |
| =Jokerzeichen in der Shell=
| |
| *[[Jokerzeichen in der Shell]]
| |
| =Datenstrom Programme= | | =Datenstrom Programme= |
| | |
| | ==Sollte man kennen== |
| | *[[Reguläre Ausdrücke#grep|grep]] |
| *[[wc]] | | *[[wc]] |
| *[[tr]] | | *[[tr]] |
| *[[cut]] | | *[[cut]] |
| | *[[sed]] |
| | *[[sort]] |
| | <!-- |
| | ==Braucht man seltener== |
| *[[expand]] | | *[[expand]] |
| *[[fmt]] | | *[[fmt]] |
| ==join(lpi)==
| | *[[join]] |
| Führt die Zeilen zweier sortierter Dateien anhand von '''Übereinstimmungen''' in einem gemeinsamen Feld zusammen.
| | *[[nl]] |
| | *[[od]] |
| | *[[paste]] |
| | *[[pr]] |
| | --> |
| | =Sonderzeichen= |
|
| |
|
| root@zero:~# more name
| | *[[Einfache Shellsonderzeichen]] <--- Matchen von Dateien |
| 1. karl
| | *[[Reguläre Ausdrücke]] <--- Matchen von Strings |
| 2. heinz
| |
| 3. hans
| |
| 4. otto
| |
| root@zero:~# more tel
| |
| 1. 1234
| |
| 2. 4321
| |
| 3. 222
| |
| 4. 121212
| |
| root@zero:~# join name tel > telefonbuch
| |
| root@zero:~# more telefonbuch
| |
| 1. karl 1234
| |
| 2. heinz 4321
| |
| 3. hans 222
| |
| 4. otto 121212
| |
|
| |
|
| root@zero:~# join -t : /etc/passwd /etc/shadow
| | =Nacheinander auszuführende Kommandos= |
| ....
| |
| daemon:x:1:1:daemon:/usr/sbin:/bin/sh:*:14181:0:99999:7:::
| |
| bin:x:2:2:bin:/bin:/bin/sh:*:14181:0:99999:7:::
| |
| sys:x:3:3:sys:/dev:/bin/sh:*:14181:0:99999:7:::
| |
| sync:x:4:65534:sync:/bin:/bin/sync:*:14181:0:99999:7:::
| |
| ...
| |
|
| |
|
| join in dat1 nach Feld 3 und in dat2 nach Feld 2
| | *[[Nacheinander auszuführende Kommandos]] |
| thomas@lydia:~$ cat dat1
| |
| hugo:ps:1111
| |
| erwin:zw:2222
| |
| karl:sb:3333
| |
| rudi:kl:4444
| |
| thomas@lydia:~$ cat dat2
| |
| blau:1111:svn
| |
| grün:2222:fcs
| |
| gelb:3333:fch
| |
| rot:4444:fck
| |
| thomas@lydia:~$ join -t : -1 3 -2 2 dat1 dat2
| |
| 1111:hugo:ps:blau:svn
| |
| 2222:erwin:zw:grün:fcs
| |
| 3333:karl:sb:gelb:fch
| |
| 4444:rudi:kl:rot:fck
| |
|
| |
|
| ==nl(lpi)== | | =Jokerzeichen in der Shell= |
| Nummeriert die Zeilen in einer Datei.
| |
|
| |
|
| root@zero:~# nl /etc/passwd
| | *[[Jokerzeichen in der Shell]] |
| 1 root:x:0:0:root:/root:/bin/bash
| |
| 2 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
| |
| 3 bin:x:2:2:bin:/bin:/bin/sh
| |
| 4 sys:x:3:3:sys:/dev:/bin/sh
| |
| 5 sync:x:4:65534:sync:/bin:/bin/sync
| |
| ...
| |
| Nummereriet mit führenden Nullen der Separatir ist ein :
| |
| root@zero:~# nl -s : -n rz dat1
| |
| | |
| ==od==
| |
| Gibt Dateien im Oktal und anderen Formaten aus.
| |
| | |
| od [Optionen] Datei
| |
| | |
| * -j ''Bytes'': Überspringt die Anzahl ''Bytes'' einer Datei
| |
| * -N ''Bytes'': Gibt nur die Anzahl ''Bytes'' aus
| |
| * -c : Gebe ASCII Zeichen aus
| |
| * -f : Gebe Fließkommazahlen aus
| |
| * -i : Gebe Dezimal Integer aus
| |
| * -l : Gebe Dezimal Long aus
| |
| * -o : Gebe Oktal 2 Byte Einheiten aus
| |
| * -s : Gebe Dezimal 2 Byte Einheiten aus
| |
| * -x : Gebe Hexadezimale 2 Byte einheiten aus
| |
| | |
| Beispiele
| |
| | |
| Gebe Master Boot Record (die ersten 512 Byte der Festplatte /dev/sda) als Hexadezimal aus
| |
| root@zero:~# od '''-x -N''' 512 /dev/sda
| |
| 0000000 48eb 1090 d08e 00bc b8b0 0000 d88e c08e
| |
| 0000020 befb 7c00 00bf b906 0200 a4f3 21ea 0006
| |
| 0000040 be00 07be 0438 0b75 c683 8110 fefe 7507
| |
| 0000060 ebf3 b416 b002 bb01 7c00 80b2 748a 0203
| |
| 0000100 00ff 2000 0001 0000 0200 90fa f690 80c2
| |
| ...
| |
| | |
| Schreibe "suxer" in die Datei test
| |
| root@zero:~# echo "suxer" > test
| |
| Ausgabe Hexadezimal
| |
| root@zero:~# od -x test
| |
| 0000000 7573 6578 0a72
| |
| 0000006
| |
| | |
| Ausgabe ASCII Zeichen
| |
| root@zero:~# od -c test
| |
| 0000000 s u x e r \n
| |
| 0000006
| |
| | |
| ==paste(lpi)==
| |
| Fügt die Zeilen von zwei oder mehr Dateien horizontal zusammen
| |
| root@zero:~# paste name tel
| |
| 1. karl 1. 1234
| |
| 2. heinz 2. 4321
| |
| 3. hans 3. 222
| |
| 4. otto 4. 121212
| |
| | |
| ==pr(lpi)==
| |
| Bereitet Textdateien zum Drucken vor.
| |
| | |
| root@zero:~# echo "Plan für heute" > dokument
| |
| root@zero:~# more dokument
| |
| Plan für heute
| |
| root@zero:~# pr dokument
| |
|
| |
|
| |
| 2009-06-19 12:44 dokument Seite 1
| |
|
| |
| | |
| | |
| Plan für heute
| |
| | |
| Anmerkung Ausmaße der Bildschirmausgabe wie eine Druckseite.
| |
| | |
| =sed=
| |
| *[[sed]]
| |
| | |
| ==sort==
| |
| | |
| Zum sortieren von Dateien nach Feldern benutzt man sort. sort liest von STDIN, man kann die Datei aber auch als Argument übergeben.
| |
| | |
| Sortiert nach dem ersten Feld
| |
| root@zero:~# sort /etc/passwd
| |
| | |
| Es wird geprüft ob die Datei schon sortiert ist
| |
| root@zero:~# sort -c /etc/passwd
| |
| | |
| Sortiert nach dem ersten Feld (Richtungsumkehr)
| |
| root@zero:~# sort -r /etc/passwd
| |
| | |
| Führende Leersortzeichen werden ignoriert
| |
| root@zero:~# sort -b /etc/passwd
| |
| | |
| Ausgabe in die Datei pass
| |
| root@zero:~# sort /etc/passwd -o pass
| |
| | |
| nimmt : als Trenner -Voreinstellung ist TAB
| |
| root@zero:~# sort -t : /etc/passwd
| |
| | |
| sortiert nach dem 3 Feld, der Trenner ist : und es wird nummerisch sortiert
| |
|
| |
| root@zero:~# sort -t: -k 3 -n /etc/passwd
| |
|
| |
|
| Sortiert nach dem 3 bis zum 5 Feld, der Trenner ist : und es wird nummerisch sortiert
| | =Übungen= |
|
| | *[[umgang mit der Shell Übungen]] |
| root@zero:~# sort -t: -k 3,5 -n /etc/passwd
| |