配置与管理文件系统

目录

1.全面理解文件系统与目录

1.1认识文件系统

1.2常见的文件系统

1.3文件系统的特性

1.4 inode table

2.理解Linux文件系统目录结构

2.1 Linux系统中常见的目录名称及相应内容

3.理解绝对路径与相对路径

4.理解文件和文件权限

4.1文件类型权限

4.2连接

4.3拥有者

4.4所属群组

4.5文件容量,默认单位

4.6修改日期

4.7文档名

5.使用数字表示法修改权限

5.1改变权限 chmod

5.2使用文字表示法修改权限

5.3权限对文件的重要性

5.4权限对目录的重要性

6.文件与目录的默认权限与隐藏权限

6.1文件预设权限 umask

6.2 umask 的利用与重要性:专题制作

6.3文件隐藏属性

6.4lsattr 显示文件因此属性

1.全面理解文件系统与目录

1.1认识文件系统

文件系统是磁盘上特定格式的一片区域,操作系统利用文件系统保存和管理文件,用户在硬件储存设备中执行的文件建立、写入、读取、修改、转存与控制等操作都是依靠文件系统来完成的。文件系统的作用是合理规划硬盘,以保证用户正常的的使用需求。

1.2常见的文件系统

不同文件系统采用不同的方法来管理磁盘空间,各有优劣;文件系统是具体到分区的,所以格式化针对的是分区,分区格式化是指采用指定的文件系统类型对分区空间进行登记、索引并建立相应的管理表格的过程。Windows中的NTFS,FAT32。linux中的EXT2,EXT3,EXT4等。

ext2:具有极快的速度和极小的CPU占用率,可用于硬盘和移动存储设备

ext3:是一款日志式文件系统,增加日志功能,可回溯追踪

ext4:支持1EB(1024*1024TB),最大单文件16TB,支持连续写入可减少文件碎片。rhel6默认文件系统

xfs:是一种高性能的日志文件系统,可以管理500T的硬盘。rhel7默认文件系统

1.3文件系统的特性

传统的磁盘与文件系统之应用中,一个分区槽只能被格式化为一个文件系统, 所以我们可以称之为说一个 filesystem 就是一个 partition。 新技术的出现,如 LVM 与 软件磁盘阵列(software raid),这些技术可以将一个分区槽格式化 为多个文件系统(如 LVM),也可以将多个分区槽合并成一个文件系统(LVM、RAID)。 所以目前在格式化时已经不再说成针对 partition 来格式化了,通常我们可以称呼 一个可被挂载的数据为一个文件系统而不是一个分区槽

文件系统的运作与操作系统的文件数据有关。较新的操作系统的文件数据除了文件实际内容外, 通常有非常多的属性(例如 linux 的 rwx 群组等)。

文件系统通常会将这两部分数据分别存放在不同的区块:

假设 inode 4 中记录了 2、7、13、15 这 4 个 block 的号码,操作系统就能够依据此来排列磁盘的阅读顺序,可以一口气将 4 个 block 内容读出来。

这种数据存取方法称为「索引式文件系统(indexed allocation)。那么一般使用的 U 盘, 通常为 FAT 格式,这种文件系统没有 inode 存在,所以没法讲这个文件的所有 block 在一开始就读取出来。每个 block 号码都记录在前一个 block 中,读取方式如下图所示

它只能一个一个将 blcok 读出来后,才会知道下一个 block 在哪里。如果同一个文件数据写入的 block 分散太过厉害,则磁盘读取头可能需要多转好几圈才能读完整个文件内容

磁盘碎片 整理就是如此,文件写入的 block 太过于离散了,此时文件读取的效能将会变得很差。可以通过磁盘碎片整理程序将同一个文件所属的 blocks 汇总在一起,这样读取会比较容易。

1.4 inode table

inode 记录文件的属性和实际数据的 block 号码,基本上记录的文件信息至少有以下:

该文件存取模式(read、write、excute)

文件拥有者与群组(owner、group)

文件的容量

文件建立或状态改变实际(ctime)

最近一次的读取实际(atime)

最近修改的时间(mtime)

定义文件特性的旗标(flag),如 SetUID 等

该文件真正内容的指向(pointer)

inode 的数量与大小在格式化时以及固定,还有以下特点:

