od(英文全称为:Octal Dump)命令是 Linux / Unix / FreeBSD 系统中的分析文件二进制的命令,它是将文本或二进制文件的内容转换为八进制、十六进制、十进制、二进制等数值格式。

文本将全面的解析 od 命令的使用方式。

od 命令语法详解

如下给出 od 命令的基本语法形式:

# 基础格式
od [选项] [文件]...

# 带偏移量格式
od [选项] [文件] [[+]偏移量[.][b] [[+]]标签[.][b]]

od 命令使用示例

使用八进制查看内容

默认不提供参数会以八进制输出内容:

od /bin/ls

如上示例是以八进制形式输出 ls 命令的内容。

使用十六进制查看内容

使用 -x 选项,可以以十六进制显示内容:

od -x /bin/ls

如上示例是以十六进制形式输出 ls 命令的内容。

附加显示行内容

示例中使用的 text.txt 文本内容:

hello world.

使用 -t 选项设置输出形式后,后面附加 z 显示行内容:

od -t x1z text.txt

输出示例:

0000000 68 65 6c 6c 6f 20 77 6f 72 6c 64 2e              >hello world.<
0000014

跳过前面的一些字节

使用 -j 选项跳过前面的一些字节查看内容:

od -j 512 -N 64 /bin/ls

od 命令选项详解

如下给出 od 命令选项的解释说明:

类别 选项 作用说明
用于控制输出形式 -t <类型> <类型> 是一个组合第一个字符为设置其输出进制,后面为一个数值,控制一次显示几个字节
可以使用的类型组合有:
- xN:十六进制,一次显示 N 字节
- dN:十进制,一次显示 N 字节
- oN:八进制,
- uN:无符号十进制,一次显示 N 字节
- c:一次显示一个ASCII字符
- b:一次显示一个字节的二进制
注意:可以在每种组合的后面附加 z ,在每行的后面输出改行内容的可打印字符
控制地址的输出形式 -A<基数> 用于输出显示中每行开头的那个字符的偏移地址(以文件开头的第一个字节的地址为 0 的偏移量):
- o:八进制形式输出地址信息,该值是默认值
- x:十六进制形式输出地址信息
- d:十进制形式输出地址信息
- n:不显示地址信息
用于控制数据的输出范围 -N <数字> 只显示文件中的前 <数字> 个字节,查看大文件时可以使用,也可以使用管道转递给 less
用于控制数据的输出范围 -j <数字> 跳过前面的 <数字> 个字节的内容来显示数据,可以与 -N 结合使用
输出控制 -v 显示所有内容行,主要是控制显示重复的内容行,默认重复的内容行使用*省略显示
输出控制 -w <数字> 用于设置每行显示的字节数
其他 --help 显示帮助信息

结语

od 命令是开发者的一个辅助工具,能够帮助开发分析二进制文件的数据。在本文中详细的介绍了 od 命令的使用方法,包含语法结构、使用示例以及选项的详细解释。

od 可以跨平台在 Linux 以及 FreeBSD 中使用,基本功能是相同的。