UNPKG

3.98 kBMarkdownView Raw
1od
2===
3
4输出文件的八进制、十六进制等格式编码的字节
5
6## 补充说明
7
8**od命令** 用于输出文件的八进制、十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符。
9
10常见的文件为文本文件和二进制文件。此命令主要用来查看保存在二进制文件中的值。比如,程序可能输出大量的数据记录,每个数据是一个单精度浮点数。这些数据记录存放在一个文件中,如果想查看下这个数据,这时候od命令就派上用场了。在我看来,od命令主要用来格式化输出文件数据,即对文件中的数据进行无二义性的解释。不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值。
11
12### 语法
13
14```shell
15od(选项)(参数)
16```
17
18### 选项
19
20```shell
21-a:此参数的效果和同时指定“-ta”参数相同;
22-A:<字码基数>:选择以何种基数计算字码;
23-b:此参数的效果和同时指定“-toC”参数相同;
24-c:此参数的效果和同时指定“-tC”参数相同;
25-d:此参数的效果和同时指定“-tu2”参数相同;
26-f:此参数的效果和同时指定“-tfF”参数相同;
27-h:此参数的效果和同时指定“-tx2”参数相同;
28-i:此参数的效果和同时指定“-td2”参数相同;
29-j<字符数目>或--skip-bytes=<字符数目>:略过设置的字符数目;
30-l:此参数的效果和同时指定“-td4”参数相同;
31-N<字符数目>或--read-bytes=<字符数目>:到设置的字符树目为止;
32-o:此参数的效果和同时指定“-to2”参数相同;
33-s<字符串字符数>或--strings=<字符串字符数>:只显示符合指定的字符数目的字符串;
34-t<输出格式>或--format=<输出格式>:设置输出格式;
35-v或--output-duplicates:输出时不省略重复的数据;
36-w<每列字符数>或--width=<每列字符数>:设置每列的最大字符数;
37-x:此参数的效果和同时指定“-h”参数相同;
38--help:在线帮助;
39--version:显示版本信息。
40```
41
42### 参数
43
44文件:指定要显示的文件。
45
46### 实例
47
48```shell
49[linuxde@localhost ~]$ echo abcdef g > tmp
50[linuxde@localhost ~]$ cat tmp
51abcdef g
52```
53
54说明:先准备一个tmp文件
55
56```shell
57[linuxde@localhost ~]$ od -b tmp
580000000 141 142 143 144 145 146 040 147 012
590000011
60```
61
62说明:使用单字节八进制解释进行输出,注意左侧的默认地址格式为八字节
63
64```shell
65[linuxde@localhost ~]$ od -c tmp
660000000 a b c d e f g \n
670000011
68```
69
70说明:使用ASCII码进行输出,注意其中包括转义字符
71
72```shell
73[linuxde@localhost ~]$ od -t d1 tmp
740000000 97 98 99 100 101 102 32 103 10
750000011
76```
77
78说明:使用单字节十进制进行解释
79
80```shell
81[linuxde@localhost ~]$ od -A d -c tmp
820000000 a b c d e f g \n
830000009
84```
85
86说明:设置地址格式为十进制。
87
88```shell
89[linuxde@localhost ~]$ od -A x -c tmp
90000000 a b c d e f g \n
91000009
92```
93
94说明:设置地址格式为十六进制
95
96```shell
97[linuxde@localhost ~]$ od -j 2 -c tmp
980000002 c d e f g \n
990000011
100```
101
102说明:跳过开始的两个字节
103
104```shell
105[linuxde@localhost ~]$ od -N 2 -j 2 -c tmp
1060000002 c d
1070000004
108```
109
110说明:跳过开始的两个字节,并且仅输出两个字节
111
112```shell
113[linuxde@localhost ~]$ od -w1 -c tmp
1140000000 a
1150000001 b
1160000002 c
1170000003 d
1180000004 e
1190000005 f
1200000006
1210000007 g
1220000010 \n
1230000011
124```
125
126说明:每行仅输出1个字节
127
128```shell
129[linuxde@localhost ~]$ od -w2 -c tmp
1300000000 a b
1310000002 c d
1320000004 e f
1330000006 g
1340000010 \n
1350000011
136```
137
138说明:每行输出两个字节
139
140```shell
141[linuxde@localhost ~]$ od -w3 -b tmp
1420000000 141 142 143
1430000003 144 145 146
1440000006 040 147 012
1450000011
146```
147
148说明:每行输出3个字节,并使用八进制单字节进行解释
149
150