首页 > 系统相关 >每天一个 Linux 命令(2):od

每天一个 Linux 命令(2):od

时间:2024-06-04 11:13:22浏览次数:16  
标签:输出 字节 十六进制 od 命令 Linux sizeof SIZE

功能简介

od(Octal Dump)命令用于将指定文件内容以八进制、十进制、十六进制、浮点格式或ASCII编码字符方式显示,通常用于显示或查看文件中不能直接显示在终端的字符。od命令系统默认的显示方式是八进制。 常见的文件为文本文件和二进制文件。od命令主要用来查看保存在二进制文件中的值,按照指定格式解释文件中的数据并输出,不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值。 大家也可以了解一下hexdump命令,以十六进制输出,但感觉hexdump命令没有od命令强大。

命令格式

 
od [OPTION]... [FILE]...
 

选项说明

 
-A RADIX --address-radix=RADIX #选择以何种基数表示地址偏移 -j BYTES --skip-bytes=BYTES #跳过指定数目的字节 -N BYTES --read-bytes=BYTES #输出指定字节数 -S [BYTES] --strings[=BYTES] #输出长度不小于指定字节数的字符串,BYTES 缺省为 3 -v --output-duplicates #输出时不省略重复的数据 -w [BYTES] --width[=BYTES] #设置每行显示的字节数,BYTES 缺省为 32 字节 -t TYPE --format=TYPE #指定输出格式,格式包括 a、c、d、f、o、u 和 x,各含义如下: a:具名字符;比如换行符显示为 nl c:可打印字符或反斜杠表示的转义字符;比如换行符显示为 \n d[SIZE]:SIZE 字节组成一个有符号十进制整数。SIZE 缺省为 sizeof(int) f[SIZE]:SIZE 字节组成一个浮点数。SIZE 缺省为 sizeof(double) o[SIZE]:SIZE 字节组成一个八进制整数。SIZE 缺省为 sizeof(int) u[SIZE]:SIZE 字节组成一个无符号十进制整数。SIZE 缺省为 sizeof(int) x[SIZE]:SIZE 字节组成一个十六进制整数。SIZE 缺省为 sizeof(int) SIZE可以为数字,也可以为大写字母。如果 TYPE 是 [doux] 中的一个,那么SIZE 可以为C = sizeof(char),S = sizeof(short),I = sizeof(int),L = sizeof(long)。如果 TYPE 是 f,那么 SIZE 可以为 F = sizeof(float),D = sizeof(double) ,L = sizeof(long double) --help #在线帮助 --version #显示版本信息
 

常用示例

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命令本身并不支持。我的做法是:
  • (a)使用-An不输出偏移地址;
  • (b)使用-v输出时不省略重复的数据;
  • (c)使用-tx1以单个字节为一组按照十六进制输出,-w1每列输出一个字节;
  • (d)最后通过管道传递给 awk 的标准输入,通过awk不换行输出所有行,拼接为一行输出。
具体命令如下:
 
od -An -w1 -tx1 testfile|awk '{for(i=1;i<=NF;++i){printf "%s",$i}}'
 
 

标签:输出,字节,十六进制,od,命令,Linux,sizeof,SIZE
From: https://www.cnblogs.com/xxllx/p/18230393

相关文章

  • redis - [03] 配置&命令
    题记部分 一、配置(Config)  二、命令(Command)(1)启动redis服务:redis-server.exeredis.windows.conf(2)连接redis-server:redis-cli-hhost-pport-apassword(3)查看key是否存在:existsmyKey(4)查看key的值:getmyKey(5)序列化给定key,返回序列化的值(不会改变key的值):dumpmy......
  • (nice!!!)LeetCode 3067. 在带权树网络中统计可连接服务器对数目(深度优先搜索dfs、树)
    3067.在带权树网络中统计可连接服务器对数目思路:节点数最多1000,那么我们0(n^2)的时间复杂度就ok了。我们可以用一层for循环遍历每一个点i,然后第二层for循环遍历每一条可能的边j,通过用dfs来找到符合“到根节点i的距离可以被signalSpeed整除”的点。不同子节点之间两两组......
  • 在Linux中,如何在Linux中进行网络资源调度?
    在Linux中进行网络资源调度主要涉及控制网络带宽、管理网络流量以及优化网络性能。以下是一些关键步骤和工具用于进行网络资源调度:1.使用tc(TrafficControl)工具tc是Linux中用于网络资源调度的主要工具,它允许你创建和管理网络流量控制规则。查看现有规则:sudotcqdiscshow......
  • 在Linux中,如何在Linux中进行系统资源调度?
    在Linux中进行系统资源调度主要涉及对CPU、内存、磁盘I/O和网络等资源的分配和管理。Linux内核负责资源调度,但是管理员可以通过配置和调整来优化资源的使用。以下是一些关键步骤和策略:1.CPU调度CPU调度主要通过内核的调度器来管理,Linux提供了多种调度器,如CFS(完全公平调度器)等。......
  • 关于linux 系统inode快耗尽问题处理!
    一、inode是什么?要想理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"......
  • 在Linux中,如何在Linux中进行任务调度?
    在Linux中进行任务调度通常涉及使用cron守护进程和at命令。这些工具允许你安排任务在特定时间或在满足特定条件时自动执行。以下是使用这些工具进行任务调度的详细步骤:1.使用cron进行任务调度cron是Linux中用于任务调度的主要工具,它可以按照预定的时间表执行任务。编辑cronta......
  • 在Linux中,如何进行系统资源的隔离?
    在Linux中进行系统资源隔离的目的是确保不同的应用程序或用户之间的资源使用不会相互影响,从而提高系统的稳定性和安全性。以下是一些关键步骤和工具用于实现资源隔离:1.使用cgroups(ControlGroups)cgroups是一种Linux内核特性,用于限制、记录和隔离进程组使用的资源。安装cgrou......
  • 静态资源服务器命令行工具
    目录一、静态资源服务器命令行工具一、静态资源服务器命令行工具#!/usr/bin/envnode//npmiyargsconstyargs=require('yargs')constServer=require('../src/app')constargv=yargs.option('d',{alias:'root',demand:'false&......
  • Body Brep Geometry
    BodyBrepGeometryBodyBrepGeometry是通过分面边界表示模型来表示产品的3D形状。应使用保持该几何表示的IfcShapeResentation的以下属性值:IfcShapeRepresentation.RepresentationIdentifier ='Body'IfcShapeRepresentation.RepresentationType ='Brep'IfcShapeReprese......
  • Node.js技术详解与前端工程化应用
    目录Node.js技术详解与前端工程化应用一、什么是Node.jsNode.js的作用什么是前端工程化Node.js为什么能执行JS二、Node.js的安装及使用步骤Node.js安装步骤使用Node.js2.1介绍fs模块2.2介绍path模块2.3介绍URL中的端口号2.4介绍http模块-创建Web服务三、Node.js模......