Amazon Best VPN GoSearch

OnWorks favicon

xxd

ແລ່ນ xxd ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ນີ້ແມ່ນຄໍາສັ່ງ xxd ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


xxd - ເຮັດ hexdump ຫຼືເຮັດປີ້ນກັບກັນ.

ສະຫຼຸບສັງລວມ


xxd -ຊ[ຊ່ວຍ]
xxd [ທາງເລືອກ] [infile [outfile]]
xxd -r[evert] [ທາງເລືອກ] [infile [outfile]]

ລາຍລະອຽດ


xxd ສ້າງການ dump hex ຂອງໄຟລ໌ທີ່ໃຫ້ຫຼືການປ້ອນຂໍ້ມູນມາດຕະຖານ. ມັນຍັງສາມາດປ່ຽນ hex dump
ກັບໄປທີ່ຮູບແບບຖານສອງເດີມຂອງມັນ. ມັກ uuencode(1) ແລະ ລະຫັດ uudecode(1​) ມັນ​ອະ​ນຸ​ຍາດ​ໃຫ້​
ການສົ່ງຂໍ້ມູນຖານສອງໃນການເປັນຕົວແທນ ASCII 'mail-safe', ແຕ່ມີປະໂຫຍດ
ຂອງການຖອດລະຫັດກັບຜົນຜະລິດມາດຕະຖານ. ຍິ່ງໄປກວ່ານັ້ນ, ມັນສາມາດຖືກນໍາໃຊ້ເພື່ອປະຕິບັດການ patching ໄຟລ໌ສອງ.

OPTIONS


ຖ້າບໍ່ infile ແມ່ນໃຫ້, ການປ້ອນຂໍ້ມູນມາດຕະຖານຖືກອ່ານ. ຖ້າ infile ຖືກກໍານົດເປັນ `-' ລັກ​ສະ​ນະ​,
ຫຼັງຈາກນັ້ນ, ການປ້ອນຂໍ້ມູນແມ່ນເອົາມາຈາກວັດສະດຸປ້ອນມາດຕະຖານ. ຖ້າບໍ່ມີ outfile ແມ່ນໃຫ້ (ຫຼື `-' ລັກສະນະຢູ່ໃນ
ສະຖານທີ່ຂອງມັນ), ຜົນໄດ້ຮັບຖືກສົ່ງໄປຫາຜົນໄດ້ຮັບມາດຕະຖານ.

ໃຫ້ສັງເກດວ່າຕົວວິເຄາະ "ຂີ້ກຽດ" ຖືກໃຊ້ເຊິ່ງບໍ່ໄດ້ກວດເບິ່ງຫຼາຍກວ່າຕົວເລືອກທໍາອິດ
ຕົວອັກສອນ, ເວັ້ນເສຍແຕ່ວ່າທາງເລືອກແມ່ນປະຕິບັດຕາມໂດຍພາລາມິເຕີ. ຊ່ອງຫວ່າງລະຫວ່າງທາງເລືອກດຽວ
ຕົວອັກສອນແລະຕົວກໍານົດການຂອງມັນແມ່ນທາງເລືອກ. ພາລາມິເຕີຂອງຕົວເລືອກສາມາດຖືກລະບຸໄວ້ໃນອັດຕານິຍົມ,
ໝາຍເລກເລກຖານສິບຫົກ ຫຼືເລກຖານແປດ. ດັ່ງນັ້ນ -c8, -c 8, -c 010 ແລະ -cols 8 ທັງຫມົດແມ່ນທຽບເທົ່າ.

-a | - ຂ້າມອັດຕະໂນມັດ
ສະຫຼັບການຂ້າມອັດຕະໂນມັດ: '*' ອັນດຽວຈະແທນທີ່ເສັ້ນ nul. ປິດຄ່າເລີ່ມຕົ້ນ.

