.TH XXD 1 "SierpieÅ„ 1996" "Strona podrÄ™cznika dla xxd" .\" .\" 21st May 1996 .\" Man page author: .\" Tony Nugent <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au> .\" Changes by Bram Moolenaar <Bram@vim.org> .SH NAZWA .I xxd \- zrzut pliku do hex lub odwrotnie .SH SYNOPSIS .B xxd \-h[elp] .br .B xxd [opcje] [plik_we [plik_wy]] .br .B xxd \-r[evert] [opcje] [plik_we [plik_wy]] .SH OPIS .I xxd tworzy zrzut heksowy podanego pliku lub standardowego wejÅ›cia. Może także przetworzyć zrzut heksowy z powrotem do oryginalnej, binarnej formy. Podobnie jak .BR uuencode (1) i .BR uudecode (1) pozwala na przekazanie danych binarnych w bezpiecznej w poczcie formie ASCII, ale ma zalety dekodowania na standardowe wyjÅ›cie. Ponadto można go użyć do binarnego Å‚atania plików. .SH OPCJE JeÅ›li nie podano .I plik_we xxd czyta ze standardowego wejÅ›cia. JeÅ›li okreÅ›lono .I plik_we jako znak .RB \` \- ' wtedy dane wejÅ›ciowe czytane sÄ… ze standardowego wejÅ›cia. JeÅ›li nie podano .I plik_wy (lub podano jako .RB \` \- ' ), wyniki sÄ… wysyÅ‚ane na standardowe wyjÅ›cie. .PP PamiÄ™taj, że użyty zostaÅ‚ "leniwy" parser, który nie sprawdza wiÄ™cej niż pierwszej litery opcji (o ile ta nie zostaÅ‚a obdarzona parametrem). Spacje miÄ™dzy jedno literowymi opcjami i ich parametrami sÄ… opcjonalne. Parametry opcji mogÄ… być okreÅ›lone w notacji dziesiÄ™tnej, heksadecymalej lub oktalnej. StÄ…d .BR \-c8 , .BR "\-c 8" , .B \-c 010 i .B \-cols 8 sÄ… sobie równoważne. .PP .TP .IR \-a " | " \-autoskip przeÅ‚Ä…cza autoskip: pojedyncza '*' zastÄ™puje linie nul. DomyÅ›lnie wyÅ‚Ä…czone. .TP .IR \-b " | " \-bits PrzeÅ‚Ä…cza do zrzutu bitowego (cyfr binarnych) zamiast heksowego. Opcja ta zapisuje oktety jako osiem cyfr 1 lub 0 zamiast normalnego zrzutu heksowego. Każda linia jest poprzedzona przez heksadecymalny numer linii a po nim jego reprezentacjÄ… w ascii (lub ebcdic). Opcje linii poleceÅ„ \-r, \-p, \-i nie dziaÅ‚ajÄ… w tym trybie. .TP .IR "\-c cols " | " \-cols cols" formatuje liczbÄ™ .RI < cols > oktetów na wiersz. DomyÅ›lnie 16 (\-i: 12, \-ps: 30, \-b: 6). Maks. 256. .TP .IR \-E " | "\-EBCDIC zmienia kodowanie znaków w prawej kolumnie z ASCII na EBCDIC. Nie zmienia prezentacji heksadecymalej. Opcja nie dziaÅ‚a w poÅ‚Ä…czeniu z \-r, \-p lub \-i. .TP .IR "\-g bajtów " | " \-groupsize bajtów" oddziela wyjÅ›cie każdych .RI < bajtów > bajtów (dwa heksowe znaki lub osiem cyfr binarnych każde) przez biaÅ‚y znak. OkreÅ›l .I \-g 0 by wyÅ‚Ä…czyć grupowanie. .RI < Bajtów "> domyÅ›lnie jest " 2 w trybie normalnym i \fI1\fP w trybie bitów. Grupowanie nie dziaÅ‚a w trybie postscriptu lub wÅ‚Ä…czania. .TP .IR \-h " | " \-help wypisuje podsumowanie dostÄ™pnych poleceÅ„ i koÅ„czy dziaÅ‚anie. Nie zostaje przeprowadzony żaden zrzut. .TP .IR \-i " | " \-include wyjÅ›cie w stylu wÅ‚Ä…czania pliku w C. Zostaje zapisana kompletna statyczna tablica definicji (nazwana wedÅ‚ug pliku wejÅ›cia), o ile xxd nie czyta ze standardowego wejÅ›cia. .TP .IR "\-l len " | "\-len len" zakoÅ„cz po wypisaniu .RI < len > oktetów. .TP .IR \-p " | " \-ps " | " \-postscript " | " \-plain wyjÅ›cie w postcriptowym ciÄ…gÅ‚ym stylu zrzutu heksowego. Znany także jako zwykÅ‚y zrzut heksowy. .TP .IR \-r " | " \-revert odwróć operacjÄ™: przekonwertuj (lub zaÅ‚ataj) zrzut heksowy w binarkÄ™. JeÅ›li nie zapisuje na standardowe wyjÅ›cie, xxd zapisze plik wyjÅ›ciowy bez obcinania go. Użyj kombinacji .I \-r \-p by odczytać zwykÅ‚y zrzut heksadecymalny bez numerów linii i okreÅ›lonego ukÅ‚adu kolumn. Dodatkowe biaÅ‚e znaki i Å‚amanie wierszy sÄ… wszÄ™dzie dozwolone. .TP .I \-seek offset Kiedy użyty po .IR \-r : odwraca z .RI < offset > dodanym do pozycji w pliku odnalezionym w zrzucie heksowym. .TP .I \-s [+][\-]seek zaczyna na .RI < seek > bajtów bezwglÄ™dnego (lub wzglÄ™dnego) offsetu pliku wejÅ›ciowego. \fI+ \fRwskazuje, że seek jest wzglÄ™dne do bieżącej pozycji pliku (bez znaczenia jeÅ›li nie wczytuje ze standardowego wejÅ›cia). \fI\- \fRwskazuje że seek powinno być o tyle znaków od koÅ„ca wejÅ›cia (lub jeÅ›li poÅ‚Ä…czone z \fI+\fR: przed bieżącÄ… pozycjÄ… pliku na standardowym wejÅ›ciu). Bez opcji \-s xxd zaczyna od bieżącej pozycji w pliku. .TP .I \-u użyj wielkich liter w znakach heksowych. DomyÅ›lnie sÄ… maÅ‚e znaki. .TP .IR \-v " | " \-version pokazuje wersjÄ™ programu. .SH OSTRZEÅ»ENIA .PP .I xxd \-r potrafi okreÅ›lić numery linii. JeÅ›li plik wyjÅ›cia jest możliwy do przeszukania wtedy numery linii na poczÄ…tku wiersza zrzutu heksowego mogÄ… być nie po kolei, może brakować wierszy lub nakÅ‚adać siÄ™ na siebie. W takich wypadkach xxd użyje lseek(2) by znaleźć nastÄ™pnÄ… pozycjÄ™. JeÅ›li plik wyjÅ›ciowy nie jest możliwy do przeszukania możliwe sÄ… tylko przerwy, które zostanÄ… wypeÅ‚nione bajtami null. .PP .I xxd \-r nigdy nie podaje bÅ‚Ä™dów analizy. Åšmieci sÄ… po cichu ignorowane. .PP W czasie edycji zrzutów heksowych, proszÄ™ zauważyć że .I xxd \-r pomija wszystko w linii wejÅ›cia po odczytaniu wystarczajÄ…cej iloÅ›ci kolumn danych heksadecymalnych (zobacz opcjÄ™ \-c). Oznacza to także, że zmiany w drukowanych kolumnach ascii (lub ebcdic) sÄ… zawsze ignorowane. Odwrócenie zwykÅ‚ego (lub postscriptowego) stylu zrzutu poprzez xxd \-r \-p nie zależy od kolejnoÅ›ci kolumn. Tutaj cokolwiek co wyglÄ…da jak para znaków heks jest interpretowane. .PP Zauważ różnicÄ™ miÄ™dzy .br \fI% xxd \-i plik\fR .br i .br \fI% xxd \-i < plik\fR .PP .I xxd \-s \+seek może być różne od .IR "xxd \-s seek" , ponieważ lseek(2) jest użyty do "przewiniÄ™cie" wejÅ›cia. '+' stanowi różnicÄ™ jeÅ›li źródÅ‚em wejÅ›cia jest standardowe wejÅ›cie i jeÅ›li pozycja w pliku ze standardowego wejÅ›cia nie jest poczÄ…tkiem pliku w chwili uruchomienia xxd. NastÄ™pujÄ…ce przykÅ‚ady mogÄ… wyjaÅ›nić (lub bardziej zmylić!)... .PP PrzewiÅ„ standardowe wejÅ›cie przed przeczytaniem; potrzebne ponieważ `cat' już odczytaÅ‚ do koÅ„ca standardowego wejÅ›cia. .br \fI% sh \-c 'cat > zwykÅ‚a_kopia; xxd \-s 0 > hex_kopia' < plik\fR .PP Zrzut heksowy od pozycji pliku 0x480 (=1024+128) w przód. Znak `+' oznacza "wzglÄ™dny wobec bieżącej pozycji", stÄ…d `128' dodaje do 1k gdzie zakoÅ„czyÅ‚ dd. .br \fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet' < file\fR .PP Zrzut heksowy od pozycji pliku 0x100 ( = 1024\-768) dalej. .br \fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +-768 > hex_snippet' < file\fR .PP Jakkolwiek, jest to rzadka sytuacja i użycie `+' jest rzadko potrzebne. Autor woli monitorować dziaÅ‚anie xxd przy pomocy strace(1) lub truss(1) kiedy \-s jest użyte. .SH PRZYKÅADY .PP .br Wypisz wszystko z wyjÄ…tkiem pierwszych trzech linii (heksowe 0x30 bajtów) .B pliku \. .br \fI% xxd \-s 0x30 plik\fR .PP .br Wypisz trzy linie (heksowe 0x30 bajtów) z koÅ„ca .B pliku \. .br \fI% xxd \-s \-0x30 plik\fR .PP .br Wypisz 120 bajtów jako ciÄ…gÅ‚y zrzut heksowy z 20 oktetami na liniÄ™. .br \fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR .br 2e54482058584420312022417567757374203139 .br 39362220224d616e75616c207061676520666f72 .br 20787864220a2e5c220a2e5c222032317374204d .br 617920313939360a2e5c22204d616e2070616765 .br 20617574686f723a0a2e5c2220202020546f6e79 .br 204e7567656e74203c746f6e79407363746e7567 .br .br Zrzut heksowy z pierwszymi 120 bajtami tej strony podrÄ™cznika z 12 oktetami na liniÄ™. .br \fI% xxd \-l 120 \-c 12 xxd.1\fR .br 0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A .br 000000c: 7567 7573 7420 3139 3936 2220 ugust 1996" .br 0000018: 224d 616e 7561 6c20 7061 6765 "Manual page .br 0000024: 2066 6f72 2078 7864 220a 2e5c for xxd"..\\ .br 0000030: 220a 2e5c 2220 3231 7374 204d "..\\" 21st M .br 000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996..\\" .br 0000048: 4d61 6e20 7061 6765 2061 7574 Man page aut .br 0000054: 686f 723a 0a2e 5c22 2020 2020 hor:..\\" .br 0000060: 546f 6e79 204e 7567 656e 7420 Tony Nugent .br 000006c: 3c74 6f6e 7940 7363 746e 7567 <tony@sctnug .PP .br Pokaż tylko datÄ™ z pliku xxd.1 .br \fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR .br 0000036: 3231 7374 204d 6179 2031 3939 36 21st May 1996 .PP .br Kopiuj .B plik_we do .B plik_wy i poprzedź 100 bajtami o wartoÅ›ci 0x00. .br \fI% xxd plik_we | xxd \-r \-s 100 \> plik_wy\fR .br .br PodmieÅ„ datÄ™ w pliku xxd.1 .br \fI% echo '0000037: 3574 68' | xxd \-r \- xxd.1\fR .br \fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR .br 0000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996 .PP .br Utwórz plik o 65537 bajtach, wszystkich równych 0x00, z wyjÄ…tkiem ostatniego, który ma być 'A' (hex 0x41). .br \fI% echo '010000: 41' | xxd \-r \> plik\fR .PP .br Zrzut heksowy tego pliku z autoskipem. .br \fI% xxd \-a \-c 12 plik\fR .br 0000000: 0000 0000 0000 0000 0000 0000 ............ .br * .br 000fffc: 0000 0000 40 ....A .PP Utwórz jedno bajtowy plik zawierajÄ…cy pojednczÄ… literÄ™ 'A'. Liczba po '\-r \-s' dodaje numery linii znalezione w pliku; w efekcie poprzedzajÄ…ce bajty sÄ… ukryte. .br \fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> plik\fR .PP Użyj xxd jako filtra wewnÄ…trz edytora takiego jak .B vim(1) aby uzyskać zrzut heksowy zakresu miÄ™dzy markerami `a' i `z'. .br \fI:'a,'z!xxd\fR .PP Użyj xxd jako filtra wewnÄ…trz edytora takiego jak .B vim(1) by odzyskać binarny zrzut heksowy zakresu pomiÄ™dzy markerami `a' i `z'. .br \fI:'a,'z!xxd \-r\fR .PP Użyj xxd jako filtra wewnÄ…trz edytora takiego jak .B vim(1) by odzyskać jednÄ… liniÄ™ zrzutu heksowego. Przejdź z kursorem na liniÄ™ i wpisz: .br \fI!!xxd \-r\fR .PP Odczytaj pojednycze znaki z portu szeregowego .br \fI% xxd \-c1 < /dev/term/b &\fR .br \fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR .br \fI% echo \-n foo > /dev/term/b\fR .PP .SH "ZWRACANE WARTOÅšCI" Zwracane sÄ… nastÄ™pujÄ…ce wartoÅ›ci bÅ‚Ä™dów: .TP 0 nie znaleziono bÅ‚Ä™dów. .TP \-1 operacja nie jest wspierana ( .I xxd \-r \-i caÅ‚y czas niemożliwa). .TP 1 bÅ‚Ä…d w czasie analizowania opcji. .TP 2 problemy z plikiem wejÅ›ciowym. .TP 3 problemy z plikiem wyjÅ›ciowym. .TP 4,5 żądana pozycja jest nieosiÄ…galna. .SH "ZOBACZ TAKÅ»E" uuencode(1), uudecode(1), patch(1) .br .SH OSTRZEÅ»ENIA Dziwaczność narzÄ™dzi dorównuje dziwacznoÅ›ci mózgu twórcy. Używaj wyÅ‚Ä…cznie na wÅ‚asnÄ… odpowiedzialność. Kopiuj pliki. Analizuj je. StaÅ„ siÄ™ czarodziejem. .br .SH WERSJA Strona podrÄ™cznika opisuje xxd w wersji 1.7 .SH AUTOR .br (c) 1990-1997 by Juergen Weigert .br <jnweiger@informatik.uni-erlangen.de> .LP Kopiuj do woli i podaj moje dane, .br zarabiaj pieniÄ…dze i dziel siÄ™ ze mnÄ…, .br trać pieniÄ…dze i nie miej do mnie pretensji. .PP Strona podrÄ™cznika zapoczÄ…tkowana przez Tony'ego Nugenta .br <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au> .br MaÅ‚e zmiany: Bram Moolenaar. Redakcja: Juergen Weigert. .PP