非文本查看工具之hexdump,od,xxd

hexdump

用于查看二进制和其他进制文本和非文本文件内容

[01:55:25 root@C8-3-55 ~]#hexdump --help

用法:
 hexdump [选项] <文件>...

以十六进制、十进制、八进制、二进制或 ascii 显示文件内容。

选项:
 -b, --one-byte-octal      单字节八进制显示
 -c, --one-byte-char       单字节字符显示
 -C, --canonical           规范化 hex+ASCII 显示
 -d, --two-bytes-decimal   双字节十进制显示
 -o, --two-bytes-octal     双字节八进制显示
 -x, --two-bytes-hex       双字节十六进制显示
 -L, --color[=<模式>]      解释颜色格式化限定符
                             默认启用颜色
 -e, --format <格式>       用于显示数据的格式化字符串
 -f, --format-file <文件>  包含格式字符串的文件
 -n, --length <长度>       只解释规定字节长度的输入
 -s, --skip <偏移>         跳过开头的指定字节偏移
 -v, --no-squeezing        输出相同的行

 -h, --help                display this help
 -V, --version             display version

更多信息请参阅 hexdump(1)。
  • 显示二十六个字母对应的二进制数

[02:03:29 root@C8-3-55 ~]#echo {a..z} | tr -d ' ' | hexdump -C ##显示{a..z}|删除空格|以规范化ascii显示
00000000  61 62 63 64 65 66 67 68  69 6a 6b 6c 6d 6e 6f 70  |abcdefghijklmnop|
00000010  71 72 73 74 75 76 77 78  79 7a 0a                 |qrstuvwxyz.|
0000001b

od

[02:05:30 root@C8-3-55 ~]#od --help
用法:od [选项]... [文件]...
 或:od [-abcdfilosx]... [文件] [[+]偏移量[.][b]]
 或:od --traditional [选项]... [文件] [[+]偏移量[.][b] [+][标签][.][b]]

Write an unambiguous representation, octal bytes by default,
of FILE to standard output.  With more than one FILE argument,
concatenate them in the listed order to form the input.

如果没有指定文件,或者文件为"-",则从标准输入读取。

If first and second call formats both apply, the second format is assumed
if the last operand begins with + or (if there are 2 operands) a digit.
An OFFSET operand means -j OFFSET.  LABEL is the pseudo-address
at first byte printed, incremented when dump is progressing.
For OFFSET and LABEL, a 0x or 0X prefix indicates hexadecimal;
suffixes may be . for octal and b for multiply by 512.

必选参数对长短选项同时适用。
  -A, --address-radix=RADIX   output format for file offsets; RADIX is one
                                of [doxn], for Decimal, Octal, Hex or None
      --endian={big|little}   swap input bytes according the specified order
  -j, --skip-bytes=BYTES      skip BYTES input bytes first
  -N, --read-bytes=BYTES      limit dump to BYTES input bytes
  -S BYTES, --strings[=BYTES]  output strings of at least BYTES graphic chars;
                                3 is implied when BYTES is not specified
  -t, --format=TYPE           select output format or formats
  -v, --output-duplicates     do not use * to mark line suppression
  -w[BYTES], --width[=BYTES]  output BYTES bytes per output line;
                                32 is implied when BYTES is not specified
      --traditional           accept arguments in third form above
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出


Traditional format specifications may be intermixed; they accumulate:
  -a   same as -t a,  select named characters, ignoring high-order bit
  -b   same as -t o1, select octal bytes
  -c   same as -t c,  select printable characters or backslash escapes
  -d   same as -t u2, select unsigned decimal 2-byte units
  -f    即 -t fF,指定浮点数对照输出格式
  -i    即 -t dl,指定十进制整数对照输出格式
  -l    即 -t dL,指定十进制长整数对照输出格式
  -o    即 -t o2,指定双字节单位八进制数的对照输出格式
  -s    即 -t d2,指定双字节单位十进制数的对照输出格式
  -x    即 -t x2,指定双字节单位十六进制数的对照输出格式


