hexdump, hexedit 使用指南

hexdump, hexedit 使用指南

hexdump 详解

hexdump命令一般用来查看“二进制”文件的十六进制编码,但实际上它能查看任何文件,而不只限于二进制文件。

用法

hexdump [选项] [文件]...

-n length 只格式化输入文件的前length个字节。
-C 输出规范的十六进制和ASCII码。
-b 单字节八进制显示。
-c 单字节字符显示。
-d 双字节十进制显示。
-o 双字节八进制显示。
-x 双字节十六进制显示。
-s 从偏移量开始输出。
-e 指定格式字符串,格式字符串包含在一对单引号中,格式字符串形如:'a/b "format1" "format2"'。

    # hexdump -h
    hexdump: invalid option -- 'h'
     
    Usage:
     hexdump [options] file...
     
    Options:
     -b              one-byte octal display#单字节八进制显示
     -c              one-byte character display#单字节字符显示
     -C              canonical hex+ASCII display#规范化 十六进制+ASCII 显示
     -d              two-byte decimal display#两字节十进制显示
     -o              two-byte octal display#两字节八进制显示
     -x              two-byte hexadecimal display#两字节十六进制显示
     -e format       format string to be used for displaying data#格式 用于显示数据的格式字符串
     -f format_file  file that contains format strings#格式文件 包含格式字符串的文件
     -n length       interpret only length bytes of input#长度 只解释输入的指定长度个字节
     -s offset       skip offset bytes from the beginning#偏移 跳过开头指定长度个字节
     -v              display without squeezing similar lines#显示时不压缩相似的行
     -V              output version information and exit#显示此帮助并退出

每个格式字符串由三部分组成,每个由空格分隔,第一个形如a/b,b表示对每b个输入字节应用format1格式,a表示对每a个输入字节应用format2格式,一般a>b,且b只能为1,2,4,另外a可以省略,省略则a=1。format1和format2中可以使用类似printf的格式字符串,如:

%02d:两位十进制
%03x:三位十六进制
%02o:两位八进制
%c:单个字符等

还有一些特殊的用法:

%_ad:标记下一个输出字节的序号,用十进制表示。
%_ax:标记下一个输出字节的序号,用十六进制表示。
%_ao:标记下一个输出字节的序号,用八进制表示。
%_p:对不能以常规字符显示的用 . 代替。

同一行如果要显示多个格式字符串,则可以跟多个-e选项。

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  |   !"#$%&'()*+,-./ 

hexedit 详解

hexedit 是查看和编辑十六进制或 ASCII 文件的工具,Hexedit 同时以 ASCII 和十六进制显示文件。文件可以是一个设备,因为文件是一次读取一个片段。您可以修改文件并在其中搜索。

安装 (ubuntu1804)

sudo apt install hexedit -y

用法

hexedit [-s | --sector] [-m | --maximize] [-h | --help] [filename]

# -s, --sector    格式化显示以包含整个扇区。
# -m, --maximimize    尝试最大化显示。
# -h, --help    显示用法。

快速命令,进入编辑器以后直接按键即可操作的命令

移动

<,> : 转到文件的开头/结尾
Right: 下一个字符
Left: 前一个字符
Down: 下一行
Up: 前一行
Home: 行的第一个字符
End: 行的最后一个字符
PUp: 向上翻页
PDown: 向下翻页

其他命令

F2: 保存
F3: 打开其他文件
F1: 帮助
Ctrl-L: redraw
Ctrl-Z: 暂时停办(推出后使用fg回来,使用jobs 查看 停办的任务)
Ctrl-X:保存并推出
Ctrl-C: 退出不保存
Tab: hex和ascii之间切换
Return: 跳到指定地址(不区分大小写)
Backspace: 撤消前一个修改的字符
Ctrl-U: 撤销所有的修改
Ctrl-S: 向前搜索 16进制值
Ctrl-R: 向后搜索 16进制值

剪切粘贴

Ctrl-Space: set mark
Esc-W: copy
Ctrl-Y: paste
Esc-Y: paste into a file
Esc-I: fill
posted @ 2021-08-25 11:31  michaelchengjl  阅读(3997)  评论(0编辑  收藏  举报