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ă versiunea ș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:

            \0   NULL
            \a   caracter de alertă(clopoțel)
            \b   retrocedare(backspace)
            \f   salt de pagină
            \n   linie nouă
            \r   retur de cărucior
            \t   tabulator
            \v   tabulator vertical

  Ș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.

            00 nul     08 bs      10 dle     18 can     7F del
            01 soh     09 ht      11 dc1     19 em
            02 stx     0A lf      12 dc2     1A sub
            03 etx     0B vt      13 dc3     1B esc
            04 eot     0C ff      14 dc4     1C fs
            05 enq     0D cr      15 nak     1D gs
            06 ack     0E so      16 syn     1E rs
            07 bel     0F si      17 etb     1F us

  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ă).

Rețineți că formatul implicit și opțiunile -x, -d și -o utilizează unități de format multi-octet care sunt afișate în ordinea nativă a octeților (endianness) a sistemului. Aceasta înseamnă că aceeași intrare poate genera rezultate diferite pe sistemele little-endian (de exemplu, x86, ARM64) și pe cele big-endian (de exemplu, s390x). Pentru o ieșire independentă de ordinea octeților, utilizați formate cu un singur octet, cum ar fi -b, -c, -C sau -X.

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

Începând cu versiunea 2.41, variabila de mediu $NO_COLOR este, de asemenea, acceptată pentru a dezactiva colorarea ieșirii, cu excepția cazului în care este activată explicit printr-o opțiune din linia de comandă.

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

DISPONIBILITATE

Comanda hexdump face parte din pachetul util-linux care poate fi descărcat de la