Umgang mit der Shell: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(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, 11:42 Uhr

Eingabe/Ausgabe

Bash Pipe

Datenstrom Programme

Sollte man kennen

Sonderzeichen

Nacheinander auszuführende Kommandos

Jokerzeichen in der Shell

Übungen