Linux-文件系统基础

50次阅读

共计 3416 个字符,预计需要花费 9 分钟才能阅读完成。

文件系统概述

操作系统中与管理文件有关的软件和数据
Linux 文件系统采用的是树形结构
Linux 支持多种文件系统
Linux 文件系统提供丰富的文件和目录操作命令

Linux 文件系统的特点

1.Linux 文件系统采用树形结构,从根目录 root(/)开始。
2.Linux 的虚拟文件系统允许众多不同类型的文件系统共存,并支持跨文件系统的操作。
3.Linux 的文件是无结构字符流式文件,不考虑文件内部的逻辑结构,只把文件简单地看作是一系列字符的序列。
4.Linux 的文件可由文件拥有者或超级用户设置相应的访问权限而受到保护。
5.Linux 把所有的外部设备都看作文件,可以使用与文件系统相同的系统调用和函数来读写外部设备。

Linux 文件系统的组成

  • /home:用户主目录的基点目录,默认情况每个用户主目录都设在该目录下,如默认情况下用户 user01 的主目录是 /home/user01;
  • /lib:存放标准程序设计库目录,又叫动态链接共享库目录,目录中文件类似 windows 里的.dll 文件;
  • /etc:存放系统管理和配置文件目录;
  • /dev:存放设备特殊文件目录,如声卡文件、磁盘文件等;
  • /usr:最庞大的目录,存放应用程序和文件目录;
  • /proc:虚拟目录,是系统内存的映射,可直接访问这个目录来获取系统信息;
  • /root:系统管理员的主目录;
  • /tmp:存放公用临时文件目录。
  • /sbin/usr/sbin:系统级的命令与工具目录;
  • /bin/usr/bin:用户级的命令与工具目录;
  • /usr/include:C 语言,内核编译所需要的头文件存放目录;
  • /lib/usr/lib:库文件存放目录,其中有表态库和动态库;
  • /usr/src:Linux 源代码目录,编译内核时使用;
  • /var:通常用来存放一些经常变化的内容,比如各种网络服务的工作目录都在这里;

Linux 文件系统类型

EXT 文件系统

  • Linux 的第一个版本是基于 Minix 文件系统的。当 Linux 成熟时,引入了扩展文件系统(ext 文件系统),ext 是第一个专门为 Linux 设计的文件系统。但由于 ext 文件系统在稳定性,速度和兼容性方面存在不少缺陷,已经很少使用。
  • Linux 在 1994 年引入了二级扩展文件系统(second extended file system,ext2),相当高效和稳定,是 Linux 系统默认使用的文件系统。ext2 文件系统是非日志文件系统,这在关键行业的应用是一个致命的弱点。
  • ext2 文件系统经过逐步改进形成了 ext3 文件系统,这个新的文件系统在设计时牢记了两点,一是成为一个日志文件系统,二是尽可能与原来的 ext2 文件系统兼容。

目前 ext3 文件系统非常稳定可靠,该文件系统具有如下特点:

  1. 高可用性
    Linux 系统使用 ext3 文件系统后,即使非正常关机,系统也不需要检查文件系统。
  2. 数据的完整性
    ext3 文件系统能够极大地提高文件系统的完整性,避免了意外关机对文件系统的破坏。
  3. 文件系统的速度
    ext3 文件系统的日志功能对磁盘的驱动器读写头进行了优化。
  4. 数据转换
    由 ext2 文件系统转换成 ext3 文件系统非常容易。另外,ext3 文件系统可以不经任何更改,直接加载成为 ext2 文件系统。
  5. 多种日志模式

ext3 文件系统有三种日志模式 EXT3 三种日志模式:

  1. Journal 模式: 将所有数据和元数据的改变都记入日志,这种模式减少丢失每个文件所作修改的机会,但需要很多额外磁盘访问,是最安全和最慢的 ext3 日志模式;
  2. Ordered 模式: 只有对文件系统元数据的改变才记入日志,但保证数据在元数据之前被写入磁盘,是缺省的 ext3 日志模式;
  3. 写回(Writeback)模式: 只有对文件系统元数据的改变才记入日志,数据和元数据被写入磁盘的顺序不保证,是在这三种日志模式中最快的模式。

其他文件系统

  • MS-DOS
    MS-DOS 文件系统,DOS、Windows 和 OS/ 2 操作系统上使用的文件系统。
  • UMSDOS
    扩展的 MS-DOS 文件系统。
  • VFAT
    Microsoft 扩展的 FAT 文件系统,被 Windows9x /2000 /XP 使用。
  • Proc
    一种基于内存的伪文件系统,不占用磁盘空间,只是以文件的方式为访问 Linux 内核数据提供接口。
  • ISO9660
    一种针对 ISO9660 标准的 CD-ROM 文件系统。
  • SYSV
    System V/Coherent 在 Linux 平台上的文件系统。
  • NFS
    Sun 公司推出的网络文件系统。
  • SMB
    支持 SMB 协议的网络文件系统,可用于实现 Linux 与 Windows 的文件共享。
  • FAT
    它不是一个单独的文件系统,而是 MS-DOS, umsdos 和 vfat 文件系统的常用部分。
  • swap
    swap 文件系统用于 Linux 的交换分区。
  • Reiserfs
    是 Linux 内核 2.4.1 以后支持的一种全新的日志文件系统。
  • NTFS
    Windows NT 文件系统。
  • HPFS
    是 Microsoft 的 LAN Manager 中的文件系统,同时也是 IBM 的 LAN Server 和 OS/ 2 的文件系统,称为高性能文件系统。

 不同版本的 Linux 系统所支持的文件系统类型和种类都会有所不同。Linux 允许众多不同类型的文件系统共存,并支持跨文件系统的操作,这是由于虚拟文件系统(Virtual File System,简称 VFS)的存在。
 虚拟文件系统是 Linux 内核中的一个软件层,用于给用户空间的程序提供文件系统接口;它也提供了内核中的一个抽象功能,允许不同的文件系统共存。系统中所有的文件系统不但依赖 VFS 共存,而且也依靠 VFS 协同工作。

文件和目录的基本概念

文件

文件是指由创建者定义的,具有文件名的一组相关元素的集合,文件可以是文本文档、图片、程序等。
Linux 系统下的文件名长度根据不同类型的文件系统有所不同,最多可到 255 个字符。Linux 下为文件取名必须遵守以下规则:

  1. 除了“/”外,所有的字符都可以使用;
  2. 转义字符最好不用,这些字符在 Linux 系统下有特定的含义,如“?”(问号),“*”(星号),“”(空格),“$”(货币符),“&”等;
  3. 避免使用“+”、“-”或“.”作为普通文件名的第一个字符(在 Linux 下以“.”开头的文件是隐藏文件);
  4. Linux 系统的文件名大小写敏感,文件 Memo 和文件 memo 是两个不同的文件。

Linux 操作系统支持多种文件类型,下面介绍常见的几种。

  1. 普通文件
    普通文件也称为常规文件,是 Linux 中最一般格式的文件,包括系统文件、用户文件和库函数。
  2. 目录文件
    目录文件是由文件目录信息构成的特殊文件,目录文件的内容不是应用程序和数据,而是用来检索普通文件的目录信息。
  3. 设备文件

在 Linux 中输入输出设备被看做特殊文件,称为设备文件。设备文件分两类,字符设备文件和块设备文件。设备文件存放在 Linux 的 /dev 目录

• 其中/dev/tty 是表示终端设备的文件
• 字符串“crw-rw-rw-”的第一个字符“c”表示是字符设备文件
/dev/sda1 表示 USB 移动存储设备的文件
• 字符串“brw-rw—-”的第一个字符是“b”,表示是块设备文件,

  1. 符号链接文件
    符号链接文件是一种特殊类型的文件,它的内容只是一个字符串,该字符串可能指向一个存在的文件也可能什么都不指向。

目录

目录是 Linux 文件系统中的一种特殊文件,文件系统利用目录完成按名存取及对文件信息的共享和保护。
工作目录与用户主目录

  • 工作目录
    工作目录是用户在登录到 Linux 系统后所处于的目录,也称为当前目录。
  • 用户主目录
    是系统管理员增加用户时创建的(以后也可以改变),每个用户都有自己的主目录。普通用户的主目录在 /home 下,root 用户作为系统管理员,因为身份特殊所以有自己的主目录,在 /root 下。

用户刚登录到系统中时,其工作目录便是该用户主目录,通常与用户的登录名相同。如用户的登录名为 user,其主目录通常为/home/user

路径

路径定义
路径是指从树型目录中的某个目录层次到某个文件的一条道路。
路径的构成要素
路径是由目录或目录和文件名构成的,中间用“/”分开。

路径分为绝对路径和相对路径两类:

  1. 绝对路径
    Linux 系统中,绝对路径是从“/”(根目录)开始的,也称为完全路径,如/home/user01/usr/bin
  2. 相对路径
    Linux 系统中,相对路径是从用户工作目录或用户主目录开始的路径,如 ./test../user1~/test。其中 . 表示用户工作目录,.. 表示工作目录的上级目录,~ 表示用户主目录。
正文完
 0