Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux od 命令。

1、命令简介

od:转储八进制和其他格式的文件。用于查看文件的八进制或其他进制表示的工具。它允许用户以不同的进制(如八进制、十进制、十六进制)查看文件的内容,以便更好地理解文件的内部结构。

2、命令语法

od [OPTION]... [FILE]...
od [-abcdfilosx]... [FILE] [[+]OFFSET[.][b]]
od --traditional [OPTION]... [FILE] [[+]OFFSET[.][b] [+][LABEL][.][b]]

3、命令描述

将文件的明确表示形式(默认为八进制字节)写入标准输出。如果有多个文件参数,请按照列出的顺序将它们连接起来,形成输入。如果没有文件,或者FILE-,读取标准输入。

对于短选项,长选项的所有参数都是必须的。od 命令通常用于调试和分析文件,特别是在处理二进制文件时很有用。

4、命令选项

选项

描述

-A, --address-radix=RADIX

决定如何打印文件偏移量

-j, --skip-bytes=BYTES

首先跳过 BYTES 个输入字节

-N, --read-bytes=BYTES

限制转储到 BYTES 个输入字节

-S, --strings[=BYTES]

输出至少包含 BYTES 个图形字符的字符串

-t, --format=TYPE

选择输出格式或多个格式

-v, --output-duplicates

不使用 * 标记行抑制

-w, --width[=BYTES]

每个输出行输出 BYTES 个字节

--traditional

以传统形式接受参数

--help

显示此帮助信息并退出

--version

输出版本信息并退出

传统格式命令可混合使用,不同的格式可叠加:

选项

描述

-a

即 -t a,使用命名的字符,忽略高阶位

-b

即 -t o1,使用八进制单字节字符

-c

即 -t c,使用ASCII字符,或者反斜杠正名的特殊字符

-d

即 -t u2,使用无符号十进制双字节字符

-f

即 -t fF,指定浮点数对照输出格式

-i

即 -t dl,指定十进制整数对照输出格式

-l

即 -t dL,指定十进制长整数对照输出格式

-o

即 -t o2,指定双字节单位八进制数的对照输出格式

-s

即 -t d2,指定双字节单位十进制数的对照输出格式

-x

即 -t x2,指定双字节单位十六进制数的对照输出格式

如果两个调用格式都适用,系统会在最后一个运算量以"+"或数字开始

(如果有两个运算量)的情况下采用第二种格式。

偏移量是指 -j 偏移量。标签是第一个字节的伪地址,

随着累积过程递增。偏移量和标签如果冠以"0x"或"0X"前缀则

表示十六进制数;后缀"."代表八进制数,后缀"b"表示乘以 512。

TYPE 是由下面一种或几种参数组成的:

输出格式

描述

a

重定义字符,忽略高位字节

c

ASCII码字符或反斜线字串 (如 \n)

d[SIZE]

有符号十进制数,每个整数占指定尺寸的字节

f[SIZE]

浮点数,每个浮点数占指定尺寸的字节

o[SIZE]

八进制数,每个整数占指定尺寸的字节

u[SIZE]

无符号十进制数,每个整数占指定尺寸的字节

x[SIZE]

十六进制数,每个整数占指定尺寸的字节

尺寸应该是一个数字。对 doux 等类型来说,适用的尺寸有:

C 代表 sizeof(char)、S 代表 sizeof(short)、I 代表

sizeof(int),或 L 代表 sizeof(long);

如果类型是 f,可适用的尺寸有:

F 代表 sizeof(float)、D 代表sizeof(double),或 L 代表

sizeof(long double)。

当 RADIX 为"d"时代表十进制,为"o"时代表八进制,为"x"时代表十六进制,

"n"则代表无。

BYTES 是以0x 或0X 为前缀的十六进制数,可能有以下几种后缀:

b 512,kB 1000,K 1024,MB 1000*1000,M 1024*1024,

GB 1000*1000*1000,G 1024*1024*1024,对于T,P,E,Z,Y 同样适用。

为任何类型添加"z"后缀都将在每个输出行的行尾显示可显示字符

不带数字的--string 选项代表3;不带数字的--width 选项代表32

默认情况下od 使用 -A o -t oS -w16 参数。

5、使用示例

1)使用 od 命令

$  od -b urls.txt 
0000000   150 164 164 160 163 072 057 057 167 167 167 056 143 152 141 166
0000020   141 160 171 056 143 157 155 057 141 162 164 151 143 154 145 057
0000040   062 066 071 062 057 012                                        
0000046

2)使用单字节八进制解释进行输出,注意左侧的默认地址格式为八字节

od -c urls.txt 
0000000    h   t   t   p   s   :   /   /   w   w   w   .   c   j   a   v
0000020    a   p   y   .   c   o   m   /   a   r   t   i   c   l   e   /
0000040    2   6   9   2   /  \n                                        
0000046

3)使用ASCII码进行输出,注意其中包括转义字符

$ od -t d1 urls.txt 
0000000   104 116 116 112 115  58  47  47 119 119 119  46  99 106  97 118
0000020    97 112 121  46  99 111 109  47  97 114 116 105  99 108 101  47
0000040    50  54  57  50  47  10                                        
0000046

4)使用单字节十进制进行解释

$ d -A d -c urls.txt 
0000000    h   t   t   p   s   :   /   /   w   w   w   .   c   j   a   v
0000016    a   p   y   .   c   o   m   /   a   r   t   i   c   l   e   /
0000032    2   6   9   2   /  \n                                        
0000038

推荐文档