Antworten:
hd
ist ein Synonym für hexdump -C
auf FreeBSD und auf einigen Linux - Distributionen. hexdump
ist aus den BSD-Tagen ; od
ist von Anfang an . Nur od
ist von POSIX standardisiert . In der Begründung zu Single UNIX wird erläutert, warum od
gegenüber hd
oder bevorzugt wurde xd
.
Diese Befehle führen sehr ähnliche Aktionen aus: Anzeigen einer Textdarstellung einer Binärdatei in Oktal-, Dezimal- oder Hexadezimalschreibweise. Es gibt keinen grundlegenden Unterschied zwischen den beiden.
Sie haben viele Optionen zur Steuerung des Ausgabeformats, und einige Formate können nur mit dem einen oder anderen Befehl erreicht werden. Um einen Blick auf die Inhalte einer Binärdatei zu werfen, gefällt mir hd
das Ausgabeformat mit einer Spalte auf der rechten Seite, in der druckbare Zeichen buchstäblich angezeigt werden. od
kann das nicht.
$ od /bin/sh | head -n 2 # od default: octal, 2-byte words
0000000 042577 043114 000402 000001 000000 000000 000000 000000
0000020 000002 000076 000001 000000 170020 000101 000000 000000
$ od -Ax -t x1 /bin/sh | head -n 2 # od showing bytes in hexadecimal
000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
000010 02 00 3e 00 01 00 00 00 10 f0 41 00 00 00 00 00
$ hd /bin/sh | head -n 2 # hd default output: nice
00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 02 00 3e 00 01 00 00 00 10 f0 41 00 00 00 00 00 |..>.......A.....|
042577
18 Bits dh 9/4 Bytes?
123
wird eine Zahl in Basis 10 (dezimal) dargestellt, während dies 0123
bedeutet, dass die Zahl in Basis 8 (oktal) dargestellt wird, dh 0123
83 ist. 0x123
Dies wäre in Basis 16 (hexadezimal), dh 291. Dies ist unabhängig vom od
Ausgabeformat.
Tatsächlich od
können beide hex Anzeige / Okt / dec und druckbare Zeichen:
$ od -Ax -tx1z /bin/sh | head -n2
000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 >.ELF............<
000010 03 00 3e 00 01 00 00 00 32 4e 00 00 00 00 00 00 >..>.....2N......<
Der Hauptunterschied ist wohl nur historisch. Einige Versionen hd
können auch Farben ausgeben.
od
unterstützt das z
Suffix in-tx1z
hd
. Trotzdem nützlich, danke :)
xxd
! : D