linux命令实例教程,Linux xxd命令入门示例教程
你是否需要使用二进制或十六进制格式显示文件内容? 寻找可以执行此操作的命令行实用程序? 那,你很幸运,因为存在一个名为xxd的命令可以为你做到这一点。 在本教程中,我们将使用一些易于理解的示例来讨论xxd。 但在我们这样做之前,值得一提的是这里的所有例子都是在Ubuntu 18.04 LTS机器上测试过的。
xxd 命令可以将指定文件或标准输入以十六进制转储,也可以把十六进制转储转换成原来的二进制形式。
Linux xxd 命令
Linux中的xxd命令允许您创建一个hexdump甚至反过来。 以下是它的语法:
xxd [OPTIONS] [file]
以下是该工具的手册页的解释:
xxd创建给定文件或标准输入的十六进制转储。 它还可以将十六进制转储转换回其原始二进制形式。 与uuencode(1) 和 uudecode(1)一样,它允许以“mail-safe”ASCII表示传输二进制数据,但具有解码到标准输出的优点。 而且,它可以用于执行二进制文件修补。
下面是一些Q&A风格的例子,可以让您更好地了解xxd是如何工作的。
Q1. 如何使用xxd命令?
这很简单。 例如,假设您有一个文本文件'linuxidc.com.txt',其内容如下所示:
No.|Country|Yes/No
01|China|Y
02|US|Y
03|Australia|Y
04|India|N
05|Russia|Y
06|Japan|Y
07|Singapore|Y
08|South Korea|N
09|Finland|Y
10|Ireland|Y
以下是如何使用xxd将文件内容转换为十六进制:
linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ xxd linuxidc.com.txt
输出如下:
00000000: 4e6f 2e7c 436f 756e 7472 797c 5965 732f No.|Country|Yes/
00000010: 4e6f 0a30 317c 496e 6469 617c 590a 3032 No.01|India|Y.02
00000020: 7c55 537c 590a 3033 7c41 7573 7472 616c |US|Y.03|Austral
00000030: 6961 7c59 0a0a 3034 7c43 6869 6e61 7c4e ia|Y..04|China|N
00000040: 0a30 357c 5275 7373 6961 7c59 0a30 367c .05|Russia|Y.06|
00000050: 4a61 7061 6e7c 590a 0a30 377c 5369 6e67 Japan|Y..07|Sing
00000060: 7061 6f72 657c 590a 3038 7c53 6f75 7468 paore|Y.08|South
00000070: 204b 6f72 6561 7c4e 0a30 397c 4669 6e61 Korea|N.09|Fina
00000080: 6c61 6e64 7c59 0a31 307c 4972 656c 616e land|Y.10|Irelan
00000090: 647c 590a d|Y.
Q2. 如何用xxd跳过几行?
假设您不希望完整文件的hexdump。 相反,您希望该工具从特定行开始转换。 然后可以使用-s命令实现。
例如,如果您希望xxd从第3行开始生成十六进制转储,那么您可以告诉xxd如何执行此操作:
linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ xxd -s 0x30 linuxidc.com.txt
这是产生的输出:
00000030: 6961 7c59 0a0a 3034 7c43 6869 6e61 7c4e ia|Y..04|China|N
00000040: 0a30 357c 5275 7373 6961 7c59 0a30 367c .05|Russia|Y.06|
00000050: 4a61 7061 6e7c 590a 0a30 377c 5369 6e67 Japan|Y..07|Sing
00000060: 7061 6f72 657c 590a 3038 7c53 6f75 7468 paore|Y.08|South
00000070: 204b 6f72 6561 7c4e 0a30 397c 4669 6e61 Korea|N.09|Fina
00000080: 6c61 6e64 7c59 0a31 307c 4972 656c 616e land|Y.10|Irelan
00000090: 647c 590a d|Y.
因此,在这种情况下,您可以看到hexdump在第3行开始生成。
Q3. 如何将xxd输出限制为特定长度?
在上一节中,我们讨论了如何使xxd从特定点开始转换。 但也有一种方法可以将其转换限制在特定点。 这可以使用-l命令行选项完成。
例如,要确保xxd仅为linuxidc.com.txt的前三行创建转储,请按以下方式使用它:
linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ xxd -l 0x30 linuxidc.com.txt
这是它产生的输出:
00000000: 4e6f 2e7c 436f 756e 7472 797c 5965 732f No.|Country|Yes/
00000010: 4e6f 0a30 317c 496e 6469 617c 590a 3032 No.01|India|Y.02
00000020: 7c55 537c 590a 3033 7c41 7573 7472 616c |US|N.03|Austral
Q4. 如何设置列长?
如果希望xxd在输出中生成更少或更多的列,请使用-c选项并指定其中的列数。 这是使用此选项的示例命令:
linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ xxd -c 5 linuxidc.com.txt
输出如下:
00000000: 4e6f 2e7c 43 No.|C
00000005: 6f75 6e74 72 ountr
0000000a: 797c 5965 73 y|Yes
0000000f: 2f4e 6f0a 30 /No.0
00000014: 317c 496e 64 1|Ind
00000019: 6961 7c59 0a ia|Y.
0000001e: 3032 7c55 53 02|US
00000023: 7c59 0a30 33 |Y.03
00000028: 7c41 7573 74 |Aust
0000002d: 7261 6c69 61 ralia
00000032: 7c59 0a0a 30 |Y..0
00000037: 347c 4368 69 4|Chi
0000003c: 6e61 7c4e 0a na|N.
00000041: 3035 7c52 75 05|Ru
00000046: 7373 6961 7c ssia|
0000004b: 590a 3036 7c Y.06|
00000050: 4a61 7061 6e Japan
00000055: 7c59 0a0a 30 |Y..0
0000005a: 377c 5369 6e 7|Sin
0000005f: 6770 616f 72 gpaor
00000064: 657c 590a 30 e|Y.0
00000069: 387c 536f 75 8|Sou
0000006e: 7468 204b 6f th Ko
00000073: 7265 617c 4e rea|N
00000078: 0a30 397c 46 .09|F
0000007d: 696e 616c 61 inala
00000082: 6e64 7c59 0a nd|Y.
00000087: 3130 7c49 72 10|Ir
0000008c: 656c 616e 64 eland
00000091: 7c59 0a |Y.
所以你可以看到输出中只产生了5列。
Q5. 如何让xxd产生二进制转储?
是的,这也是可能的。 -b命令行选项使xxd以二进制数字生成转储。 以下是该手册页中有关此工具的说明:
-b |-Bits
切换到位(二进制数字)转储,而不是hexdump。 此选项将八位字节写为八位“1”和“0”
正常的十六进制转储。 每行前面都有一个十六进制的行号,后跟一个ascii(或ebcdic表示。命令行开关-r, -p, -i不适用于此模式。
这是一个例子:
linuxidc@linuxidc:~/www.linuxidc.com/Linux公社 -$ xxd -b linuxidc.com.txt
总结
所以你可以看到,如果你处理十六进制和二进制文件内容,xxd命令很有用。 在本教程中,我们刚刚讨论了xxd提供的一些基本选项。 完成练习后,请访问该工具的手册页以了解有关它的更多信息。
linux命令实例教程,Linux xxd命令入门示例教程相关推荐
- python菜鸟基础教程-终于懂得python入门菜鸟教程
Python语言是一种典型的脚本语言,简洁,语法约束少,接近人类语言.有丰富的数据结构,例如列表.字典.集合等.具有可移植性,支持面向过程和面向对象编程,并且开源.以下是小编为你整理的python入门 ...
- python基础教程菜鸟教程-终于懂得python入门菜鸟教程
Python语言是一种典型的脚本语言,简洁,语法约束少,接近人类语言.有丰富的数据结构,例如列表.字典.集合等.具有可移植性,支持面向过程和面向对象编程,并且开源.以下是小编为你整理的python入门 ...
- python爬虫入门实例-终于领会python爬虫入门示例
随着人工智能 大数据的火热 Python成为了广大科学家和普通大众的学习语言.在学习Python的过程中 有很多人感到迷茫 不知道自己该从什么地方入手,今天我们就来说一些新手该如何学习Python编程 ...
- 阿里云服务器购买详细教程以及建站入门基础教程
本系列教程汇总: 买了域名一定需要备案吗?什么情况下不需要备案? 如何购买阿里云服务器(图文教程) 如何购买阿里云香港服务器(图文教程) 如何购买阿里云学生服务器(图文教程) 阿里云是国内第一大云服务 ...
- python基础教程运行程序_Python入门基础教程:WSGI
原标题:Python入门基础教程:WSGI WSGI 简介 WSGI 是什么 WSGI 是 Python Web Server Gateway Interface 的缩写,是描述 Web 服务器与 P ...
- linux程序实例获取,Linux命令备忘实例(4)——获取内容
Linux中的所有内容都是以文件的方式表示的,会有很多需求需要我们获取文件的内容,查看部分或者全部内容.当然最直接方式就是使用编辑器打开文件查看,比如vim.vi.emacs等.这里主要关注的是she ...
- linux挂载media装服务,CentOS8服务器入门系列教程(五):Linux挂载光盘、yum安装软件包...
不废话,直接上货!!!旨在为您解决开发中遇到的疑难杂症,文末有大厂必备资料分享. 一.环境准备 二.步骤 本篇文章分享的是如何用yum软件包管理器安装光盘中自带的软件包,我们以iptables.ser ...
- linux搭建markdown服务,Markdown新手快速入门基础教程及Ubuntu下的安装
Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档. Markdown 的目标是实现「易读易写」. Markdown 的特点就是,让写作变得更简单,我们不用再考虑如何排版 ...
- linux waitpid实例,【Linux】僵尸进程,孤儿进程以及wait函数,waitpid函数(有样例,分析很详细)...
本文内容: 1.僵尸进程,孤儿进程的定义,区别,产生原因,处理方法 2.wait函数,waitpid函数的分析,以及比较 背景:由于子进程的结束和父进程的运行是一个异步的过程,即父进程永远无法预测子进 ...
最新文章
- 优盘中发现计算机病毒怎么办,【网警课堂】教你解决U盘使用中出现的各种问题!...
- Servlet课程0425(五) sendRedirect实现不同页面共享数据
- JAVA笔记14__多线程共享数据(同步)/ 线程死锁 / 生产者与消费者应用案例 / 线程池...
- 《小团队构建大网站:中小研发团队架构实践》送书活动结果公布
- 崩溃bug日志总结2
- bzoj 3238: [Ahoi2013]差异
- 网络拓扑Visio式的定制
- 为什么要用Web Service
- angular js 使用pdf.js_胶水(框架) Stencil.js
- C++中之---数组和vector
- 才知道系列之GroupOn
- 阿里是怎么做全链路压测的?
- jav中spark迁移hive到mongo(更新数据)
- Testin云测技术沙龙在沪召开,云监控预警成关注重点
- TSINGSEE青犀视频开发安全帽智能检测识别经验分享
- 虚拟系统共享文件夹目录下没有文件
- 路缘石成型机工艺结构和使用标准解读
- 计算机控制实验PID数字控制器设计,实验二数字PID控制器的设计
- 日志审计Graylog审计华为交换机用户登录日志
- HiKey软硬件开发环境及其调试