Scroll to navigation

HEXDUMP(1) Comenzi utilizator HEXDUMP(1)

NUME

hexdump - afișează conținutul fișierului în hexazecimal, zecimal, octal sau ascii

REZUMAT

hexdump opțiuni fișier ...

hd opțiuni fișier ...

DESCRIERE

Instrumentul hexdump este un filtru care afișează fișierele specificate, sau intrarea standard dacă nu sunt specificate fișiere, într-un format specificat de utilizator.

OPȚIUNI

Mai jos, argumentele lungime și decalaj pot fi urmate de sufixele multiplicative KiB (=1024), MiB (=1024*1024), și așa mai departe pentru GiB, TiB, PiB, EiB, ZiB și YiB („iB” este opțional, de exemplu, „K” are aceeași semnificație ca și „KiB”), sau sufixele KB (=1000), MB (=1000*1000) și așa mai departe pentru GB, TB, PB, EB, ZB și YB.

-b, --one-byte-octal

Afișare octală pe un octet. Afișează decalajul de intrare în hexazecimal, urmat de șaisprezece octeți de date de intrare, separate prin spații, pe trei coloane, completate cu zero, în octal, pe linie.

-X, --one-byte-hex

Afișare hexazecimală pe un octet. Afișează decalajul de intrare în hexazecimal, urmat de șaisprezece octeți de date de intrare, separate prin spații, pe trei coloane, completate cu zero, în heazecimal, pe linie.

-c, --one-byte-char

Afișare caractere pe un octet. Afișează decalajul de intrare în hexazecimal, urmat de șaisprezece caractere de date de intrare pe linie, separate prin spații, pe trei coloane și umplute cu spațiu.

-C, --canonical

Afișare canonică hexazecimală+ASCII. Afișează decalajul de intrare în hexazecimal, urmat de șaisprezece octeți hexazecimali, separați prin spații, pe două coloane, urmați de aceiași șaisprezece octeți în format %_p, încadrați între caractere |. Invocarea programului ca hd implică această opțiune.

-d, --two-bytes-decimal

Afișare zecimală pe doi octeți. Afișează decalajul de intrare în hexazecimal, urmat de opt unități de date de intrare de doi octeți, separate prin spații, pe cinci coloane, completate cu zero, în zecimale fără semn, pe linie.

-e, --format format_șir

Specifică un șir de format care să fie utilizat pentru afișarea datelor.

-f, --format-file fișier