-b | - ບິດ
ປ່ຽນເປັນບິດ (ຕົວເລກຖານສອງ) dump, ແທນທີ່ຈະ hexdump. ຕົວເລືອກນີ້ຂຽນ
octets ເປັນແປດຕົວເລກ "1"s ແລະ "0"s ແທນທີ່ຈະເປັນ dump ເລກຖານສິບຫົກປົກກະຕິ. ແຕ່ລະ
ແຖວແມ່ນນຳໜ້າດ້ວຍຕົວເລກແຖວໃນເລກຖານສິບຫົກ ແລະຕິດຕາມດ້ວຍ ascii (ຫຼື
ebcdic) ການເປັນຕົວແທນ. ເສັ້ນຄໍາສັ່ງປ່ຽນ -r, -p, -i ບໍ່ເຮັດວຽກກັບນີ້
mode

-c ຄໍ | -cols ຄໍ
ຮູບແບບຄໍ> octets ຕໍ່ແຖວ. ຄ່າເລີ່ມຕົ້ນ 16 (-i: 12, -ps: 30, -b: 6). ສູງສຸດ 256.

-E | -EBCDIC
ປ່ຽນການເຂົ້າລະຫັດຕົວອັກສອນໃນຖັນຂວາມືຈາກ ASCII ເປັນ EBCDIC. ນີ້
ບໍ່ປ່ຽນແປງການເປັນຕົວແທນເລກຖານສິບຫົກ. ທາງເລືອກແມ່ນບໍ່ມີຄວາມຫມາຍໃນ
ການປະສົມກັບ -r, -p ຫຼື -i.

-e ປ່ຽນເປັນ hexdump ນ້ອຍ-endian. ຕົວເລືອກນີ້ປະຕິບັດຕໍ່ກຸ່ມ byte ເປັນຄໍາທີ່ຢູ່ໃນ
ຄໍາສັ່ງ byte ນ້ອຍ-endian. ການຈັດກຸ່ມເລີ່ມຕົ້ນຂອງ 4 bytes ອາດຈະຖືກປ່ຽນແປງໂດຍໃຊ້ -g.
ຕົວເລືອກນີ້ໃຊ້ກັບ hexdump ເທົ່ານັ້ນ, ເຊິ່ງເຮັດໃຫ້ຕົວແທນ ASCII (ຫຼື EBCDIC).
ບໍ່ປ່ຽນແປງ. ເສັ້ນຄໍາສັ່ງປ່ຽນ -r, -p, -i ບໍ່ເຮັດວຽກກັບໂຫມດນີ້.

-g ໄບ | - ຂະ​ຫນາດ​ກຸ່ມ​ ໄບ
ແຍກຜົນຜະລິດຂອງທຸກໆໄບ> bytes (ສອງຕົວອັກສອນ hex ຫຼືແປດຕົວເລກບິດ
ແຕ່ລະ) ໂດຍຊ່ອງຫວ່າງ. ລະບຸ -g 0 ​ເພື່ອ​ສະກັດ​ກັ້ນ​ການ​ແບ່ງ​ກຸ່ມ.ໄບ> ເລີ່ມຕົ້ນເປັນ 2
ໃນ​ຮູບ​ແບບ​ປົກ​ກະ​ຕິ​, 4 ໃນຮູບແບບ little-endian ແລະ 1 ໃນ​ຮູບ​ແບບ bits​. ການຈັດກຸ່ມບໍ່ໄດ້
ໃຊ້ກັບ postscript ຫຼືລວມເອົາຮູບແບບ.

-h | -ຊ່ວຍ
ພິມບົດສະຫຼຸບຂອງຄໍາສັ່ງທີ່ມີຢູ່ແລະອອກ. ບໍ່ມີການຖິ້ມຂີ້ເຫຍື້ອ hex.

-i | - ລວມ​ທັງ​
ຜົນຜະລິດໃນ C ປະກອບມີຮູບແບບໄຟລ໌. ຄໍານິຍາມອາເຣຄົງທີ່ຄົບຖ້ວນແມ່ນຂຽນ
(ຕັ້ງຊື່ຕາມໄຟລ໌ປ້ອນ), ເວັ້ນເສຍແຕ່ວ່າ xxd ອ່ານຈາກ stdin.

