linux基本功系列之dd命令实战

article/2025/9/29 22:42:03

文章目录

  • 前言🚀🚀🚀
  • 一. dd 命令介绍
  • 二. 语法格式及常用选项
  • 三. 参考案例
    • 3.1 创建指定大小的文件
    • 3.2 清空磁盘数据
    • 3.3 给磁盘做备份还原
    • 3.4 把光盘拷贝到root下
    • 3.5 内存不足的处理方法
  • 四. 文中出现的概念解释
    • swapon命令介绍
    • 4.2 /dev/zero 介绍
  • 总结

前言🚀🚀🚀

大家好,我是沐风晓月,双一流本科,计算机专业,一起学习,努力成长!
🛰️🛰️系列专栏:【linux基本功-基础命令实战】
💓想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 只要地球不爆炸,我们永远不放假,只要宇宙不重启,我们永远不休息,,风里雨里节日里我们都在机房等着你
💓 知识最重要的是记忆,反复练习才能有所成就
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

一. dd 命令介绍

Linux dd 命令用于读取、转换并输出数据,换言之就是转换和拷贝文件

dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

二. 语法格式及常用选项

具体的使用方法如下:
dd if=“输入文件” of=“输出文件” bs=“数据块” count=“数量”
我们用 --help来查看具体的帮助信息

[root@mufenggrow ~]# dd --help
用法:dd [操作数] ...或:dd 选项
Copy a file, converting and formatting according to the operands.bs=BYTES        read and write up to BYTES bytes at a timecbs=BYTES       convert BYTES bytes at a timeconv=CONVS      convert the file as per the comma separated symbol listcount=N         copy only N input blocksibs=BYTES       read up to BYTES bytes at a time (default: 512)if=FILE         read from FILE instead of stdiniflag=FLAGS     read as per the comma separated symbol listobs=BYTES       write BYTES bytes at a time (default: 512)of=FILE         write to FILE instead of stdoutoflag=FLAGS     write as per the comma separated symbol listseek=N          skip N obs-sized blocks at start of outputskip=N          skip N ibs-sized blocks at start of inputstatus=LEVEL    The LEVEL of information to print to stderr;'none' suppresses everything but error messages,'noxfer' suppresses the final transfer statistics,'progress' shows periodic transfer statisticsN and BYTES may be followed by the following multiplicative suffixes:
c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M
GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y.Options are:--help		显示此帮助信息并退出--version		显示版本信息并退出

dd 命令常用的字段介绍

字段描述
if代表输入文件。如果不指定 if,默认就会从 stdin 中读取输入。
of代表输出文件。如果不指定 of,默认就会将 stdout 作为默认输出
bs代表字节为单位的块大小
count代表被复制的块数。
/dev/zero是一个字符设备,会不断返回 0 值字节(\0)
conv = ucase把字母由小写变为大写
conv = lcase把字母由大写变为小写
conv = noerror出错时不停止处理。

三. 参考案例

3.1 创建指定大小的文件

这个我们用的比较多,也是必会的内容,参考以下格式:
dd if=“输入文件” of=“输出文件” bs=“数据块” count=“数量”

案例一: 创建1G大小的文件,文件保存在/tmp/dd_test, 块的大小为1M

[root@mufenggrow ~]# dd if=/dev/zero of=/tmp/dd_test bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,2.60265 秒,413 MB/秒
## 查看创建文件的大小
[root@mufenggrow ~]# ll -h /tmp/dd_test 
-rw-r--r--. 1 root root 1.0G 25 07:51 /tmp/dd_test
[root@mufenggrow ~]# 

3.2 清空磁盘数据

我们在网上看到的各种”某某门“ ,往往是因为处理不要到磁盘的时候,只是做了删除,没有做专业的处理。

我们的数据保存在硬盘上,靠删除和格式化是删不干净的,还需要使用专业工具,或者dd命令来删除

比如:
我们要删除 /dev/sdb盘的信息:
当然如果我们没有sdb盘,系统会提示,设备上没有空间,

[root@mufenggrow ~]# ll -h /tmp/dd_test 
-rw-r--r--. 1 root root 1.0G 25 07:51 /tmp/dd_test
[root@mufenggrow ~]# dd if=/dev/zero of=/dev/sdb
dd: 正在写入"/dev/sdb": 设备上没有空间
记录了1829129+0 的读入
记录了1829128+0 的写出

我们删除文件等同于删掉了inode,并不能完全删除数据,如果要彻底删除,除非数据被覆盖掉,而上面的代码就是让数据全被被 /dev/zero 覆盖,相当于置空。

3.3 给磁盘做备份还原

相当于一个复制过程,只是速度会更快一些:

  • 把sda的数据备份到sdb
[root@mufeng ~]# dd if=/dev/sda  of=/dev/sdb
  • 利用备份好的sdb进行数据还原
dd if=/dev/sdb  of=/dev/sda

