Linux 中 /dev/null 与 /dev/zero 在系统维护中的妙用

雨墨小哥_8805

雨墨小哥_8805

2026-07-16

265人浏览

原创

/dev/null用于丢弃写入数据并立即返回eof,适用于屏蔽输出、清空日志;/dev/zero持续提供空字节,适用于创建全零文件、初始化交换空间及内存映射。

linux 中 /dev/null 与 /dev/zero 在系统维护中的妙用

/dev/null 和 /dev/zero 是 Linux 系统里两个轻量但极其实用的“虚拟设备”,不占磁盘空间,却能高效解决日常维护中的典型问题:一个专管“丢弃”,一个专管“生成零”。掌握它们,能让日志清理、静默执行、文件初始化等操作更干净、更可控。

/dev/null:安静地扔掉不需要的东西

它像一个单向入口——写进去的数据立刻消失,读它则立刻返回 EOF(空)。运维中关键在于“屏蔽”和“清空”:

  • 彻底静默命令输出:比如后台运行服务时不想留任何日志痕迹,nohup ./app.sh &>/dev/null & 一行搞定;测试脚本逻辑是否成功,只关心退出码,curl -I http://example.com >/dev/null 2>&1 避免干扰。
  • 过滤报错信息:查找文件时跳过权限拒绝提示,find /etc -name "*.conf" 2>/dev/null 让结果更清晰。
  • 清空日志但保留文件属性:cat /dev/null > /var/log/syslog 或更轻量的 : > /var/log/syslog(冒号是 shell 内建命令,不启新进程),既清内容又不动权限、时间戳、SELinux 上下文。
  • 伪装配置文件防写入:比如禁用浏览器 cookie 存储,ln -sf /dev/null ~/.mozilla/firefox/*.default-release/cookies.sqlite,后续所有写入直接被吞,比删文件更安全。

/dev/zero:稳定输出全零字节流

它不接受写入,但只要读取,就源源不断吐出二进制 0(

它不接受写入,但只要读取,就源源不断吐出二进制 0(\0),适合需要“空白填充”或“初始化”的场景:

),适合需要“空白填充”或“初始化”的场景:

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
  • 快速创建指定大小的空文件:比如为 LVM 逻辑卷准备初始镜像,dd if=/dev/zero of=/tmp/disk.img bs=1M count=2048 直接生成 2GB 全零文件,比 touch + truncate 更可靠(尤其对需要真实块分配的场景)。
  • 安全擦除敏感数据:覆盖旧文件前先填零,dd if=/dev/zero of=/path/to/sensitive_file bs=4k conv=notrunc,确保原内容物理层面不可恢复(配合 shred 或 blkdiscard 效果更佳)。
  • 初始化交换文件:创建 swap 文件时必须是全零且连续,dd if=/dev/zero of=/swapfile bs=1G count=2 && mkswap /swapfile 是标准流程。
  • 调试内存映射行为:程序用 mmap 映射 /dev/zero 时,获得的是匿名内存页(类似 malloc),常用于测试内存分配逻辑或实现共享内存,无需真实文件支撑。

别混淆:它们不是文件,而是内核接口

两者都是字符设备(crw-rw-rw-),主设备号均为 1(mem 驱动),次设备号分别是 3(null)和 5(zero)。ls -l 看到大小为 0 是正常的——它们不存数据,只响应系统调用。误当成普通文件 cp 或 rsync 可能引发意外(如把 /dev/zero 当源复制,会卡死或撑爆磁盘)。

小技巧:组合使用更高效

有时二者配合能简化操作。例如想测试磁盘写入吞吐而不留垃圾:dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 oflag=direct,写完直接 rm /tmp/testfile 即可;若想验证某命令是否真没输出,可用 command | diff - /dev/null ——有差异说明漏了重定向。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3990

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3413

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2593

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6290

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5922

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3453

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2945

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3179

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习