Specifică un fișier care conține unul sau mai multe șiruri de format separate prin linii noi. Liniile goale și liniile al căror prim caracter care nu este un spațiu, este un semn diez (#) sunt ignorate.

-L, --color[=când]

Acceptă unitățile de culoare pentru ieșire. Argumentul opțional când poate fi auto, never (niciodată) sau always (întotdeauna). În cazul în care argumentul când este omis, valoarea implicită este auto. Culorile pot fi dezactivate; pentru valoarea implicită încorporată curentă, consultați ieșirea --help. A se vedea, de asemenea, subsecțiunea Culori și secțiunea CULORI de mai jos.

-n, --length lungime

Interpretează numai lungimea de lungimea octeți de intrare.

-o, --two-bytes-octal

Afișare octală pe doi octeți. Afișează decalajul de intrare în hexazecimal, urmat de opt cantități de date de intrare de doi octeți, separate prin spații, pe șase coloane, completate cu zero, în octal, pe linie.

-s, --skip decalaj

Omite decalajul de octeți de la începutul intrării.

-v, --no-squeezing

Opțiunea -v face ca hexdump să afișeze toate datele de intrare. Fără opțiunea -v, orice grup de linii de ieșire care ar fi identic cu grupul de linii de ieșire imediat anterior (cu excepția decalajelor de intrare) este înlocuit cu o linie compusă dintr-un singur asterisc.

-x, --two-bytes-hex

Afișare hexazecimală pe doi octeți. Afișează decalajul de intrare în hexazecimal, urmat de opt cantități de date de intrare de doi octeți, în hexazecimal, separate prin spații, pe patru coloane, completate cu zero, pe linie.

-h, --help

Afișează acest mesaj de ajutor și iese.

-V, --version

Afișează informațiile despre versiune și iese.

Pentru fiecare fișier de intrare, hexdump copiază secvențial datele de intrare la ieșirea standard, transformând datele în conformitate cu șirurile de formate specificate prin opțiunile -e și -f, în ordinea în care au fost specificate.

FORMATE

Un șir de format conține un număr oarecare de unități de format, separate prin spații albe. O unitate de format conține până la trei elemente: un număr de iterații, un număr de octeți și un format.

Numărul de iterații este un număr întreg pozitiv opțional, care are valoarea implicită de unu. Fiecare format se aplică de câte ori se numără numărul de iterații.

Numărul de octeți este un număr întreg pozitiv opțional. Dacă este specificat, acesta definește numărul de octeți care trebuie interpretați de fiecare iterație a formatului.

Dacă se specifică un număr de iterații și/sau un număr de octeți, după numărul de iterații și/sau înainte de numărul de octeți trebuie să se plaseze o singură bară oblică inversată pentru a le distinge între ele. Orice spațiu alb înainte sau după bara oblică inversată este ignorat.

Formatul este obligatoriu și trebuie să fie înconjurat de ghilimele duble (" "). Acesta este interpretat ca un șir de format de tip fprintf (a se vedea fprintf(3)), cu următoarele excepții:

1.

Un asterisc (*) nu poate fi utilizat ca lățime sau precizare a câmpului.

2.

Un număr de octeți sau o precizie de câmp este necesară pentru fiecare caracter de conversie s (spre deosebire de fprintf(3), care afișează întregul șir dacă precizia nu este specificată).

3.

Caracterele de conversie h, l, n, p și q nu sunt acceptate.

4.

Sunt acceptate secvențele de eludare cu un singur caracter descrise în standardul C:
NULL \0
<caracter de alertă(clopoțel)> \a
<retrocedare(backspace)> \b
<salt de pagină> \f
<linie nouă> \n
<retur de cărucior> \r
<tabulator> \t
<tabulator vertical> \v

Șiruri de conversie

Instrumentul hexdump acceptă, de asemenea, următoarele șiruri de conversie suplimentare.

_a[dox]

Afișează poziția de intrare, cumulată în toate fișierele de intrare, a următorului octet care urmează să fie afișat. Caracterele anexate d, o și x specifică baza de afișare ca fiind zecimală, octală, respectiv hexazecimală.

_A[dox]

Aproape identic cu șirul de conversie _a, cu excepția faptului că se efectuează o singură dată, după ce au fost procesate toate datele de intrare.

_c

Afișează caracterele în setul de caractere implicit. Caracterele care nu sunt imprimabile sunt afișate în format octal cu trei caractere, completate cu zero, cu excepția celor care pot fi reprezentate prin notația de eludare standard (a se vedea mai sus), care sunt afișate ca șiruri de două caractere.

_p

Afișează caracterele în setul de caractere implicit. Caracterele care nu sunt imprimabile sunt afișate ca un singur „.”.

_u

Ieșirea caracterelor US ASCII, cu excepția caracterelor de control care sunt afișate folosind următoarele denumiri, cu litere mici. Caracterele mai mari decât 0xff, hexazecimal, sunt afișate ca șiruri hexazecimale.
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

Culori

Atunci când este pus la sfârșitul unui specificator de format, hexdump evidențiază șirul respectiv cu culoarea specificată. Condițiile, dacă sunt prezente, sunt evaluate înainte de evidențiere.

_L[unitate_culoare_1,unitate_culoare_2,...,unitate_culoare_n]

Sintaxa completă a unei unități de culoare este următoarea:

[!]CULOARE[:VALOARE][@POZIȚIA_INIȚIALĂ[-FINALĂ]]

!

Neagă condiția. Vă rugăm să rețineți că are sens să negați o unitate numai dacă sunt specificate atât o valoare/un șir de caractere, cât și un interval. În acest caz, șirul de ieșire respectiv va fi evidențiat dacă și numai dacă valoarea/șirul de caractere nu se potrivește cu cel din interval.

CULOARE

Una dintre cele 8 culori de bază ale shell-ului.

VALOARE

O valoare care urmează să fie comparată, specificată în hexazecimal sau octal sau ca șir de caractere. Vă rugăm să rețineți că secvențele de eludare obișnuite din C nu sunt interpretate de hexdump în cadrul unitate_culoare.

POZIȚIE

O poziție sau un interval de poziții în care se verifică dacă există o potrivire. Vă rugăm să rețineți că POZIȚIA_INIȚIALĂ singură utilizează aceeași valoare ca și POZIȚIA_FINALĂ.

Contorizare

Numerele de octeți implicite și acceptate pentru caracterele de conversie sunt următoarele:

%_c, %_p, %_u, %c

Se numără doar un octet.

%d, %i, %o, %u, %X, %x

Patru octeți în mod implicit, se acceptă un număr de unul, doi și patru octeți.

%E, %e, %f, %G, %g

Opt octeți în mod implicit, se acceptă un număr de patru octeți.

Cantitatea de date interpretată de fiecare șir de format este suma datelor solicitate de fiecare unitate de format, care este egală cu numărul de iterații înmulțit cu numărul de octeți sau cu numărul de iterații înmulțit cu numărul de octeți solicitați de format, în cazul în care numărul de octeți nu este specificat.

Datele de intrare sunt manipulate în blocuri, unde un bloc este definit ca fiind cea mai mare cantitate de date specificată de orice șir de format. Șirurile de format care interpretează mai puțin de un bloc de date de intrare, a căror ultimă unitate de format interpretează un anumit număr de octeți și nu are un număr de iterații specificat, numărul de iterații este mărit până când întregul bloc de intrare este procesat sau până când nu mai există suficiente date în bloc pentru a satisface șirul de format.

În cazul în care, fie ca urmare a specificației utilizatorului, fie ca urmare a modificării de către hexdump a numărului de iterații, așa cum este descris mai sus, numărul de iterații este mai mare de unu, nu se afișează niciun caracter de spațiere la final în timpul ultimei iterații.

Este o eroare să se specifice un număr de octeți, precum și mai multe caractere sau șiruri de caractere de conversie, cu excepția cazului în care toate caracterele sau șirurile de caractere de conversie, cu excepția unuia, sunt _a sau _A.

În cazul în care, ca urmare a specificării opțiunii -n sau a faptului că s-a ajuns la sfârșitul fișierului, datele de intrare satisfac doar parțial un șir de format, blocul de intrare este completat cu zerouri suficient pentru a afișa toate datele disponibile (adică orice unitate de format care se suprapune peste sfârșitul datelor va afișa un anumit număr de octeți zero).

Rezultatele ulterioare ale unor astfel de șiruri de formate sunt înlocuite cu un număr echivalent de spații. Un număr echivalent de spații este definit ca fiind numărul de spații generate de un caracter de conversie s cu aceeași lățime de câmp și precizie ca și caracterul de conversie sau șirul de conversie original, dar fără caracterele de marcare a conversiei „+”, „ ”, „#”, și care face trimitere la un șir NULL.

Dacă nu se specifică șiruri de formate, afișarea implicită este foarte asemănătoare cu formatul de ieșire -x (opțiunea -x face ca între unitățile de format să fie folosit mai mult spațiu decât în ieșirea implicită).

STARE DE IEȘIRE

hexdump iese cu 0 în caz de succes și > 0 dacă a apărut o eroare.

ÎN CONFORMITATE CU

Se așteaptă ca instrumentul hexdump să fie compatibil cu IEEE Std 1003.2 („POSIX.2”).

EXEMPLE

Afișează datele introduse în format de examinare:


"%06.6_ao " 12/1 "%3_u "
"\t" "%_p "
"\n"

Implementarea opțiunii -x:


"%07.7_Ax\n"
"%07.7_ax " 8/2 "%04x " "\n"

Exemplu de semnătură de pornire MBR: Se evidențiază adresele cu cian și octeții de la pozițiile 510 și 511 cu verde dacă valoarea lor este 0xAA55, iar în caz contrar cu roșu.


"%07.7_Ax_L[cyan]\n"
"%07.7_ax_L[cyan] " 8/2 " %04x_L[green:0xAA55@510-511,!red:0xAA55@510-511] " "\n"

CULORI

Colorarea ieșirii este implementată de funcționalitatea terminal-colors.d(5). Colorarea implicită poate fi dezactivată printr-un fișier gol

/etc/terminal-colors.d/hexdump.disable

pentru comanda hexdump sau pentru toate instrumentele (comenzile) prin

/etc/terminal-colors.d/disable

Configurația specifică utilizatorului $XDG_CONFIG_HOME/terminal-colors.d sau $HOME/.config/terminal-colors.d prevalează asupra celei globale.

Rețineți că colorarea ieșirii poate fi activată în mod implicit și, în acest caz, directoarele terminal-colors.d nu trebuie să existe încă.

RAPORTAREA ERORILOR

Pentru rapoarte de eroare, folosiți sistemul de urmărire al erorilor la <https://github.com/util-linux/util-linux/issues>.

DISPONIBILITATE

Comanda hexdump face parte din pachetul util-linux care poate fi descărcat de la Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.

2025-01-14 util-linux 2.40.4