hexdump命令是Linux下的打印16進制的利器,它可以按我們指定的格式輸出16進制,特別有用,配合eeprom來用簡直是絕配。
今天我們來介紹一個hexdump命令的使用:
首先我們準備一個測試用的文件test,十六進制如下:
- 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
- 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
- 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
選項:
-n length
只格式化輸入文件的前length個字節
-C 輸出十六進制和對應字符
輸入:
- hexdump -n 13 -C test
hexdump -n 13 -C test
輸出:
- 00000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c |.............|
- 0000000d
00000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c |.............|
0000000d
-s 從偏移量開始輸出
輸入:
- hexdump -n 13 -C -s 30 test
hexdump -n 13 -C -s 30 test
輸出:
- 0000001e 1e 1f 20 21 22 23 24 25 26 27 28 29 2a |.. !"#$%&'()*|
- 0000002b
0000001e 1e 1f 20 21 22 23 24 25 26 27 28 29 2a |.. !"#$%&'()*|
0000002b
- hexdump -e '16/1 "%02X " " | "' -e '16/1 "%_p" "\n"' test
hexdump -e '16/1 "%02X " " | "' -e '16/1 "%_p" "\n"' test
輸出:- 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | ................
- 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F | ................
- 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F | !"#$%&'()*+,-./
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | ................
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F | ................
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F | !"#$%&'()*+,-./
- hexdump -e '1/1 "0x%08_ax "' -e '8/1 "%02X " " * "' -e '8/1 "%_p" "\n"' test
hexdump -e '1/1 "0x%08_ax "' -e '8/1 "%02X " " * "' -e '8/1 "%_p" "\n"' test
- 0x00000000 00 01 02 03 04 05 06 07 * ........
- 0x00000008 08 09 0A 0B 0C 0D 0E 0F * ........
- 0x00000010 10 11 12 13 14 15 16 17 * ........
- 0x00000018 18 19 1A 1B 1C 1D 1E 1F * ........
- 0x00000020 20 21 22 23 24 25 26 27 * !"#$%&'
- 0x00000028 28 29 2A 2B 2C 2D 2E 2F * ()*+,-./
0x00000000 00 01 02 03 04 05 06 07 * ........
0x00000008 08 09 0A 0B 0C 0D 0E 0F * ........
0x00000010 10 11 12 13 14 15 16 17 * ........
0x00000018 18 19 1A 1B 1C 1D 1E 1F * ........
0x00000020 20 21 22 23 24 25 26 27 * !"#$%&'
0x00000028 28 29 2A 2B 2C 2D 2E 2F * ()*+,-./
- hexdump -e '1/1 "%02_ad# "' -e '/1 "hex = %02X * "' -e '/1 "dec = %03d | "' -e '/1 "oct = %03o"' -e '/1 " \_\n"' -n 20 test
hexdump -e '1/1 "%02_ad# "' -e '/1 "hex = %02X * "' -e '/1 "dec = %03d | "' -e '/1 "oct = %03o"' -e '/1 " \_\n"' -n 20 test
- 00# hex = 00 * dec = 000 | oct = 000 _
- 01# hex = 01 * dec = 001 | oct = 001 _
- 02# hex = 02 * dec = 002 | oct = 002 _
- 03# hex = 03 * dec = 003 | oct = 003 _
- 04# hex = 04 * dec = 004 | oct = 004 _
- 05# hex = 05 * dec = 005 | oct = 005 _
- 06# hex = 06 * dec = 006 | oct = 006 _
- 07# hex = 07 * dec = 007 | oct = 007 _
- 08# hex = 08 * dec = 008 | oct = 010 _
- 09# hex = 09 * dec = 009 | oct = 011 _
- 10# hex = 0A * dec = 010 | oct = 012 _
- 11# hex = 0B * dec = 011 | oct = 013 _
- 12# hex = 0C * dec = 012 | oct = 014 _
- 13# hex = 0D * dec = 013 | oct = 015 _
- 14# hex = 0E * dec = 014 | oct = 016 _
- 15# hex = 0F * dec = 015 | oct = 017 _
- 16# hex = 10 * dec = 016 | oct = 020 _
- 17# hex = 11 * dec = 017 | oct = 021 _
- 18# hex = 12 * dec = 018 | oct = 022 _
- 19# hex = 13 * dec = 019 | oct = 023 _