HEXDUMP(1) | Polecenia użytkownika | HEXDUMP(1) |
NAZWA¶
hexdump - zrzuca zawartość pliku szesnastkowo, dziesiętnie, ósemkowo lub w ascii
SKŁADNIA¶
hexdump opcje plik ...
hd opcje plik ...
OPIS¶
Narzędzie hexdump jest filtrem, który wyświetla podane pliki - lub standardowe wejście, jeśli nie podano plików - używając do tego celu podanego przez użytkownika formatu.
OPCJE¶
Poniżej, po argumentach rozmiar i przesunięcie mogą występować przyrostki binarne (2^N): KiB (=1024), MiB (=1024*1024) i tak dalej dla GiB, TiB, PiB, EiB, ZiB oraz YiB (część "iB" jest opcjonalna, na przykład "K" ma to samo znaczenie, co "KiB") lub dziesiętne (10^N): KB (=1000), MB (=1000*1000) i podobnie dla GB, TB, PB, EB, ZB oraz YB.
-b, --one-byte-octal
-X, --one-byte-hex
-c, --one-byte-char
-C, --canonical
-d, --two-bytes-decimal
-e, --format łańcuch-formatu
-f, --format-file plik
-L, --color[=kiedy]
-n, --length długość
-o, --two-bytes-octal
-s, --skip przesunięcie
-v, --no-squeezing
-x, --two-bytes-hex
-h, --help
-V, --version
Dla każdego pliku wejściowego hexdump kopiuje sekwencyjnie dane wejściowe na standardowe wyjście, przekształcając dane według łańcuchów formatujących, podanych w opcjach -e i -f, w kolejności, w jakiej były podane.
FORMATY¶
Łańcuch formatujący składa się z dowolnej ilości jednostek formatujących, oddzielonych białą spacją. Jednostka formatująca składa się z maksymalnie trzech elementów: licznika iteracji, licznika bajtów i formatu.
Licznik iteracji jest opcjonalną dodatnią liczbą całkowitą, której wartość domyślna to jeden. Każdy format jest załączany tyle razy, ile wskazano w liczniku iteracji.
Licznik bajtów jest opcjonalną dodatnią liczbą całkowitą. Jeśli zostanie podana, to definiuje liczbę bajtów, które należy zinterpretować w każdej iteracji formatu.
Jeśli podano licznik iteracji i/lub bajtów, to po liczniku iteracji i/lub przed licznikiem bajtów trzeba umieścić ukośnik, aby móc je rozróżnić. Białe spacje przed i za ukośnikiem są ignorowane.
Format jest częścią wymaganą i musi być ujęty w podwójne cudzysłowy (" "). Jest on interpretowany jak łańcuch formatujący fprintf (zob. fprintf(3)), lecz z następującymi wyjątkami:
1.
2.
3.
4.
NULL | \0 |
<alarm> | \a |
<backspace> | \b |
<wysuw-strony> | \f |
<nowy-wiersz> | \n |
<powrót-karetki> | \r |
<tabulator> | \t |
<tabulator-pionowy> | \v |
Łańcuchy konwersji¶
Polecenie hexdump obsługuje również następujące dodatkowe łańcuchy konwersji:
_a[dox]
_A[dox]
_c
_p
_u
000 nul | 001 soh | 002 stx | 003 etx | 004 eot | 005 enq |
006 ack | 007 bel | 008 bs | 009 ht | 00A lf | 00B vt |
00C ff | 00D cr | 00E so | 00F si | 010 dle | 011 dc1 |
012 dc2 | 013 dc3 | 014 dc4 | 015 nak | 016 syn | 017 etb |
018 can | 019 em | 01A sub | 01B esc | 01C fs | 01D gs |
01E rs | 01F us | 0FF del |
Kolory¶
Gdy umieści się je na końcu łańcucha formatu, hexdump podświetla odpowiedni łańcuch zadanym kolorem. Warunki, jeśli są obecne, są sprawdzane przed podświetlaniem.
_L[jednostka_koloru_1,jednostka_koloru_2,...,jednostka_koloru_n]
Pełna definicja jednostki koloru jest następująca:
[!]KOLOR[:WARTOŚĆ][@PRZESUNIĘCIA_POCZĄTEK[-KONIEC]]
!
KOLOR
WARTOŚĆ
PRZESUNIĘCIE
Liczniki¶
Domyślne i obsługiwane liczniki bajtów dla znaków konwersji są następujące:
%_c, %_p, %_u, %c
%d, %i, %o, %u, %X, %x
%E, %e, %f, %G, %g
Ilość danych, interpretowanych przez każdy łańcuch formatujący jest sumą danych wymaganych przez każdą jednostką formatującą, która jest obliczana jako iteracja razy licznik bajtów; albo iteracja razy licznik bajtów wymaganych przez format, jeśli nie podano licznika bajtów.
Wejście jest obsługiwane w blokach, gdzie blok jest zdefiniowany jako największa porcja danych, podanych przez dowolny z łańcuchów formatujących. Łańcuchy formatujące, które interpretują mniej danych niż zawartych jest w bloku wejściowym, w którym ostatnia jednostka formatująca interpretuje pewną liczbę bajtów i nie ma ustawionego określonego licznika iteracji, mają zwiększany licznik iteracji, aż cały blok nie zostanie przetworzony, lub aż zabraknie danych do zadowolenia łańcucha formatującego.
Jeśli w wyniku określenia przez użytkownika, lub modyfikacji licznika iteracji przez hexdump, licznik iteracji jest większy niż jeden, to podczas ostatniej iteracji nie są wyświetlane końcowe białe spacje.
Błędem jest podawanie licznika bajtów razem z wieloma znakami/łańcuchami konwersji, chyba że wszystkie, poza jednym znakiem/łańcuchem konwersji, to _a lub _A.
Jeśli w wyniku podania opcji -n lub osiągnięcia końca pliku, dane wejściowe zadowolą łańcuch formatujący tylko częściowo, blok wejściowy jest wypełniony zerami, wystarczająco aby wyświetlić wszystkie dostępne dane (tj. wszystkie jednostki formatujące, zachodzące za koniec danych będą wyświetlały jakąś liczbę bajtów zerowych).
Dalsze wyjście takich łańcuchów formatujących jest zamieniane odpowiadającą liczbą spacji. Odpowiadająca liczba spacji jest zdefiniowana jako liczba wyjścia spacji przez znak konwersji s z tym samym polem i precyzją co oryginalny znak konwersji, lub napis konwersji, lecz z usuniętymi wszelkimi znakami flag "+", " ", "*#"' i wskazującym na łańcuch NULL.
Jeśli nie poda się łańcucha formatującego, domyślne wyświetlanie jest bardzo zbliżone do formatu wyjściowego -x (opcja -x powoduje, że pomiędzy jednostkami formatu jest więcej miejsca, niż w domyślnym wyjściu).
STATUS ZAKOŃCZENIA¶
hexdump wychodzi z 0 przy powodzeniu i z > 0 jeśli wystąpił błąd.
ZGODNE Z¶
Polecenie hexdump powinno być zgodne z IEEE Std 1003.2 ("POSIX.2").
PRZYKŁADY¶
Wyświetla wejście w przestudiowanym formacie:
"%06.6_ao " 12/1 "%3_u "
"\t" "%_p "
"\n"
Implementuje opcję -x:
"%07.7_Ax\n"
"%07.7_ax " 8/2 "%04x " "\n"
Przykład sygnatury rozruchu MBR: Podświetla adresy na błękitno, a bajty w przesunięciach 510 i 511 na zielono, jeśli ich wartość to 0xAA55 lub na czerwono w innym przypadku.
"%07.7_Ax_L[cyan]\n"
"%07.7_ax_L[cyan] " 8/2 " %04x_L[green:0xAA55@510-511,!red:0xAA55@510-511] " "\n"
KOLORY¶
Kolorowanie wyjściowe zaimplementowano poprzez terminal-colors.d(5). Jawne kolorowanie można wyłączyć za pomocą pustego pliku
/etc/terminal-colors.d/hexdump.disable
dla polecenia hexdump albo dla wszystkich narzędzi plikiem
/etc/terminal-colors.d/disable
Since version 2.41, the $NO_COLOR environment variable is also supported to disable output colorization unless explicitly enabled by a command-line option.
Globalne ustawienie przesłonią $XDG_CONFIG_HOME/terminal-colors.d lub $HOME/.config/terminal-colors.d danego użytkownika.
Proszę zauważyć, że kolorowanie wyjścia może być domyślnie włączone i wówczas katalogi terminal-colors.d mogą jeszcze nie istnieć.
ZGŁASZANIE BŁĘDÓW¶
Problemy należy zgłaszać w systemie śledzenia błędów <https://github.com/util-linux/util-linux/issues>.
DOSTĘPNOŚĆ¶
Polecenie hexdump jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux <https://www.kernel.org/pub/linux/utils/util-linux/>.
2025-04-02 | util-linux 2.41 |