Umgang mit der Shell: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 15: Zeile 15:
 
*[[expand]]
 
*[[expand]]
 
*[[fmt]]
 
*[[fmt]]
==join(lpi)==
+
*[[join]]
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)==
 
==nl(lpi)==

Version vom 10. November 2022, 13:20 Uhr

Einfache Shellsonderzeichen

Bash Pipe

Eingabe/Ausgabe

Nacheinander auszuführende Kommandos

Jokerzeichen in der Shell

Datenstrom Programme

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

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

root@zero:~# sort -t: -k 3,5 -n /etc/passwd