显示行号

|

选择喜欢的代码风格

默认

GitHub

Dune

LakeSide

Plateau

Vibrant

Blue

Eighties

Tranquil

dd 命令根据指定的操作复制文件,并转换过程中的数据格式,对原文件的内容进行转换和格式化处理。

dd 命令安装:

-bash: dd: command not found

#Debian

apt-get install coreutils

#Ubuntu

apt-get install coreutils

#Alpine

apk add man

#Arch Linux

pacman -S coreutils

#Kali Linux

apt-get install coreutils

#CentOS

yum install coreutils

#Fedora

dnf install coreutils

#OS X

brew install coreutils

#Raspbian

apt-get install coreutils

#Docker

docker run cmd.cat/dd dd

dd 命令补充说明:

dd 命令用于复制文件并对原文件的内容进行转换和格式化处理。dd 命令功能很强大的,对于一些比较底层的问题,使用 dd 命令往往可以得到出人意料的效果。用的比较多的还是用 dd 来备份裸设备。但是不推荐,如果需要备份 oracle 裸设备,可以使用 rman 备份,或使用第三方软件备份,使用 dd 的话,管理起来不太方便。

建议在有需要的时候使用 dd 对物理磁盘操作,如果是文件系统的话还是使用 tar backup cpio 等其他命令更加方便。另外,使用 dd 对磁盘操作时,最好使用块设备文件。

dd 命令语法:

dd [OPERAND]...

dd OPTION

dd 命令选项:

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

of=文件名:输出文件名,默认为标准输出。即指定目的文件。

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

obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。

bs=bytes:同时设置读入/输出的块大小为bytes个字节。

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

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

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

count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

conv=,关键字可以有以下11种:

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

ascii:转换ebcdic为ascii

ebcdic:转换ascii为ebcdic

ibm:转换ascii为alternate ebcdic

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

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

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

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

swab:交换输入的每对字节

noerror:出错时不停止

notrunc:不截短输出文件

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

--help:显示帮助信息

--version:显示版本信息

dd 命令选项数值后缀(块大小可以使用的计量单位表):

BLOCKS 和 BYTES 后面可以跟以下乘法后缀:

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

依次为T(TB),P(PB),E(exabyte),Z(zettabytes)和Y(yottabytes)。

dd 命令的坑:

警告:

谨慎使用 dd ———— 使用不当或输入错误的值可能会无意间擦除,破坏或覆盖硬盘驱动器上的数据。

dd 命令实例

从计算机中的 CD 创建 ISO 光盘映像。

dd if=/dev/sr0 of=/home/hope/exampleCD.iso bs=2048 conv=noerror,sync

创建 /dev/sda 硬盘驱动器的 img 文件。 要还原该映像,请输入:dd if=disk1.img of=/dev/sda

dd if=/dev/sda of=~/disk1.img

将内容从 if= drive /dev/sda 复制到 of= drive /dev/sdb:

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

dd 命令其他示例:

[root@localhost text]# dd if=/dev/zero of=sun.txt bs=1M count=1

1+0 records in

1+0 records out

1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s

[root@localhost text]# du -sh sun.txt

1.1M sun.txt

该命令创建了一个 1M 大小的文件 sun.txt,其中参数解释:

if 代表输入文件。如果不指定 if,默认就会从 stdin 中读取输入。

of 代表输出文件。如果不指定 of,默认就会将 stdout 作为默认输出。

bs 代表字节为单位的块大小。

count 代表被复制的块数。

/dev/zero 是一个字符设备,会不断返回 0 值字节(\0)。

块大小可以使用的计量单位表如本文上面显示 dd 命令数值后缀换算关系,以上命令可以看出 dd 命令来测试内存操作速度:

1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s

dd 命令,生成随机字符串

我们甚至可以使用 /dev/urandom 设备配合 dd 命令 来获取随机字符串:

[www@CommandNotFound /]$ dd if=/dev/urandom bs=1 count=15|base64 -w 0

15+0 records in

15+0 records out

15 bytes (15 B) copied, 0.000143231 s, 105 kB/s

y38aC+sFYmsejdDQUvs8

还有一种情况,比如在配置很低的服务器上编译 make (1G 内存) PHP 7.4.X 的时候,可能会遇到 virtual memory exhausted: Cannot allocate memory,先用 free 命令 查看:

$ free -m

total used free shared buff/cache available

Mem: 991 176 372 0 442 673

Swap: 0 0 0

可以按下面方式设置 swap 大小来解决:

mkdir /opt/images

rm -rf /opt/images/swap #如果有

接下来,用 dd 命令:

$ dd if=/dev/zero of=/opt/images/swap bs=1024 count=2048000

2048000+0 records in

2048000+0 records out

2097152000 bytes (2.1 GB) copied, 5.99634 s, 350 MB/s

#继续执行,用 mkswap 和 swapon 命令:

[root@CommandNotFound /opt/images]

$ mkswap /opt/images/swap

Setting up swapspace version 1, size = 2047996 KiB

no label, UUID=96aa2fe9-1ffe-418d-8bd6-1354b0fc229a

[root@CommandNotFound /opt/images]

$ swapon /opt/images/swap

swapon: /opt/images/swap: insecure permissions 0644, 0600 suggested.

此时再 free -m 可以看到已经设置了 swap,使用完毕后,可以关掉 swap:

$ free -m

total used free shared buff/cache available

Mem: 991 177 76 0 736 669

Swap: 1999 0 1999

$ swapoff swap

$ rm -f /opt/images/swap #swap文件也可以不删除,留着以后使用,关键是你的虚拟机硬盘够用

