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" "
"' 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