linux下od命令的使用

原文:http://blog.csdn.net/shylock_backer/article/details/46473283

名称:od
作用:格式化输出文件中的数据
提要:
         od [OPTION]... [FILE]...
         od [-abcdfilosx]... [FILE] [[+]OFFSET[.][b]]
     od --traditional [OPTION]... [FILE] [[+]OFFSET[.][b] [+][LABEL][.][b]]
说明:
常见的文件为文本文件和二进制文件。此命令主要用来查看保存在二进制文件中的值。比如,程序可能输出大量的数据记录,每个数据是一个单精度浮点数。这些数据记录存放在一个文件中,如果想查看下这个数据,这时候od命令就派上用场了。在我看来,od命令主要用来格式化输出文件数据,即对文件中的数据进行无二义性的解释。不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出他们的值。
如果没有指定文件名,或者文件名为“-”,则从标准输入读入数据
 
-A:指定地址基数,od命令的输出最左侧的1列为偏移量。默认的偏移量使用8进制,可以使用-A进行修改。
格式为:-A 参数.可以使用的参数有:d:十进制;o:八进制;x:十六进制;n不显示偏移量这一列。
 
-j:文件打开时,跳过的字节数量。
格式为:-j BYTES.BYTES是一个数值,用0开头表示8进制,用0x开头表示16进制,用b作为后缀表示1个字节,用k作为后缀表示1024个字节,用m作为后缀表示1048576个字节。
 
-N:用于限制输出的字节的数量
格式为:-N BYTES.BYTES的格式同上。
 
-S:用于指定输出的串占多少个图形字符的位置
格式为:-S BYTES.
 
-t:选择输出格式。
格式为:-t [acdfoux][size].
a:每个ASCII码对应的名字。
b:用八进制字节表示的字符对应的ASCII码值
d:有符号数值,SIZE个字节
f:浮点数,SIZE个字节
o:八进制数,SIZE个字节
u:无符号数值,SIZE个字节
x:十六进制数,size个字节
注意:这里的SIZE是一个数值或者是一个字母。字母的范围为:[CSILFD]。对于非f类型的,一般选择CSIL.其中C表示sizeof(char),S表示sizeof(short),I表示sizeof(int),L表示sizeof(long).如果类型为f,sizeof可以是F或者是D,分别表示sizeof(float)或者sizeof(double).
可以使用传统的格式:分别为:
-a:等价于 -t a.表示ASCII码的名字
-b:等价于-t o1,选择单字节,并且按照3个数值位的八进制数进行解释
-c:等价于-t c,选择ASCII码字符或者是转义字符
-d:等价于-t u2:选择无符号2字节单位
-f:等价于-t fF,选择单精度浮点数
-i:等价于-t dI,选择十进制整型
-l:等价于-t dL,选择十进制长整型
-o:等价于-t o2,选择两个字节的单元并按照八进制进行解释
-s:等价于-t d2,选择两字节单元并按照十进制解释
-x:等价于-t x2,选择两个字节单元,并作十六进制解释
 
-v:不用*代替重复的输出
 
-w:用于设置每行的宽度,即每行上输出的字节数
格式为:-w BYTES
 
举例说明如下:
说明:先准备一个tmp文件
[lichao@sg01 ~]$ echo abcdef g > tmp
[lichao@sg01 ~]$ cat tmp
abcdef g

说明:使用单字节八进制解释进行输出,注意左侧的默认地址格式为八字节 
[lichao@sg01 ~]$ od -b tmp
0000000 141 142 143 144 145 146 040 147 012
0000011

说明:使用ASCII码进行输出,注意其中包括转义字符 
[lichao@sg01 ~]$ od -c tmp
0000000   a   b   c   d   e   f       g  \n
0000011

说明:使用单字节十进制进行解释 
[lichao@sg01 ~]$ od -t d1 tmp
0000000   97   98   99  100  101  102   32  103   10
0000011

说明:设置地址格式为十进制 
[lichao@sg01 ~]$ od -A d -c tmp
0000000   a   b   c   d   e   f       g  \n
0000009

说明:设置地址格式为十六进制
[lichao@sg01 ~]$ od -A x -c tmp
000000   a   b   c   d   e   f       g  \n
000009

说明:跳过开始的两个字节 
[lichao@sg01 ~]$ od -j 2 -c tmp
0000002   c   d   e   f       g  \n
0000011

说明:跳过开始的两个字节,并且仅输出两个字节
[lichao@sg01 ~]$ od -N 2 -j 2 -c tmp
0000002   c   d
0000004

