Linux od与hexdump命令

od命令:以指定格式输出文件内容
常用格式:od -Ax -tx1 filename
直接格式:od filename 等价 od -o filename
语法:od [-abcdfsiloxv] [-An] [-jn] [-Nn] [-tn] [-wn] [--help] [--version] [file] #其中-A,-j,-N,-t后面可以加空格再接n,即-A n,-j n,-N n,-t n,而-w后面必须直接接n。
-A:指定地址偏移量的进制格式,d,o,x,n,十进制,八进制,十六进制,不打印地址偏移,默认八进制
-j:跳过n个字节
-N:限制读入,只从文件读入前n个字节
-t:输出格式,a,c,d[n],f[n],o[n],u[n],x[n],ASCII码(特殊字符用缩写表示),ASCII码(特殊字符用转义字符方式表示),有符号十进制整数(每个整数n字节),浮点数,八进制,无符号十进制整数,十六进制
-w:显示的宽度(列数)
-a:等价-t a
-b:等价-t o1
-c:等价-t c
-d:等价-t u2
-f:等价-t fF
-i:等价-t dI
-l:等价-t dL
-o:等价-t o2
-s:等价-t d2
-x:等价-t x2
-v:不使用*标记重复行(默认,如果输出的连续几行相同,从第二行开始的重复行用*标记)
PS:-tn中对于n为d,o,u,x有C=sizeof(char),S=sizeof(short),I=sizeof(int),L=sizeof(long),对于n为f,有F=sizeof(float),D=sizeof(double),L=sizeof(long double)
PS:可是使用管道符将数据传给od,例如echo ABCD|od -Ax -tx1
PS:od命令最终的输出总会多一行(空白行)
PS:od实现多种显示格式同时输出(高级用法),如:
[root@my ~]# echo ABCD|od -td1 -tc
0000000 65 66 67 68 10
A B C D \n
0000005
可简写为:
[root@my ~]# echo ABCD|od -td1c
0000000 65 66 67 68 10
A B C D \n
0000005
或:
[root@my ~]# echo ABCD|od -tdCc
0000000 65 66 67 68 10
A B C D \n
0000005
也可以更多的不同显示格式同时输出:
[root@my ~]# echo ABCD|od -tdCx1c #亦-t dC -tx1 -tc
0000000 65 66 67 68 10
41 42 43 44 0a
A B C D \n
0000005


hexdump命令:以十六进制方式显示文件内容
语法:hexdump [-Cbcdox] [-sn] [-nLength] [-e string] [file]
常用格式:hexdump -C filename
直接格式:hexdump filename 等价 hexdump -x filename
-nLength:等价od的-N
-C:同时输出十六进制和ASCII码(特殊字符用.表示)
-b:单字节八进制显示,等价od的-to1
-c:ASCII码显示(特殊字符使用转义字符方式显示),等价od的-tc1
-d:双字节十进制显示,等价od的-td2
-o:双字节八进制显示,等价od的-to2
-x:双字节十六进制显示,等价od的-tx2
-sn:从偏移量n开始输出
-e string:指定格式字符串,略

你可能感兴趣的:(Linux od与hexdump命令)