week5

文件系统

类别 描述
根文件系统 整个文件系统的基础,不能脱卸(unmount)
子文件系统 包含硬盘,软盘,…,以根根文件系统中某一目录的身份出现

注: 根文件系统和子文件系统都有其自己独立的文件存储结构,甚至文件系统的格式也不同。

创建与删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1. 在块设备文件 /dev/sdb上创建文件系统

mkfs /dev/sdb

2. 安装子文件系统mount,/mnt为预先创建的空目录名

mount /dev/sdb /mnt

3. 列出当前已安装的所有的子文件系统

mount

4. 卸载某个文件系统

unmount /dev/sdb

5. 显示文件系统空间

df -h

文件系统的结构

hh
hh
组成 描述
引导块 用于启动系统,仅根文件系统的引导块有效
专用块 存放文件系统的管理信息,例如文件系统的大小,i节点区的大小
i节点区 存放指向文件存储区数据块的一些索引指针,即逻辑地址与物理地址的映射,文件类型,不包含文件名
文件存储区 存放文件数据,包含目录表

i节点区

  • i节点区由若干块构成,在 mkfs 命令 创建 文件系统时 确定
  • 每块 可容 若干 个i节点,每个 i节点的大小是固定(比如 64kB)
  • i节点从0开始编号,根据编号可以索引到磁盘块
  • 每个文件度对应1个i节点
  • i 节点包含的信息:
    • 指向文件存储区数据块的一些索引 指向文件存储区数据块的一些索引指针
    • 文件类型,属组,权限,link数,大小,时戳,不包含文件名
      注:
  1. 目录表包含:文件名和i节点号
  2. ls命令列出的目录大小为目录表文件本身的长度
  3. 目录表和i节点两级结构主要是为了提高目录检索的效率

软,硬连接

硬连接:目录表中的“文件名-i节点号”映射关系,可以在同一目录或者不同目录中的两个文件项有相同的i节点号。

硬连接数目:同一i节点被目录项引用次数

创建硬连接: ln chapt0 intro

注:

  • chapt0与intro同时存在时,地位平等
  • 删除chapt0文件,则intro仍存在但link数减1
  • 硬连接,只限于同一文件系统的普通文件

符号连接:又叫做软连接

  • 文件仅包含一个路径名
1
2
ln -s users_on sym.link 
ls -l sym.link

符号连接中的相对路径:

  • 若符号连接文件包含绝对路径名,引用绝对路径名
  • 若包含相对路径名,是相对符号连接文件的位置,而非调用进程的当前工作目录

异同点:

  • 软连接在算法实现,可以在目录和不同的文件系统中使用

文件的权限

普通文件的权限:

  • 读、写、可执行,

  • 不可写文件也可能被删除

可执行文件:

  • 程序文件: 可执行文件

  • 脚本文件: 文本文件, 第一行#!执行解释器,脚本运行时,是由解释程序创建一个进程

目录的权限

  • 读权限, 是说能否访问目录表文件

  • 写权限,是说能否写目录表文件

    • 修改文件会修改i节点,不需要修改目录文件
    • 目录无写权限不是指目录下所有文件禁止写
    • 创建文件和删除文件,文件改名会修改目录文件
    • 无写权限,目录表文件不许写
  • 执行权限: 意味着分析路径名过程中可检索该目录

修改权限

chmod [ugoa][+-=][rwxst] 文件名表

u 文件主权限
g 同组用户权限
o 其他用户
a 所有

chmod 644 文件列表

注: 只允许文件主和超级 用户修改文件权限

unmask: 控制文件/目录的初始权限

unmask 打印当前值

unmask 022 将mask值设置为8进制的022,000 010 010 取消新文件和新目录的其他用户的w权限