blob: 624de29debd2d21f478e309b80fc22cab8078ba9 [file] [log] [blame]
Bram Moolenaar899dddf2006-03-26 21:06:50 +00001.TH XXD 1 "Sierpień 1996" "Strona podręcznika dla xxd"
2.\"
3.\" 21st May 1996
4.\" Man page author:
5.\" Tony Nugent <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
6.\" Changes by Bram Moolenaar <Bram@vim.org>
7.SH NAZWA
8.I xxd
9\- zrzut pliku do hex lub odwrotnie
10.SH SYNOPSIS
11.B xxd
12\-h[elp]
13.br
14.B xxd
15[opcje] [plik_we [plik_wy]]
16.br
17.B xxd
18\-r[evert] [opcje] [plik_we [plik_wy]]
19.SH OPIS
20.I xxd
21tworzy zrzut heksowy podanego pliku na standardowe wyjście.
22Może także przetworzyć zrzut heksowy z powrotem do oryginalnej,
23binarnej formy.
24Podobnie jak
25.BR uuencode (1)
26i
27.BR uudecode (1)
28pozwala na przekazanie danych binarnych w bezpiecznej w poczcie formie
29ASCII, ale ma zalety dekodowania na standardowe wyjście.
30Ponadto można go użyć do przeprowadzenia łatania plików binarnych.
31.SH OPCJE
32Jeśli nie podano
33.I plik_we
34xxd czyta ze standardowego wejście.
35Jeśli określono
36.I plik_wy
37jako znak
38.RB \` \- '
39wtedy dane wejściowe czytane są ze standardowego wejścia.
40Jeśli nie podano
41.I plik_wy
42(lub podano jako
43.RB \` \- '
44), wyniki są wysyłane na standardowe wyjście.
45.PP
46Pamiętaj, że użyty został "leniwy" parser, który nie sprawdza więcej
47niż pierwszej litery opcji (o ile ta nie została obdarzona
48parametrem). Spacje między jedno literowymi opcjami i ich parametrami
49są opcjonalne. Parametry opcji mogą być określone w notacji dziesiętnej,
50heksadecymalej lub oktalnej.
51Stąd
52.BR \-c8 ,
53.BR "\-c 8" ,
54.B \-c 010
55i
56.B \-cols 8
57są sobie równoważne.
58.PP
59.TP
60.IR \-a " | " \-autoskip
61przełącza autoskip: pojedyncza '*' zastępuje linie nul. Domyślnie
62wyłączone.
63.TP
64.IR \-b " | " \-bits
65Przełącza do zrzutu bitowego (cyfr binarnych) zamiast heksowego.
66Opcja ta zapisuje oktety ajko osiem cyfr 1 lub 0 zamias normalnego
67zrzutu heksowego. Każda linia jest poprzedzona przez
68heksadecymalny numer linii a za nim jego reprezentacja w ascii (lub
69ebcdic). Opcje linii poleceń \-r, \-p, \-i nie działają w tym
70trybie.
71.TP
72.IR "\-c cols " | " \-cols cols"
73formatuje liczbę
74.RI < cols >
75oktetów na wiersz. Domyślnie 16 (\-i: 12, \-ps: 30, \-b: 6). Maks.
76256.
77.TP
78.IR \-E " | "\-EBCDIC
79zmienia kodowanie znaków w prawej kolumnie z ASCII na EBCDIC.
80Nie zmienia prezentacji heksadecymalej. Opcja nie działa w połączeniu
81z \-r, \-p lub \-i.
82.TP
83.IR "\-g bajtów " | " \-groupsize bajtów"
84oddziela wyjście każdych
85.RI < bajtów >
86bajtów (dwa heksowe znaki lub osiem cyfr binarnych każde) przez biały
87znak.
88Określ
89.I \-g 0
90by wyłączyć grupowanie.
91.RI < Bajtów "> domyślnie jest " 2
92w trybie normalnym i \fI1\fP w trybie bitów.
93Grupowanie nie działa w trybie postscriptu lub włączania.
94.TP
95.IR \-h " | " \-help
96wypisuje podsumowanie dostępnych poleceń i kończy działanie. Nie
97zostaje przeprowadzony żaden zrzut.
98.TP
99.IR \-i " | " \-include
100wyjście w stylu włączania pliku w C. Zostaje zapisana kompletna
101statyczna tablica definicji (nazwana według pliku wejścia), o ile xxd
102nie czyta ze standardowego wejścia.
103.TP
104.IR "\-l len " | "\-len len"
105zakończ po wypisaniu
106.RI < len>
107oktetów.
108.TP
109.IR \-p " | " \-ps " | " \-postscript " | " \-plain
110wyjście w postcriptowym ciągłym stylu zrzutu heksowego. Znany także
111jako zwykły zrzut heksowy.
112.TP
113.IR \-r " | " \-revert
114odwróć operację: przekonwertuj (lub załataj) zrzut heksowy w binarkę.
115Jeśli nie zapisuje na standardowe wyjście, xxd zapisze plik wyjściowy
116bez obcinania go. Użyj kombinacji
117.I \-r \-p
118by odczytać zwykły zrzut heksadecymalny bez numerów linii
119i określonego układu kolumn. Dodatkowe białe znaki i łamanie wierszy
120są dozwolone wszędzie.
121.TP
122.I \-seek offset
123Kiedy użyty po
124.IR \-r :
125odwraca z
126.RI < offset >
127dodanym do pozycji w pliku odnalezionym w zrzucie heksowym.
128.TP
129.I \-s [+][\-]seek
130zaczyna na
131.RI < seek >
132bajtów abs. (lub wzg.) offsecie pliku wejściowego.
133\fI+ fRwskazuje, że seek jest względne do bieżącej pozycji pliku (bez
134znaczenia jeśli nie wczytuje ze standardowego wejścia). \fI\- \fRwskazuje
135że seek powinno być o tyle znaków od końca wejścia (lub jeśli
136połączone z \fI+\fR: przezhd bieżącą pozycją pliku na standardowym
137wejściu).
138Bez opcji \-s xxd zaczyna od bieżącej pozycji w pliku.
139.TP
140.I \-u
141użyj wielkich liter w znakach heksowych. Domyślnie są małe znaki.
142.TP
143.IR \-v " | " \-version
144pokazuje wersję programu.
145.SH OSTRZEŻENIA
146.PP
147.I xxd \-r
148potrafi określić numery linii. Jeśli plik wyjścia jest możliwy do
149przeszukania wtedy numery linii na początku wiersza zrzutu heksowego
150mogą być nie po kolei, może brakować wierszy lub nakładać się na
151siebie. W takich wypadkach xxd użyje lseek(2) by znaleźć następną
152pozycję. Jeśli plik wyjściowy nie jest możliwy do przeszukania możliwe
153są tylko przerwy, które zostaną wypełnione bajtami null.
154.PP
155.I xxd \-r
156nigdy nie podaje błędów analizy. Śmieci są ignorowane.
157.PP
158W czasie edycji zrzutów heksowych, proszę zauważyć że
159.I xxd \-r
160pomija wszystko w linii wejścia po odczytaniu wystarczającej ilości
161kolumn danych heksadecymalnych (zobacz opcję \-c). Oznacza to także,
162że zmiany w drukowanych kolumnach ascii (lub ebcdic) są zawsze
163ignorowane. Odwrócenie zwykłego (lub postscriptowego) stylu zrzutu
164poprzez xxd \-r \-p nie zależy od kolejności kolumn. Tutaj cokolwiej
165co wygląda jak para cyfr heks jest interpretowane.
166.PP
167Zauważ różnicę między
168.br
169\fI% xxd \-i plik\fR
170.br
171i
172.br
173\fI% xxd \-i < plik\fR
174.PP
175.I xxd \-s \+seek
176może być różne od
177.IR "xxd \-s seek" ,
178ponieważ lseek(2) jest użyty do "przewinięcie" wejścia. '+' robi
179różnicę jeśli źródłem wejścia jest standardowe wejście i jeśli pozycja
180w pliku ze standardowego wejścia nie jest początkiem pliku w chwili
181uruchomienia xxd. Następujące przykłady mogą wyjaśnić (lub bardziej
182zmylić!)...
183.PP
184Przewiń standardowe wejście przed przeczytaniem; potrzebne ponieważ
185`cat' już odczytał do końca standardowego wejścia.
186.br
187\fI% sh \-c 'cat > zwykła_kopia; xxd \-s 0 > hex_kopia' < plik
188.PP
189Zrzut heksowy od pozycji pliku 0x480 (=1024+128) w przód.
190Znak `+' oznacza "względny wobec bieżącej pozycji", stąd `128' dodaje
191do 1k gdzie zakończył dd.
192.br
193\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet' < file
194.PP
195Zrzut heksowy od pozycji pliku 0x100 ( = 1024\-768) dalej.
196.br
197\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +-768 > hex_snippet' < file
198.PP
199Jakkolwiek, jest to rzadka sytuacja i użycie `+' jest rzadko
200potrzebne.
201Autor woli monitorować działanie xxd przy pomocy strace(1) lub truss(1) kiedy \-s jest użyte.
202.SH PRZYKŁADY
203.PP
204.br
205Wypisz wszystko z wyjątkiem pierwszych trzech linii (heksowe 0x30 bajtów)
206.B pliku
207\.
208.br
209\fI% xxd \-s 0x30 plik
210.PP
211.br
212Wypisz trzy linie (heksowe 0x30 bajtów) z końca
213.B pliku
214\.
215.br
216\fI% xxd \-s \-0x30 plik
217.PP
218.br
219Wypisz 120 bajtów jako ciągły zrzut heksowy z 40 oktetami na linię.
220.br
221\fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR
222.br
2232e54482058584420312022417567757374203139
224.br
22539362220224d616e75616c207061676520666f72
226.br
22720787864220a2e5c220a2e5c222032317374204d
228.br
229617920313939360a2e5c22204d616e2070616765
230.br
23120617574686f723a0a2e5c2220202020546f6e79
232.br
233204e7567656e74203c746f6e79407363746e7567
234.br
235
236.br
237Zrzut heksowy z pierwszymi 120 bajtami tej strony podręcznika z 12
238oktetami na linię.
239.br
240\fI% xxd \-l 120 \-c 12 xxd.1\fR
241.br
2420000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A
243.br
244000000c: 7567 7573 7420 3139 3936 2220 ugust 1996"
245.br
2460000018: 224d 616e 7561 6c20 7061 6765 "Manual page
247.br
2480000024: 2066 6f72 2078 7864 220a 2e5c for xxd"..\\
249.br
2500000030: 220a 2e5c 2220 3231 7374 204d "..\\" 21st M
251.br
252000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996..\\"
253.br
2540000048: 4d61 6e20 7061 6765 2061 7574 Man page aut
255.br
2560000054: 686f 723a 0a2e 5c22 2020 2020 hor:..\\"
257.br
2580000060: 546f 6e79 204e 7567 656e 7420 Tony Nugent
259.br
260000006c: 3c74 6f6e 7940 7363 746e 7567 <tony@sctnug
261.PP
262.br
263Pokaż tylko datę z pliku xxd.1
264.br
265\fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR
266.br
2670000036: 3231 7374 204d 6179 2031 3939 36 21st May 1996
268.PP
269.br
270Kopiuj
271.B plik_we
272do
273.B plik_wy
274i poprzedź 100 bajtami o wartości 0x00.
275.br
276\fI% xxd plik_we | xxd \-r \-s 100 \> plik_wy\fR
277.br
278
279.br
280Podmień datę w pliku xxd.1
281.br
282\fI% echo '0000037: 3574 68' | xxd \-r \- xxd.1\fR
283.br
284\fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR
285.br
2860000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996
287.PP
288.br
289Utwórz plik o 65537 bajtach, wszystkich równych 0x00,
290z wyjątkiem ostatniego, który ma być 'A' (hex 0x41).
291.br
292\fI% echo '010000: 41' | xxd \-r \> plik\fR
293.PP
294.br
295Zrzut heksowy tego pliku z autoskipem.
296.br
297\fI% xxd \-a \-c 12 plik\fR
298.br
2990000000: 0000 0000 0000 0000 0000 0000 ............
300.br
301*
302.br
303000fffc: 0000 0000 40 ....A
304.PP
305Utwórz jedno bajtowy plik zawierający pojednczą literę 'A'.
306Liczba po '\-r \-s' dodaje numery linii znalezione w pliku;
307w efekcie poprzedzające bajty są ukryte.
308.br
309\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> plik\fR
310.PP
311Użyj xxd jako filtra wewnątrz edytora takiego jak
312.B vim(1)
313aby uzyskać zrzut heksowy zakresu między markerami `a' i `z'.
314.br
315\fI:'a,'z!xxd\fR
316.PP
317Użyj xxd jako filtra wewnątrz edytora takiego jak
318.B vim(1)
319by odzyskać binarny zrzut heksowy zakresu pomiędzy markerami `a'
320i `z'.
321.br
322\fI:'a,'z!xxd \-r\fR
323.PP
324Użyj xxd jako filtra wewnątrz edytora takiego jak
325.B vim(1)
326by odzyskać jedną linię zrzutu heksowego. Przejdź z kursorem na linię
327i wpisz:
328.br
329\fI!!xxd \-r\fR
330.PP
331Odczytaj pojednycze znaki z portu szeregowego
332.br
333\fI% xxd \-c1 < /dev/term/b &\fR
334.br
335\fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR
336.br
337\fI% echo \-n foo > /dev/term/b\fR
338.PP
339.SH "ZWRACANE WARTOŚCI"
340Zwracane są następujące wartości błędów:
341.TP
3420
343nie znaleziono błędów.
344.TP
345\-1
346operacja nie jest wspierana (
347.I xxd \-r \-i
348cały czas niemożliwa).
349.TP
3501
351błąd w czasie analizowania opcji.
352.TP
3532
354problemy z plikiem wejściowym.
355.TP
3563
357problemy z plikiem wyjściowym.
358.TP
3594,5
360żądana pozycja jest nieosiągalna.
361.SH "ZOBACZ TAKŻE"
362uuencode(1), uudecode(1), patch(1)
363.br
364.SH OSTRZEŻENIA
365Dziwaczność narzędzi dorównuje dziwaczności mózgu twórcy.
366Używaj wyłącznie na własną odpowiedzialność. Kopiuj pliki. Analizuj
367je. Stań się czarodziejem.
368.br
369.SH WERSJA
370Strona podręcznika opisuje xxd w wersji 1.7
371.SH AUTOR
372.br
373(c) 1990-1997 by Juergen Weigert
374.br
375<jnweiger@informatik.uni-erlangen.de>
376.LP
377Kopiuj do woli i podaj moje dane,
378.br
379zarabiaj pieniądze i dziel się ze mną,
380.br
381trać pieniądze i nie miej do mnie pretensji.
382.PP
383Strona podręcznika zapoczątkowana przez Tony'ego Nugenta
384.br
385<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
386.br
387Małe zmiany: Bram Moolenaar.
388Redakcja: Juergen Weigert.
389.PP