liunx 文件系统
- 访问控制列表 (ACL)
在实际使用使用过程中,可能linux系统自身权限控制不能满足要求,还需要进一步细化,此时可以用ACL(Access Control List)进行,它主要提供 owner,group,others 的 read,write,execute 权限之外的细部权限配置。它可以针对单一使用者,单一文件或目录来进行
r,w,x
的权限规范,对于需要特殊权限的使用状况非常有帮助。 - 安装:
Ubuntu 使用 :apt-get install acl
centos 使用 :yum install acl getfect 文件名
:获取文件的ACL详细信息,当文件不包含ACL时,显示的信息与ls -l 命令相同
setfact
命令设置文件精细权限,格式如下:
其中ugo分别是u或g或o,分别对应设置用户、组及其他用户对文件的访问权限。name为用户或组名,如果是o则无需指定,permissions是为待设置的权限,file-list
获取目录或文件的acl
给目录添加acl
链接
- 硬链接:inux中的硬链接另一个文件的形式出现在文件结构中,如果硬链接与被链接文件在同一个目录中,则名字必须不一样,不在同一个目录的话,可以没有此要求
- 硬链接以文件形式存在,但它实质上指向的是同一个文件,只不过是创建了指向目标文件的指针,即ln命令不会创建文件的副本,即它与cp命令有着本质的区别,如下图所示
- linux操作系统除了支持硬链接之外,还支持符号链接(symbolic link)或软链接(soft link)。硬链接是直接指向文件的指针,它除了可以创建文件的符号链接之外,还可以创建目录的符号链接。先看几个例子
- 符号链接可以指向一个不存在的文件
- 硬链接由于采用的是指针的方式,如果文件删除,它将一直指向已删除的文件,而软链接总是指向新创建的文件
- 创建新的test.txt文件之后,符号链接指向新文件,硬链接仍然指向被删除的文件
压缩 和 归档文件
- bzip2 命令压缩和解压文件(不能压缩文件路径下的所有文件)
bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。
压缩命令: bzip2 filename
解压命令: bunzip2 profile.bz2
- tar打包文件:采用
tar -cvf
命令进行目录或文件的打包, c 表示create,v 表示verbose,显示详细信息,f 表示从一个文件进行读写,打包好的文件以tar作为扩展名结尾
压缩命令: tar -cvf test.tar(压缩后的文件名) profile(被压缩的文件或目录)
解压命令:tar -tvf test.tar
- gzip压缩与解压缩文件:压缩后的文件以.gz结尾;压缩完文件后会产生.gz的压缩文件,并删除原始的文件
压缩命令: gzip profile(被压缩的文件)
解压命令:gunzip profile.gz
- 对于 文件名.tar.gz 文件的解压命令
tar -zxvf 文件名.tar.gz
- zip 命令压缩和解压文件
压缩命令: zip -r 文件名.zip(压缩后的文件命名) 文件名(被压缩的文件或目录)
解压命令: unzip 文件名.zip
查找文件的命令
which 查看可执行文件的位置 命令格式: which 可执行文件名称 (which是通过 PATH环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件)
whereis 查看文件的位置 命令格式: whereis [-bmsu] 文件或者目录名称
参数说 明:
-b : 只找二进制文件
-m : 只找在说明文件manual路径下的文件
-s : 只找source源文件
-u : 没有说明文档的文件
locate 配合数据库查看文件位置 命令格式: locate 文件或者目录名称
find 实际搜寻硬盘查询文件名称 命令格式: find 路径 参数
参 数说明:
时间查找参数:
-atime n :将n*24小时内存取过的的文件列出来
-ctime n :将n*24小时内改变、新增的文件或者目录列出来
-mtime n :将n*24小时内修改过的文件或者目录列出来
-newer file :把比file还要新的文件列出来
名称查找参数:
-gid n :寻找群组ID为n的文件
-group name :寻找群组名称为name的文件
-uid n :寻找拥有者ID为n的文件
-user name :寻找用户者名称为name的文件
-name file :寻找文件名为file的文件(可以使用通配符)
##############################################################
当我们用 whereis 和 locate 无法查找到我们需要的文件时,可以使用 find,但是 find 是在硬盘上遍历查找,因此非常消耗硬盘的资源,而且效率也非常低,因此建议大家优先使用whereis和locate。
locate 是在数据库里查找,数据库大至每天更新一次。
whereis 可以找到可执行命令
find 就是根据条件查找文件。
which 可以找到可执行文件和别名