TYPE is made up of one or more of these specifications:
  a          named character, ignoring high-order bit
  c          printable character or backslash escape
  d[SIZE]    signed decimal, SIZE bytes per integer
  f[SIZE]    floating point, SIZE bytes per float
  o[SIZE]    octal, SIZE bytes per integer
  u[SIZE]    unsigned decimal, SIZE bytes per integer
  x[SIZE]    hexadecimal, SIZE bytes per integer

SIZE is a number.  For TYPE in [doux], SIZE may also be C for
sizeof(char), S for sizeof(short), I for sizeof(int) or L for
sizeof(long).  If TYPE is f, SIZE may also be F for sizeof(float), D
for sizeof(double) or L for sizeof(long double).

Adding a z suffix to any type displays printable characters at the end of
each output line.


BYTES is hex with 0x or 0X prefix, and may have a multiplier suffix:
  b    512
  KB   1000
  K    1024
  MB   1000*1000
  M    1024*1024
and so on for G, T, P, E, Z, Y.
[02:06:26 root@C8-3-55 ~]#echo {a..z} | tr -d ' ' | od -t x
0000000 64636261 68676665 6c6b6a69 706f6e6d
0000020 74737271 78777675 000a7a79
0000033
[02:07:09 root@C8-3-55 ~]#echo {a..z} | tr -d ' ' | od -x
0000000 6261 6463 6665 6867 6a69 6c6b 6e6d 706f
0000020 7271 7473 7675 7877 7a79 000a
0000033

[02:09:38 root@C8-3-55 ~]#echo {a..z} | tr -d ' ' | od -t x1
0000000 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70
0000020 71 72 73 74 75 76 77 78 79 7a 0a
0000033
[02:09:44 root@C8-3-55 ~]#echo {a..z} | tr -d ' ' | od -t x2
0000000 6261 6463 6665 6867 6a69 6c6b 6e6d 706f
0000020 7271 7473 7675 7877 7a79 000a
0000033
[02:09:47 root@C8-3-55 ~]#echo {a..z} | tr -d ' ' | od -t x1z
0000000 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70  >abcdefghijklmnop<
0000020 71 72 73 74 75 76 77 78 79 7a 0a                 >qrstuvwxyz.<
0000033
[02:10:43 root@C8-3-55 ~]#echo {a..z} | tr -d ' ' | od -t x2z
0000000 6261 6463 6665 6867 6a69 6c6b 6e6d 706f  >abcdefghijklmnop<
0000020 7271 7473 7675 7877 7a79 000a            >qrstuvwxyz.<
0000033

xxd

[02:10:48 root@C8-3-55 ~]#xxd --help
Usage:
       xxd [options] [infile [outfile]]
    or
       xxd -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]
Options:
    -a          toggle autoskip: A single '*' replaces nul-lines. Default off.
    -b          binary digit dump (incompatible with -ps,-i,-r). Default hex.
    -C          capitalize variable names in C include file style (-i).
    -c cols     format <cols> octets per line. Default 16 (-i: 12, -ps: 30).
    -E          show characters in EBCDIC. Default ASCII.
    -e          little-endian dump (incompatible with -ps,-i,-r).
    -g          number of octets per group in normal output. Default 2 (-e: 4).
    -h          print this summary.
    -i          output in C include file style.
    -l len      stop after <len> octets.
    -o off      add <off> to the displayed file position.
    -ps         output in postscript plain hexdump style.
    -r          reverse operation: convert (or patch) hexdump into binary.
    -r -s off   revert with <off> added to file positions found in hexdump.
    -s [+][-]seek  start at <seek> bytes abs. (or +: rel.) infile offset.
    -u          use upper case hex letters.
    -v          show version: "xxd V1.10 27oct98 by Juergen Weigert".
[02:11:41 root@C8-3-55 ~]#echo {a..z} | tr -d ' ' | xxd
00000000: 6162 6364 6566 6768 696a 6b6c 6d6e 6f70  abcdefghijklmnop
00000010: 7172 7374 7576 7778 797a 0a              qrstuvwxyz.
* * * 胖并快乐着的死肥宅 * * *
原文地址:https://www.cnblogs.com/bpzblog/p/14494754.html