hand
_1_14_140
4
返回栏目
1k
2k
0.4k
0.6k
0.9k
0.7k
3k
2k
0.1k
1k
0k
1k
0k
0.4k
0.3k
0.1k
0.6k
0k
1k
3k
2k
0k
0k
0.4k
2k
1k
0k
6k
0.8k
1k
0.5k
2k
0k
0k
0k
2k
0k
4k
2k
1k
1k
2k
0k
0.5k
0k
1k
0.2k
0.3k
0.1k
0k
0k
0.8k
1k
0.6k
0k
0k
2k
0.6k
1k
2k
2k
0.6k
0.6k
0.5k
1k
2k
0.5k
0.1k
0.2k
4k
0k
0.1k
0.8k
1k
0.3k
0k
0.3k
0.1k
1k
8k
0.1k
0.7k
0.1k
0.3k
0.9k
0.2k
4k
0.2k
6k
3k
3k
1k
3k
0.1k
1k
0.2k
0k
0.7k
0.4k
2k
2k
0.5k
0.8k
5k
0.1k
0.3k
0.3k
0.5k
0.1k
1k
0k
0.7k
0.2k
2k
2k
1k
6k
3k
1k
2k
1k
2k
2k
1k
0k
0k
1k
0k
0k
0.3k
0.3k
0.2k
0k
0.3k
0k
1k
0.1k
0.6k
0k
0k
0k
0k
0k
0.1k
0k
0k
0k
0.2k
0k
0.2k
0k
0k
0k
0k
0k
0k
0k
0.9k
1k
2k
0.8k
0.4k
0k
0k
0k
0.5k
0k
0k
0k
0k
0.4k
0k
0k
0.1k
返回服务器栏目
作者:
贺及楼
成为作者
更新日期:2024-01-15 13:15:55
这是很多设备常用的挂载点。
某些可引导的Linux系统仍旧使用该目录来挂载硬盘分区和远程文件系统。
提供挂载(mounting)和自动挂载设备的标准位置,
如远程文件系统和可移动介质(目录名为cdrecorder、floppy等)
该目录包含了Linux系统中使用的所有外部设备,
它实际上是访问这些外部设备的端口,
访问这些外部设备与访问一个文件或一个目录没有区别
包含代表系统设备访问点的文件。这包括终端设备(tty)、软盘(fd)、硬盘(hd)、RAM(ram)和CD-ROM(cd*)
在类Unix操作系统中,设备节点并不一定要对应物理设备。没有这种对应关系的设备被称之为伪设备。操作系统运用了它们实现多种多样的功能,/dev/null和/dev/zero就是这样的设备,类似的还有/dev/urandom、/dev/tty等。
先检查下/dev/null和/dev/zero两个文件的属性:
[root@dbserver ~]# ls -l/dev/null /dev/zero
crw-rw-rw-. 1 root root 1, 3Jul 15 00:11 /dev/null
crw-rw-rw-. 1 root root 1, 5Jul 15 00:11 /dev/zero
提示:从文件属性可以看出这两个文件都是字符设备文件。
1、/dev/null
1)/dev/null介绍
大家都知道宇宙中“太阳黑洞”吧,所有的天体(含地球)一旦进入了太阳黑洞都会消失的无影无踪。这里的/dev/null就是Linux系统中的"黑洞"。
在类Unix系统中,/dev/null(空设备文件或黑洞文件)是一个特殊的设备文件,所有写入其中的数据,都会被丢弃的无影无踪,/dev/null通常被用于丢弃不需要的数据输出,或作为用于输入流的空文件。这些操作通常由重定向完成。
[root@dbserver ~]# cp/etc/hosts{,.ori} #<==备份。
[root@dbserver ~]# cat /dev/null>/etc/hosts #<==将读取黑洞设备写入到/etc/hosts,表示清空hosts文件。
[root@dbserver ~]# cat/etc/hosts #<==果然没了。使用上述备份恢复回来。
当取一个地址响应头的第一行时,加上管道就会出现下面的特殊结果:
[root@dbserver ~]# curl -Iwww.cqsztech.com|head -1
% Total % Received % Xferd AverageSpeed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
HTTP/1.1 200 OK
执行上述命令时,会凭空多出来的几行无用信息,此时就可以使用将错误信息定向到黑洞(2>/dev/null)的方式丢弃无用信息。
[root@dbserver ~]# curl http://-Iwww.cqsztech.com 2>/dev/null|head -1 #<==将错误信息定向到黑洞。
HTTP/1.1 200 OK
当然了curl命令也提供了实现参数,这里暂且不多表。
[root@dbserver ~]# curl -I -s www.cqsztech.com|head-1
HTTP/1.1 200 OK
在书写定时任务总,规范的写法就是将所有定时任务脚本结尾加上>/dev/null 2>&1,让所有的输出流(包括错误的和正确的)都定向到空设备丢弃。
[root@dbserver ~]# crontab -l
#time sync by sztech at2010-2-1
*/5 * * * * /usr/sbin/http://ntpdatetime.windows.com >/dev/null 2>&1
#bak all db
00 01 * * * /bin/sh/server/scripts/mysqlbak.sh >/dev/null 2>&1
2、/dev/zero
1) /dev/zero介绍
和/dev/null类似,/dev/zero也是一个特殊的字符设备文件,当我们使用或读取它的时候,它会提供无限连续不断的空的数据流(特殊的数据格式流)。
/dev/zero文件的常见应用场景有二:
a./dev/zero文件覆盖其他文件信息。
b.产生指定大小的空文件,例如:交换文件、模拟虚拟文件系统等。
2)/dev/zero实践
[root@dbserver ~]# dd if=/dev/zeroof=test.data bs=1M count=2 #<==生成块大小1M,含有2个块的文件。
2+0 records in
2+0 records out
2097152 bytes (2.1 MB) copied,0.00279345 s, 751 MB/s
[root@dbserver ~]# ls -lhtest.data
-rw-r--r--. 1 root root 2.0MJul 15 20:20 test.data #<==一共2M大小。
[root@dbserver ~]# filetest.data
test.data: data #<==特殊的数据文件格式。
提示:在使用dd命令产生空文件时常用/dev/zero作为字符流的源。
[root@dbserver ~]# echo sztech>new.txt #<==生成一个新文件写入sztech字符串。
[root@dbserver ~]# dd if=/dev/zero of=new.txt bs=1M count=10 #<==用空的字符流覆盖存在的new.txt文件。
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied,0.0475368 s, 221 MB/s
[root@dbserver ~]# cat new.txt #<==数据丢失了。
服务器
整章节共174节
快分享给你的小伙伴吧 ~