zoukankan      html  css  js  c++  java
  • 非文本查看工具之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.
    
    * * * 胖并快乐着的死肥宅 * * *
  • 相关阅读:
    关于子类中不能调用基类中定义的事件问题
    比尔·盖茨在哈佛大学毕业典礼上的演讲
    一个QA讲解的回文判断函数
    mybatis和spring整合时这个报错,应该这样解决!
    “老师,为什么我一上课就感到困,听课听的总是走神?”
    最好的方法,是为你们量身定制!
    “桌面日历”记录的事件居然是看某某视频……
    干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
    越优秀的人越努力,越努力的人越幸运!
    挺不喜欢下雪的
  • 原文地址:https://www.cnblogs.com/bpzblog/p/14494754.html
Copyright © 2011-2022 走看看