Das Unix-Kommando od
dient zur Erstellung eines Dumps in verschiedenen für Menschen lesbaren Formaten. Der Name leitet sich aus dem Akronym „octal dump“ ab, da der Befehl per Default die Daten im Oktalsystem ausgibt.
Neben dem oktalen gibt od
Daten optional unter anderem auch im hexadezimalen und dezimalen Zahlensystem sowie in ASCII aus.
Beispiele
Ausführbare Dateien
od
hilft bei der Visualisierung von Daten mit nicht menschlich-lesbaren Format wie z. B. die ausführbaren Dateien eines Programms.
Der Dump einer solchen ausführbaren Datei produziert für gewöhnlich einen sehr langen Output. Die Weiterleitung der ursprünglichen Ausgabe mit der Unix-Pipeline |
in den head
-Befehl bietet sich daher an. Dieser gibt nur die ersten Zeilen der oktalen Darstellung des Hello-world-Programms hello
aus:
% od hello | head
0000000 042577 043114 000401 000001 000000 000000 000000 000000
0000020 000002 000003 000001 000000 101400 004004 000064 000000
0000040 003610 000000 000000 000000 000064 000040 000006 000050
0000060 000033 000030 000006 000000 000064 000000 100064 004004
0000100 100064 004004 000300 000000 000300 000000 000005 000000
0000120 000004 000000 000003 000000 000364 000000 100364 004004
0000140 100364 004004 000023 000000 000023 000000 000004 000000
0000160 000001 000000 000001 000000 000000 000000 100000 004004
0000200 100000 004004 002121 000000 002121 000000 000005 000000
0000220 010000 000000 000001 000000 002124 000000 112124 004004
Zeichenketten
Der od
-Befehl erleichtert die Untersuchung von Zeichenketten mit unsichtbaren Zeichen wie unabsichtlich ausgegebenen Steuerungstasten (^) in der Kommandozeile. Letzteres ist ein häufiger Leichtsinnsfehler durch die bei der grafischen Benutzeroberfläche gewohnten Tastenkombinationen Strg+C und Strg+V für Kopieren und Einfügen.
Im Beispiel gibt der echo
-Befehl die Zeichenkette „Hallo“, einen Tab (Strg+V und Strg+I) und ein Steuerzeichen mit anschließendem Zeichen „C“ (Strg+V und Strg+C) aus. Die Unix-Pipeline leitet schließlich das Ergebnis in den od
-Befehl weiter:
% echo "Hallo ^C" | od -cb
0000000 H e l l o \t 003 \n
110 145 154 154 157 011 003 012
0000010
Die Optionen b
und c
aktivieren dabei das Auslesen und die Ausgabe für die oktale Schreibweise inklusive der Steuerzeichen pro Zeichen.
Geschichte
od
ist eines der frühesten Unix-Programme von Version 1 AT&T Unix und Teil des POSIX-Standards. Linux-Systeme stellten od
für gewöhnlich durch die GNU Core Utilities bereit.
Seine Anfänge datieren vor der Einführung der Bourne-Shell, weswegen sein Gebrauch Inkonsistenzen mit der Syntax von do
-Loops verursacht. Schleifen und logische Einheiten öffnen für gewöhnlich mit Namen und schließen mit umgekehrten Namen ab, z. B.: if ... fi
und case ... esac
. Der Gebrauch von od
erfordert jedoch die Verwendung der Syntax do ... done
.
Siehe auch
Weblinks
od(3)
– Open Group Base Specification- Manpage der GNU Core Utilities für od