mirror of
https://github.com/neovim/neovim.git
synced 2024-12-27 14:21:31 -07:00
390 lines
10 KiB
Groff
390 lines
10 KiB
Groff
.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
|