首页 > 代码库 > 第十四单元 linux中的设备访问
第十四单元 linux中的设备访问
第十四单元
linux中的设备访问
一 设备访问
1 设备识别
/dev/xdxn:硬盘设备/dev/sda1
/dev/cdrom:光驱
/dev/mapper/*:虚拟设备
2.设备的使用
查看设备:
fdisk -l:查看真实存在的设备
cat /proc/partitions:系统能够识别的设备
blkid:系统能够挂载使用的设备id
df:查看设备被系统使用的情况
设备挂载:
mount 设备挂载点
mount /dev/sdb1/mnt#把系统中第二块硬盘的第一个分区挂载到/mnt目录上
设备卸载:
umount 设备|挂载点
如出现以下情况:
[root@foundation78 mnt]# umount /mnt/
umount: /mnt: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
解决:
1 fuser -vm 设备|挂载点:-v显示详细信息,-m扫描设备
2 lsof 设备|挂载点
格式化u盘:
mkfs.vfat /dev/sdb
二 软硬链接
1 硬链接:1个节点对应多个数据块。如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了源文件的内容。
2 软链接:多个节点对应一个数据块。软链接可以看成一个文本文件,它的内容是保存目标文件名的路径地址。如果,把源文件删除,软链接文件就不存在了
通俗一点可以将硬链接当成原文件的副本,他显示跟原文件一样的大小但事实上却不占任何空间,软链接可以理解成windows的快捷方式
ls -i :查看文件节点号
ln -s /file /file1:软链接
ln /file /file1:硬链接
实验1 硬链接:在/mnt下建立文件westos ,文件内容为westos linux ,查看该文件的节点号,和被系统记录的次数,发现为1,然后建立硬链接,ln /mnt/westos /opt/ , 再查看/opt/westos 信息 ,发现被系统记录的次数变成2,rm -fr /opt/westos 后又变成1
实验2 软链接:删除源文件,再查看软链接文件是否存在
三 文件查找
1 locate filename : 在文件数据库中搜索filename信息
updatedb : 更新文件数据库
建立一个新文件后,要用locate 搜索该文件信息,则要先updatedb更新文件数据库
2 find
find 查找位置-条件条件值 -exec 动作 {} \; :-exec对匹配到的文件进行操作,后面跟随所要执行的命令,{}指匹配到的文件,\; 是格式
例1:对/mnt下所有其他用户有写权限的修改权限,使其他用户不具有写权限
find /mnt -perm -022 -exec chmod o-w {} \;
例2:将/etc/下所有名字以.conf结尾的都备份到/mnt/下
find /etc/ -name *.conf -exec cp {} /mnt/ \;
例3:将/下文件所有组为mail的文件复制到/mnt/mailbackup/,只要正确输出
find / -group mail -a -type f 2> /dev/null -exec cp -p {} /mnt/maibackup/ \;
-name :名称
-not条件
-user :所有人
-group :所有组
-size :大小
-maxdepth :最大深度
-mindepth :最小深度
-a :并且
-o :或者
-perm :权限
例1:find /mnt/ -perm 444 :找到/mnt/ 下权限为444的
find /mnt/ -perm /444 :找到/mnt/下权限满足其中一个即可
find /mnt/ -perm -444 :找到/mnt/下满足u有4,g有4,o有4的
-typef :文件
d :目录
c :字符设备
b :块设备
s :套节字
l :链接
例2:查找/下其他用户有写权限,且类型为不是链接:
find / -perm -002 -a -not -type l
例3:查找/下文件所有组为mail的文件
find / -group mail -a -type f
若是不想要错误输出:2> /dev/null
find /mnt -user student
find /mnt -group linux
find /mnt -user student -a -group linux
find /mnt -user student -o -group linux
find /mnt -user student -a -group linux
find /mnt -user student
find /mnt -user student -a -not -group linux
/dev/zero是一个特殊的设备文件,它代表一个永远输出0的设备文件,使用它作输入可以得到全为空的文件。因此可用来创建新文件和以覆盖的方式清除旧文件。
使用dd命令将从设备中创建一个10k ,20k ,30k大小(bs决定每次读写1024字节,count定义读写次数为10次),但是内容全为0的文件
dd if=/dev/zero of=/mnt/file1 bs=1024 count=10
dd if=/dev/zero of=/mnt/file2 bs=1024 count=20
dd if=/dev/zero of=/mnt/file3 bs=1024 count=30
find /mnt -size 10k :找出/mnt下大小为10k的文件
find /mnt -size -10k :找出/mnt下大小小于10k的文件
find /mnt -size +10k :找出/mnt下大小大于30k的文件
第十四单元 linux中的设备访问