-l len | - ເລນ len
ຢຸດຫຼັງຈາກຂຽນlen> octets.

-o ຊົດເຊີຍ
ເພີ່ມຊົດເຊີຍ> ກັບຕໍາແຫນ່ງໄຟລ໌ທີ່ສະແດງ.

-p | -ps | -postscript | - ທຳ ມະດາ
ຜົນຜະລິດໃນຮູບແບບ hexdump ຢ່າງຕໍ່ເນື່ອງ postscript. ເອີ້ນກັນວ່າແບບ hexdump ທຳມະດາ.

-r | - ກັບຄືນ
ການດໍາເນີນງານແບບປີ້ນກັບກັນ: ປ່ຽນ (ຫຼື patch) hexdump ເປັນຖານສອງ. ຖ້າບໍ່ຂຽນຫາ
stdout, xxd ຂຽນເຂົ້າໄປໃນໄຟລ໌ຜົນຜະລິດຂອງມັນໂດຍບໍ່ມີການຕັດມັນ. ໃຊ້ການປະສົມປະສານ
-r -p ເພື່ອອ່ານ dumps ເລກຖານສິບຫົກທໍາມະດາໂດຍບໍ່ມີຂໍ້ມູນເລກແຖວ ແລະບໍ່ມີ a
ຮູບແບບຖັນໂດຍສະເພາະ. ອະນຸຍາດໃຫ້ມີຊ່ອງຫວ່າງເພີ່ມເຕີມ ແລະຕົວຂັ້ນແຖວ
ທຸກບ່ອນ.

- ຊອກ​ຫາ​ ຊົດເຊີຍ
ເມື່ອໃຊ້ຫຼັງຈາກ -r: ກັບ​ຄືນ​ໄປ​ບ່ອນ​ຊົດເຊີຍ> ເພີ່ມໃສ່ຕຳແໜ່ງໄຟລ໌ທີ່ພົບໃນ hexdump.

-s [+][-]ຊອກຫາ
ເລີ່ມຕົ້ນທີ່ຊອກຫາວິທີ> bytes abs. (ຫຼື rel.) infile offset. + ສະ​ແດງ​ໃຫ້​ເຫັນ​ວ່າ​ການ​ຊອກ​ຫາ​ແມ່ນ​
ກ່ຽວຂ້ອງກັບຕໍາແຫນ່ງໄຟລ໌ stdin ໃນປັດຈຸບັນ (ບໍ່ມີຄວາມຫມາຍໃນເວລາທີ່ບໍ່ໄດ້ອ່ານຈາກ
stdin). - ຊີ້ບອກວ່າການສະແຫວງຫາຄວນຈະເປັນຕົວລະຄອນຫຼາຍຕົວຈາກທ້າຍສຸດ
ວັດສະດຸປ້ອນ (ຫຼືຖ້າລວມກັບ +: ກ່ອນທີ່ຈະຕໍາແຫນ່ງໄຟລ໌ stdin ໃນປັດຈຸບັນ). ໂດຍບໍ່ມີການ
-s ທາງເລືອກ, xxd ເລີ່ມຕົ້ນທີ່ຕໍາແຫນ່ງໄຟລ໌ໃນປະຈຸບັນ.

-u ໃຊ້ຕົວພິມໃຫຍ່ hex. ຄ່າເລີ່ມຕົ້ນແມ່ນຕົວພິມນ້ອຍ.

-v | -ການປ່ຽນແປງ
ສະແດງສະຕຣິງລຸ້ນ.

ຂໍ້ຄວນລະວັງ


xxd -r ມີ magic builtin ບາງຢ່າງໃນຂະນະທີ່ປະເມີນຂໍ້ມູນເລກແຖວ. ຖ້າຜົນຜະລິດ
ໄຟລ໌ແມ່ນສາມາດຊອກຫາໄດ້, ຫຼັງຈາກນັ້ນ, linenumbers ໃນຕອນເລີ່ມຕົ້ນຂອງແຕ່ລະເສັ້ນ hexdump ອາດຈະອອກຈາກ
ຄໍາສັ່ງ, ສາຍອາດຈະຂາດ, ຫຼືທັບຊ້ອນກັນ. ໃນກໍລະນີເຫຼົ່ານີ້ xxd ຈະ ຊອກຫາ(2) ຕໍ່ໄປ
ຕໍາ​ແຫນ່ງ​. ຖ້າໄຟລ໌ຜົນຜະລິດບໍ່ສາມາດຊອກຫາໄດ້, ພຽງແຕ່ອະນຸຍາດໃຫ້ມີຊ່ອງຫວ່າງ, ເຊິ່ງຈະຖືກຕື່ມໃສ່
ໂດຍ null-bytes.

xxd -r ບໍ່ເຄີຍສ້າງຄວາມຜິດພາດໃນການວິເຄາະ. ຂີ້ເຫຍື້ອຖືກຂ້າມຢ່າງງຽບໆ.

ເມື່ອແກ້ໄຂ hexdumps, ກະລຸນາສັງເກດວ່າ xxd -r ຂ້າມທຸກຢ່າງໃນແຖວປ້ອນຂໍ້ມູນຫຼັງຈາກ
ການອ່ານຄໍລໍາພຽງພໍຂອງຂໍ້ມູນເລກຖານສິບຫົກ (ເບິ່ງທາງເລືອກ -c). ນີ້ຍັງຫມາຍຄວາມວ່າ, ການປ່ຽນແປງ
ຖັນ ascii (ຫຼື ebcdic) ທີ່ສາມາດພິມໄດ້ແມ່ນຖືກລະເລີຍສະເໝີ. ກັບຄືນທົ່ງພຽງ (ຫຼື
postscript) style hexdump ກັບ xxd -r -p ບໍ່ຂຶ້ນກັບຈໍານວນຖັນທີ່ຖືກຕ້ອງ.
ນີ້ແມ່ນສິ່ງທີ່ຄ້າຍຄືຄູ່ຂອງຕົວເລກ hex ໄດ້ຖືກຕີຄວາມ.

ໃຫ້ສັງເກດຄວາມແຕກຕ່າງລະຫວ່າງ
% xxd -i ເອກະສານ
ແລະ
% xxd -i < ເອກະສານ

xxd -s +ຊອກຫາ ອາດຈະແຕກຕ່າງຈາກ xxd -s ຊອກຫາວິທີ, as ຊອກຫາ(2) ຖືກນໍາໃຊ້ເພື່ອ "rewind" ວັດສະດຸປ້ອນ. ກ
'+' ເຮັດໃຫ້ມີຄວາມແຕກຕ່າງຖ້າແຫຼ່ງປ້ອນເຂົ້າແມ່ນ stdin, ແລະຖ້າຕໍາແຫນ່ງໄຟລ໌ຂອງ stdin ບໍ່ແມ່ນ
ໃນຕອນເລີ່ມຕົ້ນຂອງໄຟລ໌ໃນເວລາທີ່ xxd ເລີ່ມຕົ້ນແລະໄດ້ຮັບການປ້ອນຂໍ້ມູນຂອງມັນ. ຕໍ່ໄປນີ້
ຕົວຢ່າງອາດຈະຊ່ວຍໃຫ້ຄວາມກະຈ່າງແຈ້ງ (ຫຼືສັບສົນຕື່ມອີກ!) ...

Rewind stdin ກ່ອນທີ່ຈະອ່ານ; ຕ້ອງການເພາະວ່າ 'ແມວ' ໄດ້ອ່ານເຖິງຕອນທ້າຍ
stdin.
% sh -c "ແມວ > plain_copy; xxd -s 0 > hex_copy" < ເອກະສານ

