Linux od命令详细介绍及用法实例

 更新时间:2017年01月09日 09:54:05   作者:Dablelv  
这篇文章主要介绍了Linux od命令详细介绍及用法实例的相关资料,这里对Linux od命令的格式,命令选项及用法一一介绍详解,需要的朋友可以参考下

Linux od命令详解

1.功能

od命令用于将指定文件内容以八进制、十进制、十六进制、浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直接显示在终端的字符。od命令系统默认的显示方式是八进制,名称源于Octal Dump。

常见的文件为文本文件和二进制文件。od命令主要用来查看保存在二进制文件中的值,按照指定格式解释文件中的数据并输出,不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值。

大家也可以了解一下hexdump命令,以十六进制输出,但感觉hexdump命令美誉od命令强大。

2.命令格式

od [<选项><参数>] [<文件名>]

3.命令选项

A<RADIX>,--address-radix=RADIX:选择以何种基数表示地址偏移;
-j<BYTES>,--skip-bytes=BYTES:跳过指定数目的字节;
-N,--read-bytes=BYTES:输出指定字节数;
-S<BYTES>, --strings[=BYTES]:输出长度不小于指定字节数的字符串;
-v,--output-duplicates:输出时不省略重复的数据; 
-w<BYTES>,--width=<BYTES>:设置每行显示的字节数,od默认每行显示16字节。如果选项--width不跟数字,默认显示32字节;
-t<TYPE>,--format=TYPE:指定输出格式,格式包括a、c、d、f、o、u和x,各含义如下:
 a:具名字符;
 c:ASCII字符或者反斜杠;
 d[SIZE]:十进制,正负数都包含,SIZE字节组成一个十进制整数;
 f[SIZE]:浮点,SIZE字节组成一个浮点数;
 o[SIZE]:八进制,SIZE字节组成一个八进制数;
 u[SIZE]:无符号十进制,只包含正数,SIZE字节组成一个无符号十进制整数;
 x[SIZE]:十六进制,SIZE字节为单位以十六进制输出,即输出时一列包含SIZE字节。
--help:在线帮助; 
--version:显示版本信息。

4.用法示例

(1)设置第一列偏移地址以十进制显示。

od -Ad testfile

偏移地址显示基数有:d for decimal, o for octal, x for hexadecimal or n for none。

(2)od命令不显示第一列偏移地址。

od -An testfile

(3)以十六进制输出,默认以四字节为一组(一列)显示。

od -tx testfile

(4)以十六进制输出,每列输出一字节。

od -tx1 testfile

(5)显示ASCII字符和ASCII字符名称,注意换行符显示方式的区别。

#显示ASCII字符
[b3335@localhost]$ echo lvlv|od -a
0000000  l  v  l  v nl
0000005

#显示ASCII字符名称
[b3335@localhost]$ echo lvlv|od -tc
0000000  l  v  l  v \n
0000005

(6)以十六进制显示的同时显示原字符。

[b3335@localhost]$ echo lvlv|od -tcx1
0000000  l  v  l  v \n
     6c 76 6c 76 0a
0000005

(7)指定每行显示512字节。

od -w512 -tx1 testfile

(8)od命令输出时去除列与列之间的空格符。

当我们需要将文件内容显示为十六进制,需要输出连续的单个字节,每个字节以十六进制显示。这时我们可以通过od命令将文件以单个字节为一组,十六进制输出在同一行,并去除每个字节之间的空格。目前还不知道怎么通过指定od命令的相关选项去除列与列之间的空格,也许od命令本身并不支持。我的做法是:

(8.1)使用-An不输出偏移地址;
(8.2)使用-v输出时不省略重复的数据;
(8.3)使用-tx1以单个字节为一组按照十六进制输出,-w1每列输出一个字节;
(8.4)最后通过管道传递给awk的标准输入,通过awk不换行输出所有行,拼接为一行输出。

具体命令如下:

od -An -w1 -tx1 testfile|awk '{for(i=1;i<=NF;++i){printf "%s",$i}}'

参考文献

[1]od帮助文档

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 详解Linux动态库生成与使用指南

    详解Linux动态库生成与使用指南

    这篇文章主要介绍了详解Linux动态库生成与使用指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 可以提高效率的十个Linux命令别名汇总

    可以提高效率的十个Linux命令别名汇总

    这篇文章主要给大家介绍了关于可以提高效率的十个Linux命令别名,文中通过示例代码介绍的非常详细,对大家学习或者使用Linux系统具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-05-05
  • Centos7.2 编译安装PHP7.0.2的步骤

    Centos7.2 编译安装PHP7.0.2的步骤

    本篇文章主要介绍了Centos7.2 编译安装PHP7.0.2的步骤。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 缓存服务器的建立原理分析

    缓存服务器的建立原理分析

    通常情况下我们运行程序的过程中会产生一些中间数据,这些中间数据需要在将来的某个时间读取。这就要求我们要把它存在一个提供高速存取的地方,最好的选择就是内存中。
    2008-10-10
  • Linux md5sum命令的使用方法

    Linux md5sum命令的使用方法

    这篇文章主要介绍了Linux md5sum命令的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Linux ssh服务器配置代码实例

    Linux ssh服务器配置代码实例

    这篇文章主要介绍了Linux ssh服务器配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • linux如何查看僵尸进程

    linux如何查看僵尸进程

    这篇文章主要介绍了linux如何查看僵尸进程问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • linux Dig命令使用大全

    linux Dig命令使用大全

    这篇文章主要介绍了linux Dig命令使用大全,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • win10系统下安装superset的步骤

    win10系统下安装superset的步骤

    这篇文章主要介绍了win10系统下安装superset的步骤,本文是基于python3.7 win10 64位下的环境安装,需要的朋友可以参考下
    2019-12-12
  • Linux基线检查与安全加固方式

    Linux基线检查与安全加固方式

    本文详细介绍了Linux安全加固的多个方面,包括账户管理、口令策略、SSH安全设置等,首先,对于账户管理,介绍了口令锁定策略、口令生存期、口令复杂度、密码重用限制以及禁止存在空密码账户等方面的检查和加固操作,其次,在服务管理方面
    2024-10-10

最新评论