• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

关闭

返回栏目

关闭

返回服务器栏目

32 - 功能 - /mnt->/media->/dev - 外部设备挂载

作者:

贺及楼

成为作者

更新日期:2024-01-15 13:15:55

/mnt (被media替代)

这是很多设备常用的挂载点。
某些可引导的Linux系统仍旧使用该目录来挂载硬盘分区和远程文件系统。

/media

提供挂载(mounting)和自动挂载设备的标准位置,
如远程文件系统和可移动介质(目录名为cdrecorder、floppy等)

/dev

该目录包含了Linux系统中使用的所有外部设备,
它实际上是访问这些外部设备的端口,
访问这些外部设备与访问一个文件或一个目录没有区别

包含代表系统设备访问点的文件。这包括终端设备(tty)、软盘(fd)、硬盘(hd)、RAM(ram)和CD-ROM(cd*)

/dev/null和/dev/zero

  1. 在类Unix操作系统中,设备节点并不一定要对应物理设备。没有这种对应关系的设备被称之为伪设备。操作系统运用了它们实现多种多样的功能,/dev/null和/dev/zero就是这样的设备,类似的还有/dev/urandom、/dev/tty等。
  2. 先检查下/dev/null和/dev/zero两个文件的属性:
  3. [root@dbserver ~]# ls -l/dev/null /dev/zero
  4. crw-rw-rw-. 1 root root 1, 3Jul 15 00:11 /dev/null
  5. crw-rw-rw-. 1 root root 1, 5Jul 15 00:11 /dev/zero
  6. 提示:从文件属性可以看出这两个文件都是字符设备文件。
  7. 1、/dev/null
  8. 1)/dev/null介绍
  9. 大家都知道宇宙中“太阳黑洞”吧,所有的天体(含地球)一旦进入了太阳黑洞都会消失的无影无踪。这里的/dev/null就是Linux系统中的"黑洞"
  10. 在类Unix系统中,/dev/null(空设备文件或黑洞文件)是一个特殊的设备文件,所有写入其中的数据,都会被丢弃的无影无踪,/dev/null通常被用于丢弃不需要的数据输出,或作为用于输入流的空文件。这些操作通常由重定向完成。

/dev/null实践,范例1-1:清空文件。

  1. [root@dbserver ~]# cp/etc/hosts{,.ori} #<==备份。
  2. [root@dbserver ~]# cat /dev/null>/etc/hosts #<==将读取黑洞设备写入到/etc/hosts,表示清空hosts文件。
  3. [root@dbserver ~]# cat/etc/hosts #<==果然没了。使用上述备份恢复回来。

/dev/null实践,范例1-2:将无用的输出流写入到黑洞丢弃。

  1. 当取一个地址响应头的第一行时,加上管道就会出现下面的特殊结果:
  2. [root@dbserver ~]# curl -Iwww.cqsztech.com|head -1
  3. % Total % Received % Xferd AverageSpeed Time Time Time Current
  4. Dload Upload Total Spent Left Speed
  5. 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
  6. HTTP/1.1 200 OK
  7. 执行上述命令时,会凭空多出来的几行无用信息,此时就可以使用将错误信息定向到黑洞(2>/dev/null)的方式丢弃无用信息。
  8. [root@dbserver ~]# curl http://-Iwww.cqsztech.com 2>/dev/null|head -1 #<==将错误信息定向到黑洞。
  9. HTTP/1.1 200 OK
  10. 当然了curl命令也提供了实现参数,这里暂且不多表。
  11. [root@dbserver ~]# curl -I -s www.cqsztech.com|head-1
  12. HTTP/1.1 200 OK

/dev/null实践,范例1-3:将定时任务脚本结尾加上>/dev/null 2>&1

  1. 在书写定时任务总,规范的写法就是将所有定时任务脚本结尾加上>/dev/null 2>&1,让所有的输出流(包括错误的和正确的)都定向到空设备丢弃。
  2. [root@dbserver ~]# crontab -l
  3. #time sync by sztech at2010-2-1
  4. */5 * * * * /usr/sbin/http://ntpdatetime.windows.com >/dev/null 2>&1
  5. #bak all db
  6. 00 01 * * * /bin/sh/server/scripts/mysqlbak.sh >/dev/null 2>&1
  7. 2、/dev/zero
  8. 1 /dev/zero介绍
  9. 和/dev/null类似,/dev/zero也是一个特殊的字符设备文件,当我们使用或读取它的时候,它会提供无限连续不断的空的数据流(特殊的数据格式流)。
  10. /dev/zero文件的常见应用场景有二:
  11. a./dev/zero文件覆盖其他文件信息。
  12. b.产生指定大小的空文件,例如:交换文件、模拟虚拟文件系统等。
  13. 2)/dev/zero实践

/dev/null实践,范例1-4:产生指定大小的空文件。

  1. [root@dbserver ~]# dd if=/dev/zeroof=test.data bs=1M count=2 #<==生成块大小1M,含有2个块的文件。
  2. 2+0 records in
  3. 2+0 records out
  4. 2097152 bytes (2.1 MB) copied,0.00279345 s, 751 MB/s
  5. [root@dbserver ~]# ls -lhtest.data
  6. -rw-r--r--. 1 root root 2.0MJul 15 20:20 test.data #<==一共2M大小。
  7. [root@dbserver ~]# filetest.data
  8. test.data: data #<==特殊的数据文件格式。
  9. 提示:在使用dd命令产生空文件时常用/dev/zero作为字符流的源。

/dev/null实践,范例1-5:利用/dev/zero文件覆盖其他文件信息

  1. [root@dbserver ~]# echo sztech>new.txt #<==生成一个新文件写入sztech字符串。
  2. [root@dbserver ~]# dd if=/dev/zero of=new.txt bs=1M count=10 #<==用空的字符流覆盖存在的new.txt文件。
  3. 10+0 records in
  4. 10+0 records out
  5. 10485760 bytes (10 MB) copied,0.0475368 s, 221 MB/s
  6. [root@dbserver ~]# cat new.txt #<==数据丢失了。