1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
|
.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
|