Umgang mit der Shell: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(15 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=
−
==wc==
+
 
 +
==Sollte man kennen==
 +
*[[Reguläre Ausdrücke#grep|grep]]
 
*[[wc]]
 
*[[wc]]
−
==tr==
 
 
*[[tr]]
 
*[[tr]]
−
==cut==
 
 
*[[cut]]
 
*[[cut]]
 +
*[[sed]]
 +
*[[sort]]
 +
<!--
 +
==Braucht man seltener==
 
*[[expand]]
 
*[[expand]]
 +
*[[fmt]]
 +
*[[join]]
 +
*[[nl]]
 +
*[[od]]
 +
*[[paste]]
 +
*[[pr]]
 +
-->
 +
=Sonderzeichen=
  
−
==fmt(lpi)==
+
*[[Einfache Shellsonderzeichen]] <--- Matchen von Dateien
−
#Setzt den Text der Dateien im Blocksatz der angegebenen Breite durch Auffüllen von Zeilen und Entfernen von Zeilenwechseln.
+
*[[Reguläre Ausdrücke]] <--- Matchen von Strings
−
Standardgemäß werden Leerzeilen, die Position von Leerzeichen und der Einzug am Zeilenanfang erhalten. fmt versucht,
 
−
Zeilenumbrüche an Satzenden durchzuführen sowie sie nach dem ersten oder vor dem letzten Wort eines Satzes zu vermeiden.
 
−
 
−
fmt [Optionen] [Dateien]
 
  
−
Optionen
+
=Nacheinander auszuführende Kommandos=
  
−
* -p ''Präfix'': Formatiert nur Zeilen, die mit ''Präfix'' anfangen
+
*[[Nacheinander auszuführende Kommandos]]
−
root@zero:/tmp# fmt -p '#' text
 
−
#Setzt den Text der Dateien im Blocksatz der angegebenen Breite durch
 
−
#Auffüllen von Zeilen und Entfernen von Zeilenwechseln.  Standardgemäß
 
−
#werden Leerzeilen, die Position von Leerzeichen und der Einzug am
 
−
#Zeilenanfang erhalten. fmt versucht,
 
−
Zeilenumbrüche an Satzenden durchzuführen sowie sie nach dem ersten oder vor dem letzten Wort eines Satzes zu vermeiden.
 
  
−
* -u : Erzwingt genau ein Leerzeichen zwischen Wörtern und zwei Leerzeichen zwischen Sätzen
+
=Jokerzeichen in der Shell=
  
−
* -w ''Breite'': Setzt die Ausgabebreite auf ''Breite''
+
*[[Jokerzeichen in der Shell]]
−
root@zero:/tmp# fmt -w 30 text
 
−
#Setzt den Text der Dateien
 
−
im Blocksatz der angegebenen
 
−
Breite durch Auffüllen
 
−
von Zeilen und Entfernen
 
−
von Zeilenwechseln.
 
−
#Standardgemäß werden
 
−
Leerzeilen, die Position von
 
−
Leerzeichen und der Einzug am
 
−
Zeilenanfang erhalten. fmt
 
−
versucht, Zeilenumbrüche
 
−
an Satzenden durchzuführen
 
−
sowie sie nach dem ersten
 
−
oder vor dem letzten Wort
 
−
eines Satzes zu vermeiden.
 
−
 
 
−
==join(lpi)==
 
−
Führt die Zeilen zweier sortierter Dateien anhand von '''Übereinstimmungen''' in einem gemeinsamen Feld zusammen.
 
−
 
 
−
root@zero:~# more name
 
−
1. karl
 
−
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
 
−
....
 
−
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
 
−
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)==
 
−
Nummeriert die Zeilen in einer Datei.
 
−
 
 
−
root@zero:~# nl /etc/passwd                                                 
 
−
    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, 11:42 Uhr

Eingabe/Ausgabe

Bash Pipe

Datenstrom Programme

Sollte man kennen

Sonderzeichen

Nacheinander auszuführende Kommandos

Jokerzeichen in der Shell

Übungen