下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 linux文件系统

linux文件系统.doc

linux文件系统

爱情让皒明白生命里有痛
2019-06-16 0人阅读 举报 0 0 暂无简介

简介:本文档为《linux文件系统doc》,可适用于IT/计算机领域

解析Linux特殊文件Linux下可以用ls–l命令来判断文件类型,如上图所示。可以依据第一列中的个字符来判断。rwrr指明了txt文件是一个普通文件,txt和myprog文件都是普通文件。以‖―开头的都是普通文件,而以‖d‖开头的是目录文件。brwrw指明了devsda是一个块设备(BlockDevice)文件。以‖b‖开头的文件都是块设备文件。crwrw指明了devlp是一个字符设备(ChartacterDevice)文件,以‖c‖开头的文件都是字符设备文件。srwxrwxrwx指明了varlibmysqlmysqlsock是一个socket文件。以‖‖开头的文件都是socket文件。prwxrr指明了了mypipe是一个管道文件。管道文件的一个属性是‖p‖。lrwxrwxrwx指明了softlinkoftxt是一个软链接文件(或称符号链接文件),该文件指向了txt。以‖l‖开头的文件是软链接文件。rwrr开头的hardlinkoftxt看上去是个普通文件,但它实际上是一个硬链接文件。rwsrxrx指明了myprog是一个setUid的可执行文件,这是根据第四个字符‖s‖判断的。rwxrsrx指明了myprog是一个setGid的可执行文件,这是根据第七个字符中的‖s‖判断的。rwsrsrx指明了myprog是一个setUid加setGid的可执行文件,这是根据第四个和第七个字符中的‖s‖判断的。drwxrwxrwt中的第一个‖d‖字指明了tmp文件是一个目录,最后一个字符‖t‖指明了该目录被设置了粘着位。一、设备文件Linux下的dev目录中有大量的设备文件。主要是块设备文件和字符设备文件。块设备文件在过去,在添加新磁盘后,往往需要手动增加块设备文件。现在通常我们不需要手动增加块设备文件,运行一下servicekudzustart,系统就会自动为您配置相应的设备。块设备的主要特点是可以随机读写,而最常见的块设备就是磁盘,如devhda、devsda、devfd等。字符设备文件同块设备一样,我们一般都可以用servicekudzustart命令来自动增加、删除或修改字符设备。最常见的字符设备是打印机和终端,他们可以接受字符流。dev是一个非常有用的字符设备文件,送入这个设备的所有东西都被忽略。如果将任何程序的输出结果重定向到dev,则看不到任何输出信息。甚至于,您可以将某一用户的shell指向dev以禁止其登陆。管道设备文件管道设备文件有时候也被叫做FIFO文件(FIFO是先进先出的意思),从字面上理解,管道设备文件就是从一头流入,从另一头流出。通常我们会在其中做一些工作,以达到我们―吃的是草,挤出来的是奶‖的目的,管道文件也有其妙用。以前,Unix系统对文件的最大用量用GB的限制,虽然现在新版本的Linux、Solaris、FreeBSD等不再有此限制,但处理大文件的需求仍然存在,假设您想用镜像(dd命令)的方式来备份一个容量为GB分区的分区,就会产生一个GB的文件,根据您磁盘实际的使用状况,这个文件在压缩后可能只有数MB到数GB,我们可以建立一个管道文件来自动实现这个压缩过程。rootlinuxroot#mknodmypipeprootlinuxroot#lslmypipeprwrrrootrootAug:mypiperootlinuxroot#在这里,我们建立了一个叫mypipe的管道文件,用lsl命令可以看到它的属性是prwrr,用下面的组合命令实现镜像和压缩:rootlinuxroot#compress<mypipe>sdaimgZrootlinuxroot#ddif=devsdaof=mypiperootlinuxroot#lssdaimgZsdaimgZ第一个命令使得从mypipe管道中流出的文件被压缩为sdaimgZ文件,注意这个命令的结尾必须使用""符号。第二个命令将devsda分区中的资料道入管道文件mypipe,换句话说,devsda分区中的数据进入管道,而压缩文件sdaimgZ文件从管道中流出。在导出Oracle、DB等大型数据库时等经常会生成很大的文件,熟练的数据库管理员往往会选择通过管道进行压缩的方式,对于Oracle数据库,我们可以使用下边的组合命令:这样,就会将Oracle导出的内容直接压缩成为expdatdmpZ文件。compress<mypipe>expdatdmpZexpuserid=systemfile=mypipeowner=scott第二章链接文件链接文件有点类似于Windows的所谓快捷方式,但并不完全一样。链接有两种方式,软链接和硬链接。软链接文件软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。链接文件甚至可以链接不存在的文件,这就产生一般称之为"断链"的问题(或曰―现象"),链接文件甚至可以循环链接自己。类似于编程语言中的递归。yaoyaolinuxyaoyao$lsltotallrwxrwxrwxyaoyaoyaoyaoAug:txt>txtlrwxrwxrwxyaoyaoyaoyaoAug:txt>txtlrwxrwxrwxyaoyaoyaoyaoAug:txt>txt上面的三个文件形成了一个递归,实质上没有任何作用。系统管理员应该避免系统出现断链或循环链接。用lns命令可以生成一个软连接,如下:rootlinuxtest#lnssourcefilesoftlinkfile在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身。硬链接文件infoln命令告诉您,硬链接是已存在文件的另一个名字(A"hardlink"isanothernameforanexistingfile),这多少有些令人困惑。硬连接的命令是lndexistfilenewfile硬链接文件有两个限制、不允许给目录创建硬链接、只有在同一文件系统中的文件之间才能创建链接。对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。这时,系统就―忘记‖了它曾经是硬链接文件。而把他当成一个普通文件。三、setUid、setGid文件和带粘着位的目录文件在LinuxUnix下,有一种可执行文件被setUid,这使得任意使用者在执行该文件时,都绑定了文件拥有者的权限。就好像文件带了一把尚方宝剑一样,setUid文件通常用来提升使用者的权限最有代表性的su命令普通用户可以可以执行该命令,使自己升级为root。setUid命令的用法是:chmodyourprogramsetGid文件和setUid文件非常类似,它使得这使得任意使用者在执行该文件时,都绑定了文件所有组的权限单独setGid的文件非常少用,通常都是即setUid又setGid。不过和您猜想的可能有点不同。setUidsetGid通常并不是用来提升权限的,而是为了绑定某个特殊用户及其组的特殊权限,例如qmail的外围软件vpopmail,就使用了一个setUidsetGid的程序vchkpw来校验用户名和密码。这个道理和Apache常常以nobody用户运行一样。其目的是为了更加安全。setGid命令的用法为chmodyourprogram通常使用命令chmodyourprogram来使得某可执行程序同时setUid和setGid全能的root用户当然可以任意setUid和setGid。但尚方宝剑不能用来假传圣旨,普通用户只能给属于自己的文件配置setUid或setGid。由于setUid或setGid文件会使普通用户提升权限,谨慎的系统管理员通常会留意系统中有setUid或setGid文件的变化。减少安全隐患。在Linux下,tmp是一个存放临时文件的目录,要求是对所有用户可写。但每个用户都只能删除自己拥有的文件。这种情况下,就可以把目录加一个粘着位。rootyaoyao#lsl|greptmpdrwsrwsrwtrootroot月:tmp注意第是个字符"t",它代表了这个目录被设置了粘着位。我们自行建立一个abc的目录,使之具有和tmp相同的特点chmodabcchmodtabc上述的个两个命令组合等同于下边的一个命令:chmodabc用ls–l看abc目录的属性如下:rootyaoyaotest#lsl总用量drwsrwsrwtrootroot月:abc和tmp目录相同的需求往往在ftp服务器的upload目录中也存在。可以用相同的方式处理。四、socket文件socket文件类似于管道,但它是在网络上面工作的。您到计算机就是靠它来做网络处理的。您可能听说过―Winsock‖,那是Windows的套接口。我们在这里不深入谈有关套接口,因为如果您不写程序,您不会用到它,但如果您看到您系统里有个文件类型是s,您知道它是什么就行了。比如说mysql运行的时候通常会产生一个socket文件。rootyaoyaotmp#lsltmpmysqlsocksrwxrwxrwxmysqlmysql月:mysqlsocktmp目录下还有一些socket文件,多半是运行Xwindows的时候产生的。五、疑难杂症删除不掉的文件―为什么有些文件以讨厌的减号("")开头做文件名,无论如何都删除不掉,这到底为什么",您可能听过您临桌的新手这样的叫喊过,希望同样的事情不会发生在您的身上,这个非常容易解决,您只要用带路径的方法就可以把他们删除了,假定一个文件名为"abc",您可以用:rmabc或者rmhomeyaoyaoabc

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/8

linux文件系统

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利