说明:每行仅输出1个字节
[lichao@sg01 ~]$ od -w1 -c tmp
0000000   a
0000001   b
0000002   c
0000003   d
0000004   e
0000005   f
0000006   
0000007   g
0000010  \n
0000011

说明:每行输出两个字节
[lichao@sg01 ~]$ od -w2 -c tmp
0000000   a   b
0000002   c   d
0000004   e   f
0000006       g
0000010  \n
0000011

说明:每行输出3个字节,并使用八进制单字节进行解释
[lichao@sg01 ~]$ od -w3 -b tmp
0000000 141 142 143
0000003 144 145 146
0000006 040 147 012
0000011

(转)linux下od命令的使用的更多相关文章

  1. 学号20175313 《实现Linux下od -tx -tc XXX的功能》第九周

    目录 MyOD 一.题目要求 二.题目理解 三.需求分析 四.设计思路 五.代码链接 六.代码实现过程中遇到的问题 七.运行结果截图 八.参考资料 MyOD 一.题目要求 编写MyOD.java 用j ...

  2. 实现Linux下od -tx -tc XXX的功能

    实现Linux下od -tx -tc XXX的功能 一.od命令 (1)功能 od命令用于将指定文件内容以八进制.十进制.十六进制.浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直 ...

  3. Linux下tail命令的使用方法

    Linux下tail命令的使用方法: linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,ta ...

  4. Linux下ps命令详解 Linux下ps命令的详细使用方法

    http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...

  5. 例解 Linux 下 Make 命令

    Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一.管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题.本文我们将用一些实例来讨论 make ...

  6. Linux下who命令之C语言实现

    Linux下who命令之C语言实现 Step1:前期准备 首先要有一个清楚的认识:linux中一切皆文件 实现who命令,who命令也是Linux中的一个文件,那我们怎么找到它呢?我们可以" ...

  7. linux下history命令显示历史指令记录的使用方法

    Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中.默认保存1000条,你也可以更改这个值 ...

  8. linux下svn命令使用大全

    最近经常使用svn进行代码管理,这些命令老是记不住,得经常上网查,终于找了一个linux下svn命令使用大全:1.将文件checkout到本地目录 svn checkout path(path是服务器 ...

  9. Linux下rz命令使用的实例详解

    Linux中rz命令和sz命令都可用于文件传输,而rz命令主要用于文件的上传,下面将通过几个实例来给大家详细介绍下Linux下rz命令的用法,一起来学习下吧. rz命令可以批量上传文件,当然也可上传单 ...

随机推荐

  1. rust borrow and move

    extern crate core; #[deriving(Show)] struct Foo { f : Box<int> } fn main(){ let mut a = Foo {f ...

  2. linux命令学习笔记(51):lsof命令

    lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在, 通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以如传输控制协 ...

  3. 1080 Graduate Admission (30)(30 分)

    It is said that in 2013, there were about 100 graduate schools ready to proceed over 40,000 applicat ...

  4. P1150 Peter的烟

    题目描述 Peter有n根烟,他每吸完一根烟就把烟蒂保存起来,k(k>1)个烟蒂可以换一个新的烟,那么Peter最终能吸到多少根烟呢? 输入输出格式 输入格式: 每组测试数据一行包括两个整数n( ...

  5. 打印菱形(Print Diamond/Lozenge)

      → ↓     *       * * *   * * * * *   * * *       *     总结了一下关于打印菱形的思路. 通常是从循环变量之间的映射关系入手,推导出相应的公式.这 ...

  6. C# 使用 StreamWriter 写入数据

    NetworkStream 类.MemoryStream类 和 FileStream 类都提供了以字节为基本单位的读写方法,但是这种方法首先将待写入的数据转换为字节序列后才能进行读写,当操作的是使用字 ...

  7. CentOS虚拟机通过主机WIFI上网

    0 环境简介 环境如下: (1)宿主机为WIN7系统,连接内网,同时通过本机的WIFI上外网: (2)虚拟机为VMWare12下的CentOS7系统. 1 虚拟机设置 选择NAT 模式: 2 宿主机W ...

  8. selectedIndex 属性可设置或返回下拉列表中被选选项的索引号。

    转自:https://blog.csdn.net/xxj19950917/article/details/73002046

  9. Elasticsearch学习概念之curl

    curl,简单认为是可以在命令行下访问url的一个工具.即增删改查. curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求. 查看curl的 ...

  10. VC代码生成里面的/MT /MTd /MD /MDd的意思

    VC代码生成里面的/MT /MTd /MD /MDd的意思. 意思上已经很明白了.但是往往很多人弄不清楚到底怎么选择. /MT是 "multithread, static version ” ...