特殊的权限
SUID: 2 用户执行此二进制程序时,在执行过程中用户会暂时具有所有者权限
*仅对于二进制程序有效
*执行者对于该程序必须有x权限
*该权限只在执行过程中有效
*执行者将具有改程序owner权限
SetUID:当文件所有者的x权限变成s时,就称SetUID.
SGID: 4 用户在这个目录下创建的文件用户组都会和该目录的用户组名相同
*SGID对于二进制程序是有效的,但我们更多的使用在目录上
*程序的执行者对于改程序必须具有x权限
*执行者在执行的过程中将会获得该用户组支持
*该目录下的有效用户组将和该目录相同
SBIT: 1 该目录下用户创建的文件只有该用户自己和root用户可以删除
文件的查询
1.脚本文件的查询 which
*该命令是根据PATH规范的路径查询可执行文件的文件名,不同的用户查出的结果可能不一样
*bash的内置命令用which无法查询。可以使用type来查询
2.文件名的查询 whereis
-b(二进制文件) -s(只查找source文件) -m(只查找说明文件) -u(查找不是上述三种的文件)
**whereis的速度比find快,因为find是直接查找硬盘,而whereis和下面的locate都是查找系统记录文件的数据库文件
有时你会发现用whereis 和locate可以查到已经被删除的文件,这与系统的数据库文件有关
3.不完整的文件名查询 locate
**由于是到数据库查找文件,所以每次查找之前可以更新一下数据库,不然可能查找不到新建的文件
更新数据库使用updatedb就可以了!
4.强大的查询命令 find
a.时间参数
-mtime : 1.n n天之前的那天被修改过
2.+n 在n天之前那被修改过
3. -n 在n天之内被修改过
**系统默认显示mtime
-ctime:access time
-atime : status time
b.用户及用户组参数
-uid n -gid n -user name
-group name -nouser -nogroup
c.文件名称、权限、类型
-name -size [+/-]SIZE -type TYPE -perm [+/-/ ]mode
d.其他参数
-exec command 将查找到的结果使用command处理
-print 将结果打印到屏幕(默认的选项)
Linux的文件系统操作
由于所有数据都要加载到内存之后CPU才能处理,如果经常要编辑一个大文件速度又要频繁的写入磁盘,如果你的硬盘已经服役很久了那么这个过程是真的很慢的,为了提升效率,Linux做了这样的努力:
采用异步处理解决效率问题
被设置为Dirty的文件会不定时被系统写回磁盘来保持磁盘文件和内存数据的一致性。但是并不是在你修改是直接写回
但我们可以使用sync强制将修改的文件写回磁盘保证我们的文件在磁盘里的保存,一般在关机前使用
*系统会将常用的文件数据放到主存的缓冲区来加速文件系统的读写
*正常关机时,关机命令会主动调用sync
*非正常关机并且不使用sync会导致文件数据未能及时写回,下此开机时会进行磁盘检验,也可能导致文件系统损毁(非磁盘损毁)
挂载点
挂载:将文件系统和目录树结合在一起的操作
**挂载点一定是目录,即该目录为进入该文件系统的入口。所以文件系统必须挂载在目录树的某个目录之后才能使用
·其他Linux支持的文件系统
Linux的标准文件系统是ext2
·传统文件系统:ext2 minix MS-DOS FAT iso9660
·日志文件系统:ext3 ReiserFS Windows'NTFS IBM'sJFS SGI'sXFS
·网络文件系统:NFS SMBFS
VFS:虚拟文件系统 用于读取文件系统 自动帮助我们识别文件系统并且进行管理
磁盘及目录的容量
1.df:列出文件系统的整体盘使用量
常用选项 -h 以GB,MB,KB显示 -i 不用硬盘容量而使用inode容量显示
*/dev/shm是易用内存虚拟出来的磁盘空间,访问速度很快,但里面创建的文件关机就丢失了
2.du:评估文件系统的磁盘使用量
常用选项 -s 仅列出总容量而不列出各个目录占用的容量