文章目录
前言🚀🚀🚀
大家好,我是沐风晓月,双一流本科,计算机专业,一起学习,努力成长!
🛰️🛰️系列专栏:【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 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进行数据还原
ddif=/dev/sdb of=/dev/sda
3.4 把光盘拷贝到root下
我们可以拷贝光盘数据到root文件夹下,并保存为cd.iso文件
ddif=/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: 1819431729071315270
Swap: 20477151332## 生成一个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: 1819429709071319269
Swap: 30717142357[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文件覆盖其他文件信息,比如本文中的清空磁盘
- 产生指定大小的空文件,例如:交换文件、模拟虚拟文件系统等。
总结
💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~
版权归原作者 我是沐风晓月 所有, 如有侵权,请联系我们删除。