前言🚀🚀🚀
大家好,我是沐风晓月,双一流本科,计算机专业,一起学习,努力成长!
🛰️🛰️系列专栏:【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 time
cbs=BYTES convert BYTES bytes at a time
conv=CONVS convert the file as per the comma separated symbol list
count=N copy only N input blocks
ibs=BYTES read up to BYTES bytes at a time (default: 512)
if=FILE read from FILE instead of stdin
iflag=FLAGS read as per the comma separated symbol list
obs=BYTES write BYTES bytes at a time (default: 512)
of=FILE write to FILE instead of stdout
oflag=FLAGS write as per the comma separated symbol list
seek=N skip N obs-sized blocks at start of output
skip=N skip N ibs-sized blocks at start of input
status=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 statistics
N 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 2月 5 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 2月 5 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 -m
total 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 -m
total 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文件覆盖其他文件信息,比如本文中的清空磁盘
- 产生指定大小的空文件,例如:交换文件、模拟虚拟文件系统等。
总结
💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~
转载:https://blog.csdn.net/wisdom_futrue/article/details/128885393