1 | od
|
2 | ===
|
3 |
|
4 | 输出文件的八进制、十六进制等格式编码的字节
|
5 |
|
6 | ## 补充说明
|
7 |
|
8 | **od命令** 用于输出文件的八进制、十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符。
|
9 |
|
10 | 常见的文件为文本文件和二进制文件。此命令主要用来查看保存在二进制文件中的值。比如,程序可能输出大量的数据记录,每个数据是一个单精度浮点数。这些数据记录存放在一个文件中,如果想查看下这个数据,这时候od命令就派上用场了。在我看来,od命令主要用来格式化输出文件数据,即对文件中的数据进行无二义性的解释。不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值。
|
11 |
|
12 | ### 语法
|
13 |
|
14 | ```shell
|
15 | od(选项)(参数)
|
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
|
51 | abcdef g
|
52 | ```
|
53 |
|
54 | 说明:先准备一个tmp文件
|
55 |
|
56 | ```shell
|
57 | [linuxde@localhost ~]$ od -b tmp
|
58 | 0000000 141 142 143 144 145 146 040 147 012
|
59 | 0000011
|
60 | ```
|
61 |
|
62 | 说明:使用单字节八进制解释进行输出,注意左侧的默认地址格式为八字节
|
63 |
|
64 | ```shell
|
65 | [linuxde@localhost ~]$ od -c tmp
|
66 | 0000000 a b c d e f g \n
|
67 | 0000011
|
68 | ```
|
69 |
|
70 | 说明:使用ASCII码进行输出,注意其中包括转义字符
|
71 |
|
72 | ```shell
|
73 | [linuxde@localhost ~]$ od -t d1 tmp
|
74 | 0000000 97 98 99 100 101 102 32 103 10
|
75 | 0000011
|
76 | ```
|
77 |
|
78 | 说明:使用单字节十进制进行解释
|
79 |
|
80 | ```shell
|
81 | [linuxde@localhost ~]$ od -A d -c tmp
|
82 | 0000000 a b c d e f g \n
|
83 | 0000009
|
84 | ```
|
85 |
|
86 | 说明:设置地址格式为十进制。
|
87 |
|
88 | ```shell
|
89 | [linuxde@localhost ~]$ od -A x -c tmp
|
90 | 000000 a b c d e f g \n
|
91 | 000009
|
92 | ```
|
93 |
|
94 | 说明:设置地址格式为十六进制
|
95 |
|
96 | ```shell
|
97 | [linuxde@localhost ~]$ od -j 2 -c tmp
|
98 | 0000002 c d e f g \n
|
99 | 0000011
|
100 | ```
|
101 |
|
102 | 说明:跳过开始的两个字节
|
103 |
|
104 | ```shell
|
105 | [linuxde@localhost ~]$ od -N 2 -j 2 -c tmp
|
106 | 0000002 c d
|
107 | 0000004
|
108 | ```
|
109 |
|
110 | 说明:跳过开始的两个字节,并且仅输出两个字节
|
111 |
|
112 | ```shell
|
113 | [linuxde@localhost ~]$ od -w1 -c tmp
|
114 | 0000000 a
|
115 | 0000001 b
|
116 | 0000002 c
|
117 | 0000003 d
|
118 | 0000004 e
|
119 | 0000005 f
|
120 | 0000006
|
121 | 0000007 g
|
122 | 0000010 \n
|
123 | 0000011
|
124 | ```
|
125 |
|
126 | 说明:每行仅输出1个字节
|
127 |
|
128 | ```shell
|
129 | [linuxde@localhost ~]$ od -w2 -c tmp
|
130 | 0000000 a b
|
131 | 0000002 c d
|
132 | 0000004 e f
|
133 | 0000006 g
|
134 | 0000010 \n
|
135 | 0000011
|
136 | ```
|
137 |
|
138 | 说明:每行输出两个字节
|
139 |
|
140 | ```shell
|
141 | [linuxde@localhost ~]$ od -w3 -b tmp
|
142 | 0000000 141 142 143
|
143 | 0000003 144 145 146
|
144 | 0000006 040 147 012
|
145 | 0000011
|
146 | ```
|
147 |
|
148 | 说明:每行输出3个字节,并使用八进制单字节进行解释
|
149 |
|
150 |
|