Linux文件系统基础

Linux文件系统基础

  • 文件系统概述
  • Linux文件系统的特点
  • Linux文件系统的组成
  • Linux文件系统类型
    • EXT文件系统
    • 其他文件系统
  • 文件和目录的基本概念
    • 文件
    • 目录
    • 路径

文件系统概述

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

Linux文件系统的特点

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

Linux文件系统的组成

Linux文件系统基础_第1张图片

  • /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文件系统基础_第2张图片

文件和目录的基本概念

文件

文件是指由创建者定义的,具有文件名的一组相关元素的集合,文件可以是文本文档、图片、程序等。
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”,表示是块设备文件,
  4. 符号链接文件
    符号链接文件是一种特殊类型的文件,它的内容只是一个字符串,该字符串可能指向一个存在的文件也可能什么都不指向。

目录

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

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

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

路径

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

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

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

你可能感兴趣的:(Linux,文件系统,学习笔记)