Linux命令200例:dd命令详解及实际应用场景

在这里插入图片描述

🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。
🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。
🏆本文已收录于专栏:Linux命令大全。
🏆本专栏我们会通过具体的系统的命令讲解加上鲜活的实操案例对各个命令进行深入讲解。欢迎提前锁定关注。
🎉欢迎 👍点赞✍评论⭐收藏

文章目录

  • 🚀一、什么是 dd 命令
  • 🚀二、如何使用 dd 命令
  • 🚀三、dd 命令的应用场景
    • 🔎3.1. 备份和还原整个硬盘
    • 🔎3.2. 创建虚拟磁盘镜像
    • 🔎3.3. 擦除硬盘数据
    • 🔎3.4. 写入 ISO 镜像到 U 盘
    • 🔎3.5. 创建随机数据文件
    • 🔎3.6. 按行读取文件
    • 🔎3.7. 迁移分区数据
    • 🔎3.8. 安全擦除固态硬盘 (SSD)
    • 🔎3.9. 检查设备读写速度
    • 🔎3.10. 压缩文件到 tar 归档
    • 🔎3.11. 从网络流复制数据
    • 🔎3.12. 恢复损坏的光盘数据
    • 🔎3.13. 制作以太网启动磁盘镜像
    • 🔎3.14. 修复损坏的分区表
    • 🔎3.15. 复制整个目录结构
  • 🚀四、总结


🚀一、什么是 dd 命令

dd 命令是一个在 Unix 和类 Unix 系统中非常强大的命令行工具,用于复制和转换文件。它可以从一个文件或设备向另一个文件或设备进行复制,同时还可以对数据进行转换和操作。

在这里插入图片描述

🚀二、如何使用 dd 命令

dd 命令的基本语法为:

dd if=input_file of=output_file [options]

其中 if 表示输入文件,of 表示输出文件,options 是一些可选参数。下面是一些常用的参数:

  • bs:设置每次读取和写入的块大小(单位为字节或者是可以添加的后缀,如b、k、m等),默认为512字节。
  • count:设置要复制的块数。
  • iflag:设置输入选项,常用的选项有direct(绕过缓存直接读取)和sync(同步数据到磁盘)。
  • oflag:设置输出选项,常用的选项有direct(绕过缓存直接写入)和sync(同步数据到磁盘)。

🚀三、dd 命令的应用场景

dd 命令由于其灵活性和强大的功能,在各种不同的场景中都可以发挥作用。下面列举了一些常见的应用场景和实际例子。

🔎3.1. 备份和还原整个硬盘

dd if=/dev/sda of=/path/to/backup.img

这个命令将整个硬盘 /dev/sda 的内容复制到文件 backup.img 中,从而实现了对硬盘的备份。如果需要还原备份,可以使用以下命令:

dd if=/path/to/backup.img of=/dev/sda

🔎3.2. 创建虚拟磁盘镜像

dd if=/dev/zero of=/path/to/image.img bs=1G count=10

这个命令将创建一个大小为10GB的虚拟磁盘镜像文件 image.img

🔎3.3. 擦除硬盘数据

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

这个命令会将硬盘 /dev/sda 上的所有数据擦除掉,将每个块都写入零值,以保护隐私或者重新使用硬盘。

🔎3.4. 写入 ISO 镜像到 U 盘

dd if=/path/to/image.iso of=/dev/sdb bs=4M conv=fdatasync

这个命令将 ISO 镜像文件 image.iso 写入 U 盘设备 /dev/sdb 中。

🔎3.5. 创建随机数据文件

dd if=/dev/urandom of=/path/to/random.file bs=1M count=10

这个命令将使用 /dev/urandom 生成的随机数据创建一个大小为10MB的文件 random.file

🔎3.6. 按行读取文件

dd if=/path/to/input.txt of=/path/to/output.txt bs=1 count=1000

这个命令将读取文件 input.txt 的前1000个字节,并将其保存到文件 output.txt 中。

🔎3.7. 迁移分区数据

dd if=/dev/sda1 of=/dev/sdb1 bs=4M conv=fdatasync

这个命令将硬盘分区 /dev/sda1 的数据复制到另一个硬盘分区 /dev/sdb1 中。

🔎3.8. 安全擦除固态硬盘 (SSD)

dd if=/dev/zero of=/dev/sda bs=1M count=1 oflag=direct

这个命令通过使用 oflag=direct,可以直接写入固态硬盘 (SSD),以实现更安全地擦除数据。

🔎3.9. 检查设备读写速度

dd if=/dev/zero of=/tmp/ddtest bs=1M count=1000 conv=fdatasync

这个命令将在 /tmp/ddtest 文件中写入1000MB的数据,并报告写入速度,可以用来测试设备的读写速度。

🔎3.10. 压缩文件到 tar 归档