Hexdump ຈາກຕຳແໜ່ງໄຟລ໌ 0x480 (=1024+128) ເປັນຕົ້ນໄປ. ສັນຍາລັກ `+' ຫມາຍຄວາມວ່າ "ກ່ຽວຂ້ອງກັບ
ຕໍາແຫນ່ງປະຈຸບັນ", ດັ່ງນັ້ນ `128' ເພີ່ມໃສ່ 1k ບ່ອນທີ່ dd ອອກໄປ.
% sh -c "ດດ of=plain_snippet bs=1k count=1; xxd -s + 128 > hex_snippet" < ເອກະສານ

Hexdump ຈາກຕໍາແຫນ່ງໄຟລ໌ 0x100 (= 1024-768) on.
% sh -c "ດດ of=plain_snippet bs=1k count=1; xxd -s + -768 > hex_snippet" < ເອກະສານ

ຢ່າງໃດກໍ່ຕາມ, ນີ້ແມ່ນສະຖານະການທີ່ຫາຍາກແລະການໃຊ້ `+' ແມ່ນບໍ່ຄ່ອຍຈໍາເປັນ. ຜູ້ຂຽນມັກ
ເພື່ອຕິດຕາມຜົນກະທົບຂອງ xxd ກັບ ສາຍແຮ່(1) ຫຼື ມັດ(1), ທຸກຄັ້ງ -s ຖືກນໍາໃຊ້.

ຕົວຢ່າງ


ພິມທຸກສິ່ງທຸກຢ່າງແຕ່ສາມແຖວທໍາອິດ (hex 0x30 bytes) ຂອງ ເອກະສານ.
% xxd -s 0x30 ເອກະສານ

ພິມ 3 ເສັ້ນ (hex 0x30 bytes) ຈາກທ້າຍຂອງ ເອກະສານ.
% xxd -s -0x30 ເອກະສານ

ພິມ 120 bytes ເປັນ hexdump ຢ່າງຕໍ່ເນື່ອງທີ່ມີ 20 octets ຕໍ່ແຖວ.
% xxd -l 120 -ps -c 20 xxd.1
2e54482058584420312022417567757374203139
39362220224d616e75616c207061676520666f72
20787864220a2e5c220a2e5c222032317374204d
617920313939360a2e5c22204d616e2070616765
20617574686f723a0a2e5c2220202020546f6e79
204e7567656e74203c746f6e79407363746e7567

Hexdump 120 bytes ທຳອິດຂອງໜ້າຜູ້ຊາຍນີ້ດ້ວຍ 12 octets ຕໍ່ແຖວ.
% xxd -l 120 -c 12 xxd.1
0000000:2e54 4820 5858 4420 3120 2241 .TH XXD 1 "ກ.
000000c: 7567 7573 7420 3139 3936 2220 ugust 1996"
0000018: 224d 616e 7561 6c20 7061 6765 "ຫນ້າຄູ່ມື
0000024: 2066 6f72 2078 7864 220a 2e5c ສໍາລັບ xxd"..\
0000030: 220a 2e5c 2220 3231 7374 204d "..\" 21st M
000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996..\"
0000048: 4d61 6e20 7061 6765 2061 7574 Man page aut
0000054: 686f 723a 0a2e 5c22 2020 2020 hor:..\"
0000060: 546f 6e79 204e 7567 656e 7420 Tony Nugent
000006c: 3c74 6f6e 7940 7363 746e 7567

ສະແດງພຽງແຕ່ວັນທີຈາກໄຟລ໌ xxd.1
% xxd -s 0x36 -l 13 -c 13 xxd.1
0000036: 3231 7374 204d 6179 2031 3939 36 21 ເດືອນພຶດສະພາ 1996

ສໍາເນົາ input_file to output_file ແລະ prepend 100 bytes ຂອງມູນຄ່າ 0x00.
% xxd input_file | xxd -r -s 100 > output_file

ແກ້ໄຂວັນທີໃນໄຟລ໌ xxd.1
% echo "0000037: 3574 68 " | xxd -r - xxd.1
% xxd -s 0x36 -l 13 -c 13 xxd.1
0000036: 3235 7468 204d 6179 2031 3939 36 25 ເດືອນ​ພຶດ​ສະ​ພາ 1996

ສ້າງໄຟລ໌ 65537 byte ກັບ 0x00 bytes ທັງໝົດ, ຍົກເວັ້ນອັນສຸດທ້າຍທີ່ເປັນ 'A' (hex
ຂະ ໜາດ 0x41).
% echo "010000: 41 " | xxd -r > ເອກະສານ

Hexdump ໄຟລ໌ນີ້ດ້ວຍການຂ້າມອັດຕະໂນມັດ.
% xxd -a -c 12 ເອກະສານ
0000000: 0000 0000 0000 0000 0000 0000............
*
000ffffc: 0000 0000 40 .... ກ

ສ້າງໄຟລ໌ 1 byte ທີ່ມີຕົວອັກສອນ 'A' ດຽວ. ຕົວເລກຫຼັງຈາກ '-r -s' ເພີ່ມໃສ່
linenumbers ທີ່ພົບເຫັນຢູ່ໃນໄຟລ໌; ໃນຄວາມເປັນຈິງ, bytes ຊັ້ນນໍາແມ່ນຖືກສະກັດກັ້ນ.
% echo "010000: 41 " | xxd -r -s -0x10000 > ເອກະສານ

ໃຊ້ xxd ເປັນຕົວກອງພາຍໃນບັນນາທິການເຊັ່ນ: vim(1​) ເພື່ອ hexdump ພາກພື້ນທີ່ມີເຄື່ອງຫມາຍລະຫວ່າງ 'a'
ແລະ `z'.
:'a,'z!xxd

