热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linuxod命令详细介绍及用法实例

这篇文章主要介绍了Linuxod命令详细介绍及用法实例的相关资料,这里对Linuxod命令的格式,命令选项及用法一一介绍详解,需要的朋友可以参考下

Linux od命令详解

1.功能

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

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

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

2.命令格式

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

3.命令选项

A,--address-radix=RADIX:选择以何种基数表示地址偏移;
-j,--skip-bytes=BYTES:跳过指定数目的字节;
-N,--read-bytes=BYTES:输出指定字节数;
-S, --strings[=BYTES]:输出长度不小于指定字节数的字符串;
-v,--output-duplicates:输出时不省略重复的数据; 
-w,--width=:设置每行显示的字节数,od默认每行显示16字节。如果选项--width不跟数字,默认显示32字节;
-t,--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帮助文档

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


推荐阅读
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文详细介绍了如何在预装Ubuntu系统的笔记本电脑上安装Windows 7。针对没有光驱的情况,提供了通过USB安装的具体方法,并解决了分区、驱动器无法识别等问题。 ... [详细]
  • Linux环境下C语言实现定时向文件写入当前时间
    本文介绍如何在Linux系统中使用C语言编程,实现在每秒钟向指定文件中写入当前时间戳。通过此示例,读者可以了解基本的文件操作、时间处理以及循环控制。 ... [详细]
  • 本文详细介绍了Hive中用于日期和字符串相互转换的多种函数,包括从时间戳到日期格式的转换、日期到时间戳的转换,以及如何处理不同格式的日期字符串。通过这些函数,用户可以轻松实现日期和字符串之间的灵活转换,满足数据处理中的各种需求。 ... [详细]
  • 从码农到创业者:我的职业转型之路
    在观察了众多同行的职业发展后,我决定分享自己的故事。本文探讨了为什么大多数程序员难以成为架构师,并阐述了我从一家外企离职后投身创业的心路历程。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 本文详细介绍了 Python 中的条件语句和循环结构。主要内容包括:1. 分支语句(if...elif...else);2. 循环语句(for, while 及嵌套循环);3. 控制循环的语句(break, continue, else)。通过具体示例,帮助读者更好地理解和应用这些语句。 ... [详细]
  • 2012年7月30日,语言岛团队宣布其智能记单词软件V0.3.4.554版本正式开源。该版本不仅支持跨平台使用,还引入了多项创新功能,旨在帮助用户更高效地记忆单词。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • Linux环境下进程间通信:深入解析信号机制
    本文详细探讨了Linux系统中信号的生命周期,从信号生成到处理函数执行完毕的全过程,并介绍了信号编程中的注意事项和常见应用实例。通过分析信号在进程中的注册、注销及处理过程,帮助读者理解如何高效利用信号进行进程间通信。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 对于许多初学者而言,遇到总线错误(bus error)或段错误(segmentation fault/core dump)是极其令人困扰的。本文详细探讨了这两种错误的成因、表现形式及解决方法,并提供了实用的调试技巧。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
author-avatar
dancejust25679
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有