Linux之/dev目录介绍

Linux之设备文件目录
01

dev文件目录介绍

Linux中的dev文件目录的全称是device设备的英文,这个目录包含了所有linux中使用的外部设备,但是不包含外部设备的驱动信息。我们先来看看这个目录中包含哪些文件吧:

[root@ dev]# ls
agpgart          disk       kmsg   MAKEDEV             ram0   ram8    sg1       tty11  tty24  tty37  tty5   tty62    vcs3         zero
autofs           dm-0       log    mapper              ram1   ram9    sg2       tty12  tty25  tty38  tty50  tty63    vcs4
block            dri        loop0  mcelog              ram10  random  shm       tty13  tty26  tty39  tty51  tty7     vcs5
bsg              dvd        loop1  mem                 ram11  raw     snapshot  tty14  tty27  tty4   tty52  tty8     vcs6
btrfs-control    dvdrw      loop2  net                 ram12  root    snd       tty15  tty28  tty40  tty53  tty9     vcsa
cdrom            fb         loop3  network_latency     ram13  rtc     sr0       tty16  tty29  tty41  tty54  ttyS0    vcsa1
cdrw             fb0        loop4  network_throughput  ram14  rtc0    stderr    tty17  tty3   tty42  tty55  ttyS1    vcsa2
char             fd         loop5  null                ram15  scd0    stdin     tty18  tty30  tty43  tty56  ttyS2    vcsa3
console          full       loop6  nvram               ram2   sda     stdout    tty19  tty31  tty44  tty57  ttyS3    vcsa4
core             fuse       loop7  oldmem              ram3   sda1    systty    tty2   tty32  tty45  tty58  urandom  vcsa5
cpu              hpet       lp0    port                ram4   sda2    tty       tty20  tty33  tty46  tty59  usbmon0  vcsa6
cpu_dma_latency  hugepages  lp1    ppp                 ram5   sda3    tty0      tty21  tty34  tty47  tty6   vcs      vga_arbiter
crash            hvc0       lp2    ptmx                ram6   sdb     tty1      tty22  tty35  tty48  tty60  vcs1     vmci
data             input      lp3    pts                 ram7   sg0     tty10     tty23  tty36  tty49  tty61  vcs2     vsock

linux将所有的设备认为是一个文件,这种文件分为两种,分别是块设备文件block和字符设备文件char。上面的结果的一些文件目录解释如下:

/dev/agpgart:agp接口设备

/dev/hd[a-t]:IDE设备 /dev/sd[a-z]:SCSI设备 /dev/fd[0-7]:标准软驱 /dev/md[0-31]:软raid设备 /dev/loop[0-7]:本地回环设备 /dev/ram[0-15]:内存 /dev/null:无限数据接收设备 ,相当于回收站 /dev/zero:无限零资源 /dev/tty[0-63]:虚拟终端 /dev/ttyS[0-3]:串口 /dev/lp[0-3]:并口 /dev/console:控制台

/dev/fb[0-31]:framebuffer

剩余的一些文件目录,暂时不是特别清楚,后面搞清楚了,再写出来,这里给出一个参考链接,感兴趣的朋友可以上去看看:https://blog.csdn.net/sinat_36184075/article/details/71598834

这里我们说下几个有用的文件:

1:/dev/null是一个非常有用的字符设备文件,送入这个设备的所有东西都被忽略,如果将任何程序的输出结果重定向到/dev/null,则看不到任何输出信息,可以将它理解为一个“无底洞”。甚至于,我们可以将某一用户的shell指向/dev/null,从而禁止其登陆;

2:stderr,stdin,stdout是标准错误,标准输入,标准输出,通常和上面的/dev/null搭配起来使用,使用方法如下:

ls -l /bin/usr 2> /dev/null

df -h命令结果解析

02

关于df -h命令,之前10月8日的文章中已经写过一篇,今天我们主要来看看df -h查询出来的这几个目录的介绍,首先看看df -h这个磁盘使用率查看命令的输出结果:

[dba_mysql@dev]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3              G  6.3G   G  % /
tmpfs                 7.8G   K  7.8G   % /dev/shm
/dev/sda1             M   M  M  % /boot
/dev/mapper/data-main
                      G  G   G  % /data
10.XX.XXX.242:/data/mysql
                       T   T   T  % /data/backup_hp242/mysql

可以看到,命令中一共列出了5条文件系统记录,我们分别进行说明:

1.第1条和第3条都是/dev/sda开头的文件系统,要搞清楚他们的区别,首先需要了解/dev/sda这个文件目录的含义,/dev/sda是指在SATA、SCSI第一个接口上的硬盘,一般来讲,硬盘会进行分区,也就是/dev/sda1,/dev/sda2等等,上面命令结果中的文件系统就和这个一样。

2.上面结果中的第4行代码,也就是tmpfs文件,对这个文件,查询了网上的相关资料,解释如下:tmpfs是一种虚拟内存文件系统,而不是块设备,它是基于内存的文件系统,创建时不需要使用mkfs等初始化。它最大的特点就是它的存储空间在VM(virtual memory),VM是由linux内核里面的vm子系统管理的。linux下面VM的大小由RM(Real Memory)和swap组成,RM的大小就是物理内存的大小,而Swap的大小是由自己决定的。 Swap是通过硬盘虚拟出来的内存空间,因此它的读写速度相对RM(Real Memory)要慢许多,当一个进程申请一定数量的内存时,如内核的vm子系统发现没有足够的RM时,就会把RM里面的一些不常用的数据交换到Swap里面,如果需要重新使用这些数据再把它们从Swap交换到RM里面。如果有足够大的物理内存,可以不划分Swap分区。

VM由RM+Swap两部分组成,因此tmpfs最大的存储空间可达(The size of RM + The size of Swap)。 但是对于tmpfs本身而言,它并不知道自己使用的空间是RM还是Swap,这一切都是由内核的vm子系统管理的。 tmpfs默认的大小是RM的一半,假如你的物理内存是1024M,那么tmpfs默认的大小就是512M,一般情况下,是配置的小于物理内存大小的。 tmpfs配置的大小并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是不会被系统回收重新划分的。 当删除tmpfs中文件,tmpfs文件系统驱动程序会动态地减小文件系统并释放 VM 资源。

它的用途如下:

LINUX中可以把一些程序的临时文件放置在tmpfs中,利用tmpfs比硬盘速度快的特点提升系统性能。

3. /dev/mapper/data-main文件系统,Device mapper是Linux2.6内核中提供的一种从逻辑设备到物理设备的映射机制,在该机制下,用户能够很方便的根据自己的需要实现对存储资源的管理。在具体管理时需要用到Linux下的逻辑卷管理器,当前比较流行的逻辑卷管理器有 LVM2(Linux Volume Manager 2 version)、EVMS(Enterprise Volume Management System)、dmraid(Device Mapper Raid Tool)等。

4.10.XX.XXX.242:/data/mysql 这个目录是公司的外部备份机的nfs挂载目录

关于tmpfs和/dev/mapper,还有很多相关的概念需要说明,如果有兴趣,可以在网上查看,后续看时间,有空我会整理出来tmpfs和/dev/mapper相关的文章。

本文分享自微信公众号 - DBA随笔(gh_acc2bbc0d447)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券