ໃຊ້ xxd ເປັນຕົວກອງພາຍໃນບັນນາທິການເຊັ່ນ: vim(1​) ເພື່ອຟື້ນຕົວ hexdump binary ຫມາຍ
ລະຫວ່າງ `a' ແລະ `z'.
:'a,'z!xxd -r

ໃຊ້ xxd ເປັນຕົວກອງພາຍໃນບັນນາທິການເຊັ່ນ: vim(1​) ເພື່ອກູ້ຄືນເສັ້ນໜຶ່ງຂອງ hexdump.
ຍ້າຍຕົວກະພິບໃສ່ເສັ້ນ ແລະພິມ:
!!xxd -r

ອ່ານຕົວອັກສອນດຽວຈາກແຖວລໍາດັບ
% xxd -c1 < /dev/term/b &
% stty < /dev/term/b - ສຽງດັງ - ຕ້ານ -Isig -icon ນາທີ 1
% echo -n ຟູ > /dev/term/b

ກັບຄືນ VALUES


ຄ່າຄວາມຜິດພາດຕໍ່ໄປນີ້ຖືກສົ່ງຄືນ:

0 ບໍ່ພົບຂໍ້ຜິດພາດ.

-1 ການ​ດໍາ​ເນີນ​ງານ​ບໍ່​ໄດ້​ສະ​ຫນັບ​ສະ​ຫນູນ ( xxd -r -i ຍັງເປັນໄປບໍ່ໄດ້).

1 ຂໍ້ຜິດພາດໃນຂະນະທີ່ຕົວເລືອກການແຍກວິເຄາະ.

2 ບັນຫາກັບໄຟລ໌ປ້ອນຂໍ້ມູນ.

3 ບັນຫາກັບໄຟລ໌ຜົນຜະລິດ.

4,5 ຕໍາແຫນ່ງຊອກຫາທີ່ຕ້ອງການແມ່ນບໍ່ສາມາດເຂົ້າຫາໄດ້.

ໃຊ້ xxd ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net


Ad




×
ການ​ໂຄ​ສະ​ນາ
?ຊື້ເຄື່ອງ, ຈອງ, ຫຼືຊື້ທີ່ນີ້ — ບໍ່ມີຄ່າໃຊ້ຈ່າຍ, ຊ່ວຍໃຫ້ການບໍລິການຟຣີ.