📜  Unix 文件系统

📅  最后修改于: 2021-09-28 10:15:56             🧑  作者: Mango

Unix 文件系统是一种以易于管理的方式组织和存储大量信息的逻辑方法。文件是存储信息的最小单位。 Unix 文件系统有几个重要的特性。 Unix 中的所有数据都被组织成文件。所有文件都组织到目录中。这些目录被组织成称为文件系统的树状结构。

Unix 系统中的文件被组织成称为目录树的多级层次结构。在文件系统的最顶端是一个名为“root”的目录,用“/”表示。所有其他文件都是 root 的“后代”。

目录或文件及其描述 –

  • / :斜线 /字符单独表示文件系统树的根。
  • /bin :代表“二进制文件”并包含某些基本实用程序,例如 ls 或 cp,所有用户通常都需要这些实用程序。
  • /boot :包含成功启动过程所需的所有文件。
  • /dev :代表“设备”。包含外围设备和伪设备的文件表示。
  • /etc :包含系统范围的配置文件和系统数据库。最初还包含“危险的维护实用程序”,例如 init,但这些通常已移至 /sbin 或其他地方。
  • /home :包含用户的主目录。
  • /lib :包含系统库和一些关键文件,例如内核模块或设备驱动程序。
  • /media :可移动设备的默认挂载点,例如 U 盘、媒体播放器等。
  • /mnt :代表“挂载”。包含文件系统挂载点。例如,如果系统使用多个硬盘或硬盘分区,则会使用这些。它也常用于远程(网络)文件系统、CD-ROM/DVD 驱动器等。
  • /proc : procfs 虚拟文件系统,以文件形式显示有关进程的信息。
  • /root :超级用户“root”(即系统管理员)的主目录。此帐户的主目录通常位于初始文件系统上,因此不在 /home(可能是另一个文件系统的挂载点)中,以防需要执行特定维护,在此期间其他文件系统不可用。例如,如果硬盘驱动器出现物理故障并且无法正确安装,则可能会发生这种情况。
  • /tmp :临时文件的地方。许多系统在启动时清除此目录;它可能有 tmpfs 挂载在它上面,在这种情况下,它的内容在重新启动后无法保存,或者它可能在启动时被启动脚本明确清除。
  • /usr :原来是存放用户家目录的目录,它的用途已经改变。它现在包含对系统不重要的可执行文件、库和共享资源,如 X Window 系统、KDE、Perl 等。 然而,在某些 Unix 系统上,某些用户帐户可能仍然有一个主目录,它是/usr,例如 Minix 中的默认值。 (在现代系统上,这些用户帐户通常与服务器或系统使用有关,而不是由个人直接使用)。
  • /usr/bin :此目录存储所有与操作系统一起分发的二进制程序,而不驻留在 /bin、/sbin 或(很少)/etc 中。
  • /usr/include :存储整个系统使用的开发头文件。头文件主要由 C/C++ 编程语言中的#include指令使用。
  • /usr/lib :存储存储在 /usr 或其他地方的程序所需的库和数据文件。
  • /var : “变量”的缩写。一个存放可能经常更改的文件的地方——尤其是在大小方面,例如发送给系统用户的电子邮件,或进程 ID 锁定文件。
  • /var/log :包含系统日志文件。
  • /var/mail :存储所有传入邮件的地方。用户(root 除外)只能访问他们自己的邮件。通常,此目录是指向 /var/spool/mail 的符号链接。
  • /var/spool :假脱机目录。包含打印作业、邮件假脱机和其他排队任务。
  • /var/tmp :临时文件的位置,应在系统重新启动之间保留。

Unix 文件的类型 – UNIX 文件系统包含几种不同类型的文件:

1. 普通文件——普通文件是系统上包含数据、文本或程序指令的文件。

  • 用于存储您的信息,例如您编写的一些文本或您绘制的图像。这是您通常使用的文件类型。
  • 始终位于目录文件内/下。
  • 不包含其他文件。
  • 在 ls -l 的长格式输出中,这种类型的文件由“-”符号指定。

2. 目录——目录存储特殊文件和普通文件。对于熟悉 Windows 或 Mac OS 的用户,UNIX 目录相当于文件夹。目录文件包含它所包含的每个文件和子目录的条目。如果一个目录中有 10 个文件,则该目录中有 10 个条目。每个条目有两个组成部分。
(1) 文件名
(2) 文件或目录的唯一标识号(称为 inode 号)

  • 层次树中的分支点。
  • 用于组织文件组。
  • 可能包含普通文件、特殊文件或其他目录。
  • 切勿包含您将使用的“真实”信息(例如文本)。基本上,仅用于组织文件。
  • 所有文件都是位于树顶部的根目录(名为 / )的后代。

    在 ls –l 的长格式输出中,这种类型的文件由“d”符号指定。

    3. 特殊文件——用于表示真实的物理设备,如打印机、磁带驱动器或终端,用于输入/输出 (I/O) 操作。设备或特殊文件用于 UNIX 和 Linux 系统上的设备输入/输出 (I/O)。它们就像普通文件或目录一样出现在文件系统中。
    在 UNIX 系统上,每个设备有两种特殊文件,字符特殊文件和块特殊文件:

    • 当字符特殊文件用于设备输入/输出 (I/O) 时,数据一次传输一个字符。这种类型的访问称为原始设备访问。
    • 当块特殊文件用于设备输入/输出 (I/O) 时,数据以固定大小的大块传输。这种类型的访问称为块设备访问。

    对于终端设备,一次一个字符。但是,对于磁盘设备,原始访问意味着读取或写入整个数据块 – 块,它们是您的磁盘的本机。

    • 在 ls -l 的长格式输出中,字符特殊文件用“c”符号标记。
    • 在 ls -l 的长格式输出中,块特殊文件由“b”符号标记。

    4. 管道——UNIX 允许您使用管道将命令链接在一起。管道充当一个临时文件,它仅用于保存来自一个命令的数据,直到被另一个命令读取。Unix 管道提供单向的数据流。第一个命令序列的输出或结果用作输入到第二个命令序列。要制作管道,请在命令行上的两个命令之间放置一个竖线 (|)。例如: who | wc -l

    在 ls –l 的长格式输出中,命名管道由“p”符号标记。

    5. 套接字——Unix 套接字(或进程间通信套接字)是一个特殊的文件,它允许进行高级进程间通信。 Unix 套接字用于客户端-服务器应用程序框架。本质上,它是一个数据流,非常类似于网络流(和网络套接字),但所有事务都在文件系统本地。

    在 ls -l 的长格式输出中,Unix 套接字用“s”符号标记。

    6. 符号链接——符号链接用于引用文件系统的其他文件。符号链接也称为软链接。它包含它引用的文件路径的文本形式。对于最终用户来说,符号链接似乎有自己的名字,但是当您尝试向该文件读取或写入数据时,它会将这些操作引用到它指向的文件。如果我们删除软链接本身,数据文件仍然存在。如果我们删除源文件或将其移动到其他位置,符号文件将无法函数工作。

    在 ls –l 的长格式输出中,符号链接由“l”符号(即小写 L)标记。参考 –

    UNIX – 概念和应用 | Sumitabha Das |Tata McGraw Hill |第 4 版