orm@doc-tcpip.org

Erstellt: Dezember 1998 - Letzte Modifikation: Dezember 2007

[ Main | Local ]


Ein Sammlung nützlicher Unix-Kommandos


Das sort-Kommando

sort -u ordnet den Zeilenanfang nach dem Alphabet. Doppelte Linien fliegen raus.
sort -t: +1 -2 -n +2 -1
Mit Schalter -t wird der Doppelpunkt als Feldseperator gesetzt. Geordnet wird nach dem 2. Feld (die Seperatoren zählen hier mit).

 
10  :     29   :     rmt9
23  :     56   :     rmt3
12  :     24   :     rmt5
 
12  :     24   :     rmt5
10  :     29   :     rmt9
23  :     56   :     rmt3
+n.c ==> Feld.Zeichen Format
-b Blanks nicht beachten
Beispiel:
 
12        24         rmt5
23        56         rmt3
10        29         rmt9
sort -b +2.3 mein_file
Ordnet nach dem 4. Zeichen im 2. Feld (man fängt immer bei 0 mit dem Zählen an!). Das Ergebnis:
 
23        56         rmt3
12        24         rmt5
10        29         rmt9

Das od-Kommando

Mit diesem Kommando kann man Binärdateien wissenswertes entlocken. Es dient auch zur Konversion der verschiedenen Charakterformate. Einige Beipiele:
od -x File - zeigt den Inhalt eines beliebigen Files in Hex.
od File - zeigt den Inhalt eines beliebigen Files in Oktal.
od -c File - zeigt den Inhalt eines beliebigen Files in ASCII Zeichen.

Den Inhalt eines Verzeichnisses kann man sich z.B. so ansehen: od -c ..

Nutzt man das Flag -c, so zeigt od die Files als 16 Byte plus einem Bytecount in Oktal (0, 20, 40 also in Dezimal 0, 16, 32). Alle ASCII Zeichen werden direkt angezeigt, sowie Steuerzeichen wie \n für Newline, \t für tab und \0 für NUL. Alle restlichen Zeichen werden als oktale Nummern angegeben und man kann sie in Tabellen nachschlagen (cat -v schreibt hier M-X).

Man kann die Flags kombinieren, so liefert z.B. od -cx file ein Listing, indem Hex-Nummern und ASCII Zeichen auftauchen.

Das cat-Kommando

Auch mit dem cat-Kommando kann man sich binäre Files ansehen, und zwar mit dem Flag -v. Man braucht dazu eine ASCII-Tabelle. Das Kommando versucht, jedes Byte der Datei mit einem druckbaren Zeichen darzustellen; das ist natürlich nicht immer sinnvoll.

ASCII 0 ist wird z.B. als ^@ (NUL) dargestellt, ^? ist DEL, das ist ASCII 177 Oktal. Alle Zeichen ausserhalb der ASCII Tabelle (Metacharacters) haben das hohe Bit gesetzt und man muß rechnen: M-a bedeutet, daß man zum ASCII Wert von "a" die Zahl 200 oktal zu addieren hat: "a" ist 141 oktal, plus 200 oktal ergibt sich das Zeichen 341 oktal, das man dann in der erweiterten ASCII Tabelle finden kann.

Praktisch ist folgendes Kommando zum Auslesen des Inhaltes eines Verzeichnisses: cat -v . | fold -62.

Das cp-Kommando

Weil ich es immer vergesse:

-h Kopiert symbolische Links (zumindest unter AIX)
-p Erhält den Timestamp, UID/GID sowie S_SUID und S_SGID

Rekursiv, also alle Unterverziechnisse werden bearbeitet:

-R behandelt spezielle Files (char, block, devices) korrekt
-r behandelt spezielle Files (char, block, devices) wie normale Files

Das fold-Kommando

Damit kann man ein File nach einer bestimmten Anzahl von Bytes, Zeichen oder Spalten umbrechen.

-b zählt in Bytes
-s bricht beim letzten Leerzeichen innerhalb der Weite um
-w die Weite der Zeile, die maximal möglich ist (standard ist 80)

Dieses Kommando ist praktisch, wenn man mit einem alten Monitor arbeitet, der eine feste Anzahl Zeichen darstellt. Aufruf wäre dann fold -w 72 mein_file.

Das paste-Kommando

Funktioniert so wie das cat-Kommando, nur das die Eingabe-Files als Spalten des zukünftigen Files betrachtet werden. Man kann den Seperator wählen (Schalter -d), normalerweise ist es ein TAB. Dabei kann man mehrere Seperatoren angeben, und diese werden abwechselnd gesetzt. Am besten ein Beispiel:

Drei Files werden zusammengefügt:

0:root@elazul:/tmp # cat farbe
rot
blau
gelb
0:root@elazul:/tmp # cat maschine
rdose
jupiter
obelix
0:root@elazul:/tmp # cat domain
example.com
seppel.org
subi.net
0:root@elazul:/tmp # paste -d"@." farbe maschine domain
rot@rdose.example.com
blau@jupiter.seppel.org
gelb@obelix.subi.net

Man beachte die inovative Benutzung des -d Schalters...

Das units-Kommando

Konvertiert viele Einheiten. Kennt englische/amerikanische Einheiten. Ist Interaktiv. Die bekannten Units liegen in /usr/share/lib/unittab und kann vom User erweitert werden.


[ Main | Local ]

[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | SMTP | Tracing | GPS ]

Copyright 2001-2014 by Orm Hager - Es gilt die GPL
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )