文件系统

1、Linux文件层次结构

文件系统

在Linux根目录下有21个子目录,每个子目录的作用下文中有介绍,在这里简单介绍几个命令:
ls :显示当前目录下的文件;

文件系统

ls -a :显示当前目录下的所有文件;

  • 文件名以“.”开头的为隐藏文件;
  • .“代表当前目录;
  • ..” 代表上一级目录;

pwd :显示当前目录的绝对路径;

  • 绝对路径:从根目录开始列出所有路径;
  • 相对路径:从当前目录开始列出所有路径。

cd :切换目录。


2、文件类型

文件类型 符号表示 举例
普通文件 - .h .c .cpp .txt
目录文件 d 文件夹
管道文件 p 进程间通讯
链接文件 l 软连接和硬链接
块设备文件 b
字符设备文件 c 注:块设备文件、字符设备文件、套接字文件均属于设备文件
套接字文件 s

通过命令 ls -l 可显示文件属性,包括文件类型、文件权限、文件大小等。

文件系统

  1. 文件类型有 - 、 d、 p、 l、 b、 c、 s,在上述内容中有具体描述;
  2. 文件权限有 r(读权限)、w(写权限)、x(可执行权限)等。文件权限三个为一组,第一组表示所有者权限,中间组表示组用户权限,最后表示其他用户权限。这里的“-”表示无权限,也就是说没有这一项权限;
  3. 文件权限后的数字,如果是普通文件表示连接数,如果是目录文件表示其第一级子目录数;
  4. 用户后边的数字表示文件大小,单位为字节;
  5. 时间表示文件最后修改时间。

3、根目录下其子目录的作用

子目录 作用
/home 所有普通用户的家目录
/home/stu stu的家目录
/bin 命令所对应的可执行文件
/etc 系统的配置文件
/proc 虚拟目录:内存的映射(进程单位)
/root root用户的家目录
/dev 所有的设备文件
/lib 系统使用的库文件
/usr 系统安装的软件

4、Ext2系统

Ext2是Linux默认的文件系统。
文件除了实际内容外,还有文件属性等内容。文件系统通常将权限与属性放到inode中,记录实际数据的存储位置,即block编号,实际数据放置在data block区块中,另外还有一个超级区块(superblock)会记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量及文件系统信息等。
假设某一个文件的属性与权限放到inode3号,而这个inode记录了文件数据实际放置点为4、9、12、14这四个block号码,此时我们的操作系统就能够据此来排列磁盘的阅读顺序,就可以一口气将四个block内容读出来,如图所示。

文件系统
这种数据存取的方法称为索引式文件系统。除此之外,还有NTFS:Windows文件系统,FAT32:U盘文件系统。
FAT这种格式的文件系统没有inode存在,所以没有办法将所有的block在一开始就读取出来,每个block号码记录在前一个block当中,其读取方式如下。

文件系统
这种数据存取的方法称为链式文件系统。由于block过于离散,读取的效率会变差,需要进行碎片整理,将同一个文件所属的blocks汇整在一起,Ext2一般不需要。

在这里补充一个命令:ls -i ,显示文件inode编号。