当前位置: 欣欣网 > 码农

Linux下的dd命令真心强大实用~

2024-02-01码农

关注上方 浩道Linux ,回复 资料 ,即可获取海量 L inux Python 网络通信、网络安全 等学习资料!

前言

大家好,这里是 浩道Linux ,主要给大家分享 L inux P ython 网络通信、网络安全等 相关的IT知识平台。

今天浩道跟大家分享Linux下一个强大实用的Linux命令,即dd命令,相信你熟悉之后,可以感受到它强大实用之处。一起看看!

一、dd命令可以干什么

Linux的dd命令是一个强大的磁盘操作工具,用于在Linux和其他UNIX-like操作系统中进行低级别的数据转换和拷贝操作。 它可以用于复制文件、转换文件格式、创建磁盘映像以及进行磁盘备份和恢复等操作。

dd命令有其如下几个特点:

1、强大的数据转换和拷贝功能: dd命令可以用来复制和转换文件、设备等,并且在拷贝过程中可以进行格式转换。它能够读取和写入指定的数据块,支持多种不同的数据块大小和转换方式,可以实现复杂的数据处理任务。

2、灵活的参数和选项: dd命令具有许多参数和选项,可以根据需要进行灵活的配置。例如,可以使用「if=」选项指定输入文件,使用「of=」选项指定输出文件,还可以设置块大小、转换方式等。这些选项提供了很大的灵活性,使得dd命令可以满足各种不同的需求。

3、 底层数据处理: dd命令在底层进行数据处理,可以与操作系统底层进行交互。这使得它可以用于一些需要直接操作底层数据的任务,例如创建磁盘镜像、转换文件格式等。

4、需要谨慎使用: 虽然dd命令非常强大,但使用不当可能导致数据丢失或损坏。因此,在使用dd命令之前,需要仔细了解其参数和选项的含义,并确保命令的正确性。此外,还需要谨慎处理数据,确保不会意外地覆盖或删除重要数据。

二、dd命令语法

dd命令的基本语法如下所示:

dd [option]...

其中 option 是dd命令的可选参数,用于指定dd命令的功能和操作。

以下是一个使用dd命令的示例,将一个名为input.txt的文件拷贝到另一个名为output.txt的文件中,并且每次读入和写出的字节数为1024字节

dd if=input.txt of=output.txt ibs=1024 obs=1024

以下是dd命令的常用参数和选项:

1、if=文件名: 指定输入文件名,默认为标准输入。

2、of=文件名: 指定输出文件名,默认为标准输出。

3、ibs=bytes: 一次读入bytes个字节,即指定一个块大小为bytes个字节。

4、cbs=bytes: 一次转换bytes个字节,即指定转换缓冲区大小。

5、skip=blocks: 从输入文件开头跳过blocks个块后再开始复制。

6、obs=bytes: 一次写入bytes字节,即写入缓冲区的字节数。

7、bs=bytes: 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。

8、cbs=byte: 一次转换bytes字节。

9、count=blocks: 只拷贝输入的blocks块,块大小等于ibs指定的字节数。

10、seek=blocks: 从输出文件开头跳过blocks个块后再开始复制。

11、status=progress: 显示进度信息,例如每秒钟复制的字节数和进度百分比等。

12、conv=<关键字>: 关键字可以有以下11种:

conversion:用指定的参数转换文件。

ascii:转换ebcdic为ascii

ebcdic:转换ascii为ebcdic

ibm:转换ascii为alternate ebcdic

block:把每一行转换为长度为cbs,不足部分用空格填充

unblock:使每一行的长度都为cbs,不足部分用空格填充

lcase:把大写字符转换为小写字符

ucase:把小写字符转换为大写字符

swap:交换输入的每对字节

noerror:出错时不停止

notrunc:不截短输出文件

sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

三、dd命令实例演示

实例1:通过dd命令完成文件复制

dd if=haodao_in.txt of=haodao_out.txt ibs=1024 obs=1024

以上命令表示将一个名为haodao_in.txt的文件拷贝到另一个名为haodao_out.txt的文件中,并且每次读入和写出的字节数为1024字节。

实例2:通过dd命令创建一个空文件

dd if=/dev/zero of=test.out bs=1M count=1000

以上命令表示创建一个名为test.out的空文件,大小为1000MB,其中每个块的大小为1MB。

实例3:结合time命令, 通过dd命令测试对磁盘的读写操作。

[root@k8s-master ~]# time dd if=/dev/zero of=test.out bs=1M count=1000 oflag=direct记录了1000+0 的读入记录了1000+0 的写出1048576000字节(1.0 GB)已复制,10.9335 秒,95.9 MB/秒real 0m11.022suser 0m0.040ssys 0m1.828s

如上得出: 对磁盘读操作的速度可以达到 9 5.9MB/s 。并且生成test.out文件。

实例4:通过dd命令实现将file1中的小写字母转换成大写字母,并且转成file2文件保存。

dd if=file1 of=file2 conv=ucase

实例5:通过dd命令将一个磁盘的内容复制到另一个磁盘中。

dd if=/dev/sda of=/dev/sdb bs=4096

以上命令表示将 /dev/sda 磁盘的内容复制到 /dev/sdb 磁盘中,并且块大小为4096字节。

实例6:通过dd命令将一个磁盘的内容复制到一个文件中。

dd if=/dev/sda of=haodao.out bs=4096 count=1000 status=progress

以上命令表示将 /dev/sda 磁盘的前1000个块内容复制到 haodao.out 文件中,每个块大小为4096字节,并且显示进度条信息。

实例7:通过dd备份整个硬盘:使用dd命令可以将整个硬盘备份到另一个硬盘中。

dd if=/dev/sda of=/dev/sdb bs=4096 conv=noerror,sync

以上命令表示将/dev/sda磁盘的内容复制到/dev/sdb磁盘中,每个块大小为4096字节。 conv=noerror,sync则表示在复制过程中忽略读取中的错误,并将输出同步到对应磁盘中。

实例8:通过dd命令可以将文件从一种格式转换为另一种格式。

dd if=input.txt of=output.bin bs=1 count=1

实例9:通过dd命令可以创建磁盘的镜像文件。

dd if=/dev/cdrom of=image.iso

以上命令表示要创建一个名为image.iso的CDROM镜像文件。

实例10、通过dd命令可以测试磁盘的读写速度。

dd if=/dev/sda of=/dev/null bs=1M count=1000

四、总结

讲真,dd命令简单实用,可以用来做一些实用的测试项目。不知道大家平时有没有使用过这个命令,欢迎下方留言讨论。

更多精彩

关注公众号 浩道Linux

浩道Linux ,专注于 Linux系统 的相关知识、 网络通信 网络安全 Python相关 知识以及涵盖IT行业相关技能的学习, 理论与实战结合,真正让你在学习工作中真正去用到所学。同时也会分享一些面试经验,助你找到高薪offer,让我们一起去学习,一起去进步,一起去涨薪!期待您的加入~~~ 关注回复「资料」可 免费获取学习资料 (含有电子书籍、视频等)。

喜欢的话,记得 点「赞」 「在看」