每个 inode 大小均固定为 128 bytes(新的 ext4 与 xfs 可设定到 256 bytes

每个文件仅会占用一个 inode

因此文件系统能建立的文件数量与 inode 的数量有关

系统读取文件时需要先找到 inode,并分析 inode 所记录的权限与用户是否符合,符合才会读取 block 的内容

2.理解Linux文件系统目录结构

有一块硬盘分成了四个分区,分别是/、/boot、/usr和Windows下的FAT,对于/和/boot或者/和/usr,它们是从属关系;对于/boot和/usr,它们是并列关系。

如果把Windows下的FAT分区挂载到/mnt/winc下,那么对于/mnt/winc和/usr或/mnt/winc和/boot来说,它们是从属于目录树上没有任何关系的分支。

因为Linux是一个多用户系统,所以要定制一个固定的目录规划,这样有助于对系统文件和不同的用户文件进行统一管理,但就是这一点让很多从Windows转到Linux的初学者感到头痛。

2.1 Linux系统中常见的目录名称及相应内容

/:根目录。

/bin:存放必要的命令。

/boot:存放内核以及启动所需的文件。

/dev:存放设备文件。

/etc:存放系统配置文件。

/home:普通用户的宿主目录,用户数据存放在其主目录中。

/lib:存放必要的运行库。

/mnt:存放临时的映射文件系统,通常用来挂载。

/proc:存放存储进程和系统信息。

/root:超级用户的主目录

/sbin:存放系统管理程序

/tmp:存放临时文件。

/usr:存放应用程序、命令程序文件、程序库、手册和其他文档。

/var:在正常操作中被改变的文件。

3.理解绝对路径与相对路径

绝对路径:从根目录开始直到文件位置

相对路径:相对于程序当前所在目录到文件位置

例:程序运行在C:/user/admin下,假设有一个文件file.txt

绝对路径:C:/user/admin/file.txt

相对路径:./file.txt

./ :代表文件所在的目录(可以省略不写)

…/ :代表文件所在的父级目录

…/…/ :代表文件所在的父级目录的父级目录

/ :代表文件所在的根目录

4.理解文件和文件权限

4.1文件类型权限

文件类型

d:表示目录

-:文件

l:连接文档(link file)

b:装置文件里面的可供存储的接口设备(可随机存取装置)

c:装置文件里面的串行端口设备、例如键盘、鼠标(一次性读取装置)

接下来就是三个为一组的「rwx」

r 代表刻度 read、

w 可写 write、

x 可执行 execute,如果没有则使用横线占位

第一组:文件拥有者的权限;

-rw-r--r--:就表示可读写,但是不可执行

第二组:加入此群组之账户的权限

第三组:非本人且没有加入本群组之其他账户的权限

4.2连接

表示有多少文档名连接到此节点(i-node)

每个文件都会将他的权限与数学记录到文件系统的 i-node 中,不过这里使用的目录树是使用文件名来记录, 因此每个文档名就会连接到一个 i-node,关于 i-node 后续会讲解

4.3拥有者

该文档(或目录)属于谁

4.4所属群组

该文档属于哪个组

4.5文件容量,默认单位

 bytes

4.6修改日期

这个文件的建档日期或则是最佳的修改日期

如果想显示完整的日期时间格式,可以利用 ls 的选项,ls -l --full-time

4.7文档名

特殊是 一个点 .,表示隐藏文件,至于更多的用法,自行查看 ls --help 或则 man ls 或 info ls 等文档.

5.使用数字表示法修改权限

5.1改变权限 chmod

chmod 指令改变权限有两种形式,一种使用数字,一种使用符号

数字类型改变文件权限

r = 4

w = 2

x = 1

每种身份 owner、group、others 各自的三个权限 r、w、x 分数是需要累加的, 例如权限是 -rwxrwx--- ,那么分数为:

owner:rwx = 4 + 2 + 1 = 7

group:rwx = 4 + 2 + 1 = 7

ohters:--- = 0 + 0 + 0= 0

语法为:

常用权限数值:

-rw-rw-r-- 664 :一般文件,可读可写无执行

-rwxr-x-r-x 755:shell 脚本文件,拥有者可读写执行,其他的都只能可读可执行,不可编辑

-rwxr------ 740:不希望该文件被其他人看到(能看到文件,但是不能读取里面的内容)

修改示例就是 chmod 740 text.txt

5.2使用文字表示法修改权限

权限分三组:

u:user,表示所有者。

g:group,表示属组。

o:other,表示其他用户。

a:all。表示以上3种用户。

5.3权限对文件的重要性

文件是实际含有数据的地方,包括一般文件、数据库文件、二进制可执行文件(binary program)等, 因此,权限对于文件来说,意义是:

r(read):可读取此文件的实际内容

w(write):可以修改文件内容,但是不能删除

x(execute):该文件具有可以被系统执行的权限

x 怎么理解呢?在 windows 中一个文件是否具有执行的能力是由扩展名来判断的,如 .ext、.bat 等, 在 linux 下就靠这个 x 来决定,根文档名没有关系

5.4权限对目录的重要性

目录主要的内容在记录文件名列表,文件名有目录有强烈的关联,rwx 对目录的意义如下

r(read contents in directory)

具有读取目录结构列表的权限,使用 ls 这指令就可以将该目录的内容列表显示出来

w(modify contents of directory)

表示你具有异动该目录结构列表的权限:

建立新的文件与目录

删除已存在的文件与目录(不论该文件的权限为何)

将以存在的文件或目录进行更名

搬移该目录内的文件、目录位置

6.文件与目录的默认权限与隐藏权限

6.1文件预设权限 umask

umask:指定目前用户在建立文件或目录时候的默认权限

在数值形态下有 4 组,第一组是特殊权限用的,先不看,因此预设情况如下:

文件

没有可执行(x)权限、只有 rw 两个项目,也就是最大为 666 分 -rw-rw-rw-

目录

由于 x 与是否可以进入此目录有关,因此默认所有权限均开发,即 777 分 drwxrwxrwx

6.2 umask 的利用与重要性:专题制作

你和你同学在同一个目录下 /home/class 合作一个专题,那么有没有可能你制作的文件,

如果 umask 设置为 0022 ,那么相当于 group 默认创建只有 r 属性,除了拥有者, 其他人只能读,不能写。所以需要修改 umask 的值

TIP

umask 对于新建文件与目录的默认权限很重要,这个概念可以用在任何服务器上面, 尤其是未来假设文件服务器(file server),如 SAMBA Server 或则是 FTP server 时, 牵涉到你的使用者是否能够将文件进一步利用的问题

原来在预设的情况下,身份不同默认值也是不同的,root 的 umask 默认是 022,一般账户是 002。 关于预设设定可以参考 /etc/bashrc 这个文件的内容,不过这里不建议修改该文件。

6.3文件隐藏属性

chattr 配置文件隐藏属性

强调:在 ext2/3/4 中完全支持,而在 xfs 上部分支持

+:增加一个特殊参数,其他参数不变

-:移除一个特殊参数

=:设定为后面接的参数

A:若有存取此文件/目录时,它的访问时间 atime 将不会被修改

S:对文件的修改变成同步写入磁盘中,一般默认是异步写入(前面章节讲到过 sync)

a:该问价只能增加数据,不能删除也不能修改数据,只有 root 才能设置该属性

c:自动将此文件压缩,在读取的时候也将会自动解压缩,但是在存储的时候,会先压缩后再存储(对大文件似乎有用)

d:当 dump 程序被执行的时候,可使该标记的文件或目录不被 dump 备份

i:让文件不能被删除、改名、设置连接、写入或新增数据,完完全全就是只读文件了。只有 root 能设置该属性

s:当文件被删除时,将会被完全的移除这个硬盘空间,所以如果误删,就找不回来了

u:与 s 相反,删除后,其实数据还在磁盘中,可以用来救援该文件

注意:

属性设置常见的是 a 与 i 的设置,而且很多设置值必须要 root

xfs 文件系统仅支持 AadiS 选项

i:无法被更动

a:不能修改旧的数据,只能新增

6.4lsattr 显示文件因此属性

语法: lsattr [-adR] 文件或目录

a:将隐藏文件的属性也秀出来

d:如果接的是目录,仅列出目录本身的属性而非目录内的文件名

R:连同子目录的数据也列出来

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值