tar cf - /path/to/files | dd of=/path/to/archive.tar.gz bs=1M

这个命令将目录 /path/to/files 下的所有文件和子目录压缩成一个 tar 归档文件 archive.tar.gz

🔎3.11. 从网络流复制数据

dd if=tcp://192.168.0.100:1234 of=/path/to/output.file bs=1M

这个命令将从 TCP 网络流中读取数据,并将其写入文件 output.file

🔎3.12. 恢复损坏的光盘数据

dd if=/dev/cdrom of=/path/to/backup.iso bs=2048 conv=noerror,sync

这个命令将尝试恢复损坏的光盘数据,并将其保存为 ISO 镜像文件 backup.iso

🔎3.13. 制作以太网启动磁盘镜像

dd if=/dev/zero of=/path/to/networkboot.img bs=1M count=10
mkfs.ext4 /path/to/networkboot.img
mount /path/to/networkboot.img /mnt
cp -r /path/to/networkboot/* /mnt/
umount /mnt

这个命令将创建一个大小为10MB的磁盘镜像,并将其中的内容修改为网络启动所需的文件系统,并将文件复制到镜像中。

🔎3.14. 修复损坏的分区表

dd if=/dev/sda of=/path/to/parttable.backup bs=512 count=1
dd if=/path/to/parttable.backup of=/dev/sda bs=512 count=1

这个命令将备份并修复 /dev/sda 上的分区表。

🔎3.15. 复制整个目录结构

cd /path/to/source
find . -type d -exec mkdir -p "/path/to/target/{}" \;

这个命令将递归地复制源目录下的所有子目录结构到目标目录中,而不复制实际的文件内容。

🚀四、总结

在本篇文章中,我们详细讨论了 Linux 中的 dd 命令。我们了解了 dd 命令的基本语法和一些常用参数,并举例说明了其在各种应用场景下的实际用法。希望这些例子能够帮助你更好地理解和使用 dd 命令。
在这里插入图片描述
dd 命令是一个非常强大和灵活的工具,但在使用时需要格外小心,因为它可以对数据进行直接操作,而且一些操作可能是不可逆的。因此,在使用 dd 命令时,请务必牢记你正在处理的数据的重要性,并谨慎操作。

推荐你阅读本专栏 Linux命令大全,以便更深入地理解和应用这些命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/88331.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JZ39 数组中出现次数超过一半的数字

目录 一、题目 二、代码 一、题目 数组中出现次数超过一半的数字_牛客题霸_牛客网 二、代码 class Solution { public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * param numbers int整型vector * return int…

Dynamic CRM开发 - 实体介绍

实体简介 在CRM中,实体(Entity)是数据的基本载体,也是构建业务逻辑网络的基础节点。 实体可以理解为数据库中的一张表(实体中的字段对应数据库表的字段),比如创建一个实体存储客户信息,创建一个实体存储产品信息,产品实体里可以创建一个查找类型的字段(类似表的外键)…

如何理解MySQL隔离性---3个记录隐藏字段、undo日志、Read View

目录 一、3个记录隐藏字段 二、undo 日志 三、read view 一、3个记录隐藏字段 本片文章是帮助理解上篇文章Mysql隔离性的辅助知识。 mysql在建表时,不仅仅创建了表的结构,还创建了3个隐藏字段。 DB_TRX_ID :6 byte,最近修改( 修…

考研408 | 【计算机网络】 数据链路层

导图: 数据链路层概念: 结点:主机、路由器 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。 数据链路:网络中两个结点之间的逻辑通道&#xff0…

常见的路由协议之RIP协议与OSPF协议

目录 RIP OSPF 洪泛和广播的区别 路由协议是用于在网络中确定最佳路径的一组规则。它们主要用于在路由器之间交换路由信息,以便找到从源到目标的最佳路径。 常见的路由协议: RIP (Routing Information Protocol):RIP 是一种基于距离向量算…

Mac安装nvm教程及使用

nvm 是 node 版本管理器,也就是说一个 nvm 可以管理多个 node 版本(包含 npm 与 npx),可以方便快捷的安装、切换 不同版本的 node。 1、直接通过brew安装 执行命令:brew install nvm PS: 如果没有安装br…

PostgreSQL查询慢sql原因和优化方案

PostgreSQL sql查询慢优化方案有一下几种解决方案: 1.关闭会话 查询慢sql的执行会话,关闭进程。 查看数据库后台连接进程 SELECT count(*) FROM pg_stat_activity;SELECT * FROM pg_stat_activity; 查看数据库后台连接进程,但是此条SQL不…

03_013内存分配api以及页表详解

前言 之前文章中物理ram中的最小单位一直用页来表示 这次又描述的详细了点 物理ram的最小单位 有的地方叫 块,框,页帧 在虚拟空间中最小单位也叫页 需要好好区分 不过后来想想管你虚拟页还是物理ram页 都存在物理ram上 都能想成一 一对应的关系 所以大家都叫页好像也行 内存分…

服务器安装JDK

三种方法 方法一: 方法二: 首先登录到Oracle官网下载JDK JDK上传到服务器中,记住文件上传的位置是在哪里(我放的位置在/www/java),然后看下面指示进行安装 方法三: 首先登录到Oracle官网下载…

深度学习常用的python库学习笔记

文章目录 数据分析四剑客Numpyndarray数组和标量之间的运算基本的索引和切片数学和统计方法线性代数 PandasMatplotlibPIL 数据分析四剑客 Numpy Numpy中文网 ndarray 数组和标量之间的运算 基本的索引和切片 数学和统计方法 线性代数 Pandas Pandas中文网 Matplotlib Mat…

CSS:服务器字体 与 响应式布局(用法 + 例子 + 效果)

文章目录 服务器字体定义 服务器字体使用例子 响应式布局设备类型设备特性例子 服务器字体 解决字体不一致而产生的。 首先,在网上把字体下载好。 定义 服务器字体 font-face{font-family:字体名称;src:url(字体资源路径); }使用 在需要使用的选择器里加上 font…

【硬件突击 电路】

文章目录 1. 电阻(Resistor):2. 电容(Capacitor):3. 电感:4、 RC、RL、RLC电路结构及工作原理基尔霍夫定律基尔霍夫电流定律(KCL)基尔霍夫电压定律(KVL&#…

❤ VUE3 项目路由拦截器配置(二)

❤ VUE3 项目 路由拦截器进一步 配置 路由拦截抽离为单个模块permission.ts 路由配置规则 白名单(直接进入) PC页面和PC子页面(直接进入) 后台页面(验证token ) 没有token> 后台登录页面 有token> 后…

英码国产高配边缘计算盒子上市!搭载TPU处理器BM1684X,适配麒麟系统,支持OTA升级!

随着人工智能技术不断深入实际应用场景,加速各行各业场景应用落地,边缘计算的重要性越发凸显。相较于传统的集中式云计算,边缘计算在距离数据源或用户更近的地方提供计算能力,不仅满足了对实时性要求较高的场景应用需求&#xff0…

操作指南 | 如何使用Chainlink喂价功能获取价格数据

Chainlink的去中心化预言机网络中的智能合约包含由运行商为其他智能合约(DApps)使用或截取所持续更新的实施价格数据。其中有两个主要架构:喂价和基础要求模型。此教程将会展现如何在Moonbeam、Moonriver或是Moonbase Alpha测试网上使用喂价功…

Flink 火焰图

方式一 使用 Flink Web UI 的 Flame Graph Flink 自己也支持了 Task 粒度的 Flame Graphs 功能,并且可以细化到 subtask 粒度。 第一步:配置启用功能 Flink 作业动态参数里增加配置:“rest.flamegraph.enabled”: “true” 并重启作业。当前该功能没有默认开启,因为这个功…

Redis_哨兵模式

9. 哨兵模式 9.1 简介 当主库宕机,在从库中选择一个,切换为主库。 问题: 主库是否真正宕机?哪一个从库可以作为主库使用?如何实现将新的主库的信息通过给从库和客户端? 9.2 基本流程 哨兵主要任务: 监控选择主库通知 会有…

ArcGIS Maps SDK for JavaScript系列之三:在Vue3中使用ArcGIS API加载三维地球

目录 SceneView类的常用属性SceneView类的常用方法vue3中使用SceneView类创建三维地球项目准备引入ArcGIS API创建Vue组件在OnMounted中调用初始化函数initArcGisMap创建Camera对象Camera的常用属性Camera的常用方法 要在Vue 3中使用ArcGIS API for JavaScript加载和展示三维地…

UE5、CesiumForUnreal接入WMTS格式地图瓦片,如ArcGIS、Mapbox、天地图

文章目录 1.实现目标2.实现过程2.1 WMTS与TMS2.2 cesium-native改造2.3 CesiumForUnreal插件改造2.4 WMTS瓦片加载测试2.5 EPSG:3857与43263.参考资料1.实现目标 通过改造cesium-native和CesiumForUnreal插件,参考tms的栅格瓦片地图加载逻辑,实现在UE5中通过CesiumForUnreal…

Java中处理表格

大家好 , 我是苏麟 , 也是很久没有更新了 , 今天带来一个很好使用的一个库 easyexcel. JAVA后端开发中可能会遇到一个问题 , 就是处理Execel表格 , 当然不一定非要用Java 我们在这里只说在Java里怎么去处理表格 . Easy Excel 我们今天要说到就是 Easy Excel , 这个是阿里的项…