设备的识别、挂载与文件查找
1、设备的识别
设备接入系统后都是以文件的形式存在。真实主机挂载U盘后,使用df
命令查看,出现/dev/sda,/dev/sdb
的东西,其中s表示SATA, d表示DISK a表示第几块,sda2
表示第一块硬盘的第二个分区,sdb1
表示第二块硬盘的第一个分区。
设备文件名称与识别的名称:
设备文件名称 | 识别的名称 |
---|---|
SATA/SAS/USB | /dev/sda,/dev/sdb |
IDE 老式并口U盘 | /dev/hd0,/dev/hd1 |
VIRTIO-BLOCK虚拟设备 | /dev/vda,/dev/vdb |
M2(SSD)固态硬盘 | /dev/nvme0,/dev/nvme1 |
SD/MMC/EMMC(迷你卡) | /dev/mmcblk0,/dev/mmcblk1 |
光驱 | /dev/cdrom,/dev/sr0,/dev/sr1 |
设备查看的命令:
(1)fdisk -l
查看磁盘分区情况
(2)lsblk
设备使用情况
(3)blkid
设备管理方式及设备id
(4)df
查看正在被系统挂载的设备
(5)cat /proc/partitions
查看系统识别设备
2、设备的挂载
U盘,必须要挂载后,才可以读取里面的数据。在系统中有设备id的设备是可以被系统使用的
(1)mount
查看挂载信息
(2)mount -o rw /dev/vda1 /westos
把/dev/vda1挂载到目录/westos,并且可以读写
(3)mount -o remount,ro /westos
转换挂载参数由读写变为只读
实验测试,先把挂载到/boot的设备卸载掉,以可以读写的形式挂载/dev/vda1到/boot,再把读写权限变为只读。使用,mount
查看是否成功。
查看最后一行,显示ro,成功了。
当卸载时出现设备正忙的提示,可以使用fuser -vm 设备/挂载点
命令查看谁占用了该挂载点的详细信息,或者直接fuser -kvm 设备/挂载点
结束进程,然后就可以卸载了。
注意:以上设备挂载的方式都是临时挂载,设备永久挂载需要编写挂载策略文件/etc/fstab
,其中内容包含设备名称、挂载点、文件系统类型、挂载参数、是否备份、是否检测。但是此文件在编写完成后不会马上生效,需要mount -a
重新读取/etc/fstab
文件。
此文件内容编写错误会导致系统启动失败,如下图,按照提示在操作界面输入超级用户密码,注释/etc/fstab
中的错误行,重启系统即可。
3、设备中文件的查找
(1)find 查找的目录 -name 文件名字
(2)find 查找的目录 -user 拥有者名字
(3)find 查找的目录 -group 拥有组名字
(4)find 查找的目录 -type 文件类型
(5)find 查找的目录 -perm 文件权限
(6)find 查找的目录 -maxdepth 目录层级
(7)find 查找的目录 -mindepth 目录层级
(8)find 查找的目录 -cmin 文件修改时间
(9)find 查找的目录 -size 文件大小值
建立实验素材,如下图,建立一系列文件与子文件,修改文件的拥有者拥有组,为了效果明显,在上边建立了监控。
测试命令,效果如下图,名字/用户/组/类型
如果查文件名字时,只是输入了关键词,不是全称,就无法查询,现在就需要把关键词双引号引起来,就可以出来所有的结果。假如我们只想查/mnt
的结果,不想要子目录/mnt/testdir
下的结果,需要加-maxdepth 1
参数,表示最大深度为1。
我们查询时也可以同时设定两个条件,测试如下图,第一句表示查询用户是lee的或者组是westos的文件,第二句表示查询用户是lee的并且组是westos的文件,第一句表示查询用户是lee的并且组不是westos的文件。
测试参数-size
,20M表示查询20M的文件,+20M表示查询大于20M的文件,-20M表示查询小于20M的文件。
测试参数-cmin
,+5表示查询文件修改时间距离现在大于五分钟的,-5表示查询文件修改时间距离现在小于五分钟的。
测试参数-perm
,先修改一系列实验权限来看效果,-perm 452
表示查询权限是452的文件,即u有读,g有读执行,o有写,三个条件都满足的文件。-perm -452
表示查询权限包含452的文件,即u至少有读,g至少有读执行,o至少有写,三个条件都满足的文件。-perm /452
表示查询权限452满足其中一个就行的文件,即u有读或者g有读执行或者o有写,三个条件满足其中之一的文件。