3.4 把光盘拷贝到root下

我们可以拷贝光盘数据到root文件夹下,并保存为cd.iso文件

dd if=/dev/cdrom of=/root/cd.iso

3.5 内存不足的处理方法

安卓手机是类unix系统,用的时间久了之后就会有些卡顿,这时候我们可以设置swap空间,来确保手机的运行。
也就是我们常用的虚拟内存。

虚拟内存:
利用硬盘的空间,充当内存的空间
相当于虚拟内存

  • 当物理内存不够用时,使用磁盘空间来模拟内存
  • 在一定程度上缓解内存不足的问题

swap空间也有一定的不足:

swap是存放在磁盘上的,磁盘的速度和内存比较起来慢了好几个数量级,如果不停的读写swap,那么对系统的性能影响很大,甚至会导致卡死。

接下来我们模拟下把文件变为SWAP空间的情况。

## 查看swap到总大小
[root@mufenggrow ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:           1819         431          72         907        1315         270
Swap:          2047         715        1332
## 生成一个G的文件
[root@mufenggrow ~]# dd if=/dev/zero of=/home/swap_test bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,2.53391 秒,424 MB/秒
## 授权
[root@mufenggrow ~]# chmod 0600 /home/swap_test 
## 把文件变成swap空间
[root@mufenggrow ~]# mkswap -f /home/swap_test 
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=d6bdd0b3-42f7-4cff-b51b-d04184000c1a
## 设置永久生效
[root@mufenggrow ~]# echo "/home/swap_test none swap defaults 0 0 " >> /etc/fstab
[root@mufenggrow ~]# swapon  -a
## 再次查看发现多了1G大小的swap空间
[root@mufenggrow ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:           1819         429          70         907        1319         269
Swap:          3071         714        2357
[root@mufenggrow ~]# 

四. 文中出现的概念解释

swapon命令介绍

使用swapon命令可以启用Linux系统的交换分区或交换文件。

参数描述
-a将/etc/fstab文件中所有设置为swap的设备,启动为交换区
-s显示交换区的使用状况;
-p指定交换分区的优先级
-U使用设备的UUID
-L使用设备的卷标

与之相对应的命令是 swapoff 用于关闭指定的交换空间

swapoff -a 表示关闭所有的在/etc/fstab里设置的swap空间。

4.2 /dev/zero 介绍

/dev/zero是一个特殊的字符设备文件,当我们使用或读取它的时候,它会提供无限连续不断的空的数据流(特殊的数据格式流)
主要使用场景有两个:

  • 可以使用/dev/zero文件覆盖其他文件信息,比如本文中的清空磁盘
  • 产生指定大小的空文件,例如:交换文件、模拟虚拟文件系统等。

总结

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/Krmd006T.shtml

相关文章

Linux系统中dd命令用法详解

命令介绍: Linux dd 命令用于读取、转换并输出数据。dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。 参数介绍 if 代表输入文件。如果不指定 if,默认就会从 stdin 中读取输入。of …

dd 命令详解

dd命令是Linux/Unix下的一个很常见的文件拷贝工具。 我们先列下dd命名的常用的参数,再详细分析: bsBYTES read and write up to BYTES bytes at a time cbsBYTES convert BYTES bytes at a time convCONVS convert the file as pe…

dd命令使用总结

dd命令介绍 dd是Linux下一个非常有用的命令,该命令用于读取、转换并输出数据;dd命令在Android shell下也支持使用。 语法格式: dd [option]dd指令选项详解 iffile:输入文件名,缺省为标准输入 offile:输…

dd命令相关整理

对于一个软件测试人员而言,工作开展前就是准备自己的测试环境,那么重装系统就是首当其冲的一个必备技能。最近因为手边工作环境没有windows的系统,所以没有条件利用软碟通这类刻录软件直接刻录启动盘。被逼无奈之下用命令来刻录,整…

Linux:shell 脚本 自动解压压缩文件tar.gz到指定目录

具体情境 Ubuntu16.04系统,将.tar.gz格式的文件从/home/myftp/upload/nuodongiot目录自动解压到/home/myftp/upload/backupcopy目录中,并将源目录/home/myftp/upload/nuodongiot中的文件移动至/home/myftp/upload/extarct目录中 该过程进行单个文件进行…

tar解压文件至指定目录,不包含原目录

1、tar解压文件至指定目录,不包含原目录 要解压的压缩包原目录结构如下 tar -zxf log.tar.gz --strip-components 1 -C /opt/new_test注: --strip-components 1 解压至下一级目录,若为2则解压至下下级目录 2、压缩只指定的目录&#xff0c…

linux gz解压 指定目,linux解压tar.gz到指定文件夹或目录

1. 前言 本文主要讲解如何解压tar.gz到指定文件夹或目录,tar是Linux系统上的一种打包与压缩工具。 2. linux解压tar文件使用案例 Linux下使用tar命令把当前目录下的zcwyou.tar.gz解压到指定的目录/123/abc/ ,前提要保证存在/123/abc/这个目录。 [root@zcwyou ~]# tar -zxvf zc…

Linux tar 命令 将归档内指定文件解压到指定目录

首先介绍一下 tar 命令: 用途:打包文件(制作归档文件)、释放归档文件 格式: tar [选项]... 归档文件名 源文件或目录 tar [选项]... 归档文件名 [-C 目标目录] 常用命令选项: -c 创建 .tar 格式…

20191004在LINUX下如何将tar压缩文件解压到指定的目录下

百度搜索:tar 解压缩到指定目录 https://zhidao.baidu.com/question/9844116.html 在LINUX下如何将tar压缩文件解压到指定的目录下 各位,请教一下在LINUX下如何将tar压缩文件解压到指定的目录下,直接用tar xvf 解压出来的是放在当前目录的&am…

关于linux打包以及解压到指定目录的简单操作demo

1.打包到指定目录 命令:tar zcvf /root/test99/a.tar.gz a.txt 1.1打包到当前目录 命令:tar -zcvf a.tar.gz a.txt 2.解压到指定目录 命令: tar -zxvf a.tar.gz -C /root/test99 2.2解压到当前目录 命令:tar -zxvf a.tar.gz 打zip包: 方法如下&#xf…

linux tar解压文件至指定目录,不包含原目录

1、tar解压文件至指定目录,不包含原目录 要解压的压缩包原目录结构如下 通过 --strip-components 1 参数 解压到指定目录或当前目录(不含打包前原目录) tar zxf log.tar.gz --strip-components 1 -C /opt/new_test注: --strip-co…

Linux拓展之产生随机数

在 Linux 中可以通过内置变量 RANDOM 来产生随机数,该变量会产生一个 [0, 32767] 范围内的随机整数。如下: echo $RANDOM如果要产生 [0-10] 之内的随机整数:echo $(( $RANDOM % 10 )) 如果要产生 [1-10] 之内的随机整数:echo $((…

Linux生成随机数

生成随机数的方法有7种 1.通过时间获取随机数 1)date %s (随机生成10位数字) 用于获得时间戳。 如果用它做随机数,相同一秒的数据是一样的。在做循环处理,多线程里面基本不能满足要求了。 2)date…

Linux时间子系统之定时事件层(Clock Events)

几乎所有的计算机系统中都会存在一个所谓的定时设备,经过设置后,在某个固定的时间或某个相对的时间间隔后,达到触发条件,发送中断给处理器。 系统中的每一种实际的定时事件设备都由一个叫做clock_event_device的结构体变量表示&a…

Linux随机数发生器

Linux随机数发生器 日期:2017-11-29 01:42:10 星期三 Linux随机数发生器 一、源代码的基本情况 Linux内核版本涉及文件功能概述 二、外部访问接口 内核层输出接口用户层输出接口环境噪音输入接口 三、核心源码分析 随机数发生器理论熵池结构熵的加入随机数的生成启动…

linux内核随机数函数测试

OS版本&#xff1a;openEuler 22.03 LTS 架构&#xff1a;x86_64 描述&#xff1a;调用内核随机数生成函数&#xff0c;并打印。 // random_num_test.c#include <linux/kernel.h> #include <linux/module.h> #include <linux/random.h>static int __init …

【Linux】随机数的生成

生成随机数目录 生成随机数&#xff1a;默认为(0-32767)生成指定区间随机数&#xff1a;随机生成1-50之间的数随机生成时间戳秒和纳秒加密运算生成一个随机字符指定10个在使用md5sum校验/dev/random是什么&#xff1f; 生成随机的UUID加密算法相关文章 生成随机数&#xff1a;默…

zkw线段树(详解)

定义 我们已经了解了线段树的许多操作与结构 但是有一些缺点: 1.它是递归操作的 所以空间可能会很大 2.叶子节点深度都不同 这样操作会很麻烦 3.代码量太大... 所以现在可以引进zkw线段树 和普通的线段树相比,zkw线段树主要有这样几个不同点: 1.所有的叶子结点都在…

数据结构-线段树

如上图&#xff1a; 线段树是一颗满二叉树&#xff0c;叶子节点如果没有值&#xff0c;用null表示。 非空叶子节点就是基础数据&#xff0c;树中每个父亲节点代表左右孩子的结果集&#xff08;比如求合&#xff0c;最大值&#xff0c;最小值等&#xff0c;自己定义算法&#x…

线段树模板

线段树是我接触到的第一个高级数据结构&#xff0c;也是我接触过的模板最长的一种代码&#xff0c;但他的实用性真的很强&#xff0c;绝大部分的区间问题都可以用线段树解决点&#xff0c;所以今天我打算简单介绍一下我对线段树的理解 先放一张百度来的线段树图片&#xff1a;…