dd 命令扩展阅读:

dd 命令评论

linux dd看不到安装盘,Linux dd 命令 command not found dd 命令详解 dd 命令未找到 dd 命令安装 - CommandNotFound ⚡️ 坑否...相关推荐

  1. linux fg 命令,Linux fg 命令 command not found fg 命令详解 fg 命令未找到 fg 命令安装 - CommandNotFound ⚡️ 坑否...

    显示行号 | 选择喜欢的代码风格 默认 GitHub Dune LakeSide Plateau Vibrant Blue Eighties Tranquil fg 将后台作业放到前台终端运行. fg ...

  2. linux lp命令,Linux lp 命令 command not found lp 命令详解 lp 命令未找到 lp 命令安装 - CommandNotFound ⚡️ 坑否...

    显示行号 | 选择喜欢的代码风格 默认 GitHub Dune LakeSide Plateau Vibrant Blue Eighties Tranquil lp 命令用来打印文件或修改排队的打印任 ...

  3. Linux无法运行cal指令,Linux cal 命令 command not found cal 命令详解 cal 命令未找到 cal 命令安装 - CommandNotFound ⚡️ 坑否...

    显示行号 | 选择喜欢的代码风格 默认 GitHub Dune LakeSide Plateau Vibrant Blue Eighties Tranquil cal 命令显示当前日历或指定日期的日历 ...

  4. linux找不到 at命令,Linux at 命令 command not found at 命令详解 at 命令未找到 at 命令安装 - CommandNotFound ⚡️ 坑否...

    显示行号 | 选择喜欢的代码风格 默认 GitHub Dune LakeSide Plateau Vibrant Blue Eighties Tranquil 在指定时间执行一个任务 - 计划任务服务 ...

  5. linux 怎么退出pr命令,Linux pr 命令 command not found pr 命令详解 pr 命令未找到 pr 命令安装 - CommandNotFound ⚡️ 坑否...

    显示行号 | 选择喜欢的代码风格 默认 GitHub Dune LakeSide Plateau Vibrant Blue Eighties Tranquil pr 命令设置文件格式以使其在打印时看起 ...

  6. linux vim 命令无效,Linux vim 命令 command not found vim 命令详解 vim 命令未找到 vim 命令安装 - CommandNotFound ⚡️ 坑否...

    显示行号 | 选择喜欢的代码风格 默认 GitHub Dune LakeSide Plateau Vibrant Blue Eighties Tranquil Vim(ViImproved)编辑器是功 ...

  7. android shell du,Linux du 命令 command not found du 命令详解 du 命令未找到 du 命令安装 - CommandNotFound ⚡️ 坑否...

    显示行号 | 选择喜欢的代码风格 默认 GitHub Dune LakeSide Plateau Vibrant Blue Eighties Tranquil du 命令显示每个文件和目录的磁盘使用空 ...

  8. linux中as命令,Linux as 命令 command not found as 命令详解 as 命令未找到 as 命令安装 - CommandNotFound ⚡️ 坑否...

    显示行号 | 选择喜欢的代码风格 默认 GitHub Dune LakeSide Plateau Vibrant Blue Eighties Tranquil as 命令是汇编语言编译器 as 命令安 ...

  9. linux ar -x64,Linux ar 命令 command not found ar 命令详解 ar 命令未找到 ar 命令安装 - CommandNotFound ⚡️ 坑否...

    显示行号 | 选择喜欢的代码风格 默认 GitHub Dune LakeSide Plateau Vibrant Blue Eighties Tranquil ar 命令是建立或修改备存文件,或是从备 ...

最新文章

  1. 当 Python 遇到了你的微信好友
  2. C#利用SQLDMO备份与还原数据库
  3. 关于软件工程的那些事儿————《人·绩效·职业道德》和《一个程序员的生命周期》读后感...
  4. 在Laravel中使用数据库事务以及捕获事务失败后的异常
  5. ElasticSearch通过Scroll方式遍历索引(Python代码)
  6. Linux下高速缓存DNS的配置
  7. Sublime Text 2中的正则表达式搜索替换
  8. vscode 设置整体界面字体的大小
  9. org.xml.sax.SAXParseException: 缺少文件根组件。
  10. LVW特征选择算法简单介绍
  11. 光遇自动弹琴脚本代码_光遇自动弹琴脚本
  12. Java applet 类
  13. excel使用教程_火遍全球的14个Excel学习网:大神套路、视频课、软件下载应有尽有...
  14. java五子棋需求分析文档_五子棋需求分析
  15. MDF,LDF格式文件还原数据库
  16. 如何打造优秀的个人博客
  17. linux crash分析案例之进程同步
  18. 汇编学习笔记——2.10 CS和IP
  19. c语言中的 t占的字节数,2017年9月计算机二级考试C语言预习自测题(4)
  20. 学术篇 | 脑电图和脑磁图能探测到来自人类小脑的信号吗?

热门文章

  1. 日本人制作汉字俄罗斯方块游戏,看哭一票中国人
  2. java鼠标滑入换图片_超简单---鼠标滑过变换图片
  3. fopen、open和popen区别
  4. 2018,趁热再说几句区块链
  5. C语言买金鱼问题答案,金鱼阅读答案
  6. 99%的人说不清楚自己的姓氏图腾是什么?
  7. java cocos2d unity_GitHub - mingwuyun/cocos2d-java: cocos2d java api base libgdx
  8. 服务器过热自动关机重启,CPU过热电脑会自动关机吗
  9. JAVA程序闰年计算方法
  10. 通过路由器实现端口映射的疑难杂症