Umgang mit der Shell: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(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

Aktuelle Version vom 18. März 2025, 13:42 Uhr

Eingabe/Ausgabe

Bash Pipe

Datenstrom Programme

Sollte man kennen

Sonderzeichen

Nacheinander auszuführende Kommandos

Jokerzeichen in der Shell

Übungen