linux中设备的访问

1.设备的访问

   1)设备的发现

   fdisk -l                           ##查看真实存在被识别的设备
   cat  /proc/partitions       ##系统能够识别的设备
   blkid                              ##系统能够挂载使用的设备id
   df                                   ##查看已经被系统使用的设备情况

  
lsof /dev/sdb1               ##查看设备使用的进程

   linux中设备的访问_第1张图片

   linux中设备的访问_第2张图片

  2)设备的识别
     /dev/xdxn                    ##硬盘设备/dev/sda1
     /dev/cdrom                 ##光驱
     /dev/mapper/*            ##虚拟设备

  3)设备的使用
     *)设备的挂载
        mount      设备   挂载点
        例如:mount         /dev/sdb1    /mnt        #把系统中第二块硬盘的第一个分区挂载到/mnt目录上

        linux中设备的访问_第3张图片

        linux中设备的访问_第4张图片

           **插上U盘(/dev/sdb1),挂载之前用df命令查看其挂载位置(系统自动挂载在/run/media/kiosk/15BA-BF02),手动挂载在/mnt下,再用df命令查看挂载位置

     **)卸载设备
        umount        设备|挂载点

   **如出现以下情况:
   [root@foundation0 ~]# umount /dev/sdb1
   umount: /home/kiosk/Desktop/photo: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
   解决:fuser -kvm     设备|挂载点    ##-k kill ,-v显示详细信息,-m扫描设备
   linux中设备的访问_第5张图片
   **进入/mnt目录(此时/dev/sdb1挂载在此处),卸载时出现错误,因为设备正在使用,这时可以用fuser命令杀掉用户对该设备的挂载进程(因为我是用普通用户的shall切换到超级用户的,所以超户的bash进程也被杀掉,需要再次切换到超级用户),就可以正常卸载设备了
2.软硬链接
   ls  -l                           ##查看文件节点号
   ln  -s  /file  /file1        ##建立软链接,多个结点对应一个数据区
   ln  /file  /file1             ##建立硬链接,一个结点对应多个数据区

   linux中设备的访问_第6张图片

   **创建两个文件file1,file2,file1创建软连接,file2创建硬链接,再看其属性,显示file1只被记录了一次,file11为指向file1的超链接内部并没有实际数据,file2则被记录了两次,分别为file2和file22(他们记录着同样的数据,删除该文件需要删除两次)。 

3.文件查找
   1.locate filename        ##在文件数据库中搜索filename信息,updatedb更新文件数据库
   2. find     查找位置    -条件    条件值     -exec 动作 {} \;
                                    -name
                                    -not    条件
                                    -user
                                    -group
                                    -size
                                    -perm
                                    --maxdepth
                                    --mindepth
                                    -a
                                    -o
                                    -type    f     文件
                                                d    目录
                                                c    字符设备
                                                b    块设备
                                                s    套节字
                                                l     链接
例子:               
find /mnt -user student                                          ##查找/mnt下所有人为student的文件
find /mnt -group linux                                            ##查找/mnt下所有组为linux的文件
find /mnt -user student -a -group linux                  ##查找/mnt下所有人为student
并且所有组为linux 的文件
find /mnt -user student -o -group linux                  ##查找/mnt下所有人为student或者所有组为linux的文件
find /mnt -user student -a -not -group linux           ##查找/mnt下所有人为student并且所有组不是linux的文件     

dd if=/dev/zero of=/mnt/file1 bs=1024 count=10 ##从/dev/zero中截取数据到/mnt/file1中,每部分1024b,共截取10份

find /mnt -size 10k                                               ##查找/mnt下文件大小为10k的文件

find /mnt -size -10k                                              ##查找/mnt下文件大小小于10k的文件

find /mnt -mindepth 1 -size -10k                           ##查找/mnt下文件大小小于10k的文件,最小深度为0(深度0为/mnt/目录本身)

find /mnt/ -perm 007     查找/mnt/目录下权限为007的文件
find /mnt/ -perm -007    查找/mnt/目录下包含007权限的文件
find /mnt/ -perm /027    查找/mnt/目录下存在007权限的文件


你可能感兴趣的:(linux中设备的访问)