利用od这个命令,可以将数据文件或者是二进制文件的内容数据读出来。虽然读出的来数值默认是使用非文字档,即是 16 进制的数值来显示的,不过,我们还是可以透过 -t c 的选项与参数来将数据内的字节以 ASCII 类型的字节来显示, 虽然对于一般使用者来说,这个命令的用处可能不大,但是对于工程师来说,这个命令可以将二进制文件的内容作一个大致的输出,他们可以看出其中的含义。
命令格式:
od [OPTION]... [FILE]...
命令参数:
-t :后面可以接各种『类型 (TYPE)』的输出,例如:
a :利用默认的字节来输出;
c :使用 ASCII 字节来输出
d[size] :利用十进制(decimal)来输出数据,每个整数占用 size bytes ;
f[size] :利用浮点数值(floating)来输出数据,每个数占用 size bytes ;
o[size] :利用八进制(octal)来输出数据,每个整数占用 size bytes ;
x[size] :利用十六进制(hexadecimal)来输出数据,每个整数占用 size bytes ;
命令示例:
1.将/usr/bin/passwd的内容使用ASCII方式来输出
1
2
3
4
5
6
|
[root@w ~]
# od -t c /usr/bin/passwd
0000000 177 E L F 002 001 001 \0 \0 \0 \0 \0 \0 \0 \0 \0
0000020 003 \0 > \0 001 \0 \0 \0 200 \0 \0 \0 \0 \0 \0
0000040 @ \0 \0 \0 \0 \0 \0 \0 0 q \0 \0 \0 \0 \0 \0
0000060 \0 \0 \0 \0 @ \0 8 \0 \t \0 @ \0 034 \0 033 \0
....后面略.....
|
注:最左边第一栏是以 8 进位来表示bytes数。以上面范例来说,第二栏0000020代表开头是
第 16 个 byes (2x8) 的内容之意。
2.将/etc/issue这个文件的内容以八进制值与ASCII的对照表
1
2
3
4
5
6
7
8
|
[root@w ~]
# od -t oCc /etc/issue
0000000 103 145 156 164 117 123 040 162 145 154 145 141 163 145 040 066
C e n t O S r e l e a s e 6
0000020 056 065 040 050 106 151 156 141 154 051 012 113 145 162 156 145
. 5 ( F i n a l ) \n K e r n e
0000040 154 040 134 162 040 157 156 040 141 156 040 134 155 012 012
l \ r o n a n \ m \n \n
0000057
|
注:如上所示,可以发现每个字节可以对应到的数值为何!
例如e对应的记录数值为145,转成十进位:1x8^2+4x8+5=101。
本文转自cix123 51CTO博客,原文链接:http://blog.51cto.com/zhaodongwei/1766334,如需转载请自行联系原作者