在gnu / linux中,文件系统的结构如何?
目录:
当然,你们中的许多人(例如我)学会了使用装有某些版本Windows的计算机,很可能他们熟悉的第一件事就是如何管理他们存储在其中的所有信息或某些信息。连接到PC的可移动媒体。 也就是说,执行诸如复制,粘贴,移动或定位文件的任务。 因此,这次我们要向您展示Linux / GNU中文件系统的结构 。 当然不必100%知道它,但是了解文件的层次结构将非常有用。
内容索引
在GNU / Linux中,文件系统的结构如何?
Linux系统位于文件的分层树下,非常类似于Unix系统的结构。 最初,目录和文件的分层树没有任何标准,也就是说,一个发行版和另一个发行版之间存在差异。 正是这一点促使一群人在1993年开发了所谓的文件系统层次结构标准(FHS)或西班牙文件系统层次结构标准 。
FHS
FHS被定义为建立并提供文件和目录的名称,内容,位置和权限的详细信息的标准,换句话说,它是确定Linux系统上文件和目录的通用结构的一组规则。 。 该标准仅是指导性文件,制造商可以参考该指导性文件,并在创建新发行版时将其应用。
重要的是要澄清制造商可以决定是否应用它。 将其与Linux系统集成的优点是,它将使您的环境与其余Linux发行版更加兼容。 要强调的另一点是,该标准允许一定的灵活性,因此,在应用规则时有一定的自由度,并且从那里可以看出,不同发行版之间存在一些细微的差异。
FHS主要目标
- 公开一致地公开分层文件系统,使软件开发容易,因为它可以轻松预测和识别已安装的文件和目录,使用户可以轻松预测计算机上文件和目录的位置。
如我们所见,FHS的主要重点是创建具有尽可能兼容结构的操作系统 。 这将为普通用户提供更好的体验,因为他们将能够理解系统中每个元素的含义并轻松定位它们。 另一方面,FHS本身会显示在系统结构中可以看到的文件类型是什么:
可共享和不可共享的文件:前者是属于计算机的文件,而后者是可以在不同计算机之间共享的文件。 例如:
- 可共享文件:/ var / www / html(这是Apache Web服务器的默认DocumentRoot。最初存储Welcome index.html的位置)中的内容。不可共享文件:/ boot / grub /(子目录中的内容GRUB引导加载程序文件所在的位置)。
静态文件和可变文件:静态文件是需要系统管理员进行交互才能更改其状态的文件。 以及那些没有这种相互作用就可以改变的变量。 为了帮助您更好地理解这一点,让我们看一个例子。 我们拥有系统日志文件(日志),它们是变量类型,因为它们是系统内核生成的消息,因此无需管理员干预即可不断修改。 当其他文件存储敏感信息(例如用户帐户,设置或密码)时,它们是静态类型。
看一下:Linux命令:了解和操作系统
访问不同的文件系统
知道了文件类型的分类之后,我们还必须知道在Linux中,所有东西都是文件 。 硬件和软件都存储为文本文件,并且从那里诞生了“安装”或“卸载”设备的概念。 即,其逻辑结构独立于硬件结构,因此,它不取决于计算机是否具有1、3或5个硬盘驱动器来创建c:\,e:\ ok:\驱动器。
整个Linux系统起源于以/表示的根或根 ,并且操作系统中的所有其他可访问文件都位于该目录下。 例如,我们要访问CDROM。 它作为子目录安装到系统中。 设备的内容将在安装时位于该子目录中,否则我们将找不到其他任何内容。 要获取安装在系统上的设备列表,我们只需在控制台中使用mount命令。 清楚了解Linux的工作原理非常重要。
如前所述,我们也可以使用这种机制访问硬件设备,但是这些文件是二进制文件,也就是说,它们仅由Linux解释。 因此,如果我们进行任何版本的开发,都有冒着使系统不稳定甚至无法使用的风险。 简而言之,除非您完全确定我们的工作,否则无法访问它们。 现在我们已经从理论上知道了它的结构。 让我们看看FHS在现实生活中的应用情况如何?
根据FHS在Linux中构建文件系统
目录 | 内容描述 |
/ | 主层次结构 ,称为 根目录 或根目录,主目录,绝对是Linux中整个文件系统的容器。 |
/箱/ | 它包含基本的命令二进制文件,因此它们可用于单个会话或多用户。 它们包括,例如ls,cp,cat,mkdir,rm等 |
/启动/ | 系统启动。 |
/开发/ | 包含对设备的访问。 无论是硬件还是虚拟。 |
/等/ | 这包括系统配置文件。 关于名称的含义一直存在争议,但是最近的解释将其称为“可编辑文本设置”。 |
/ etc / opt / | / opt目录中的程序的配置文件。 |
/等/ X11 / | X Window系统版本11配置文件。 |
/ etc / sgml / | SGML配置文件。 |
/ etc / xml / | XML配置文件。 |
/家/ | 包含除超级用户(管理员,根用户)以外的所有用户的工作目录。 包含保存的文件,个人设置等。 它通常安装在单独的磁盘或分区上 。 每个用户在此文件夹中都有自己的目录。 |
/ lib / | 找到已安装程序的所有基本共享库,包括内核使用的那些库。 |
/平均/ | 包含可移动存储介质的 安装点 。 |
/ mnt / | 它类似于/ media,但通常由用户使用。 为了“挂载”例如硬盘驱动器和临时分区。 |
/选择/ | 包含有关未在此目录中保存配置选项的应用程序的信息,即,用户共享该应用程序,但不共享其配置选项。 |
/ proc / | 包含文件,这些文件在特定时间记录了流程的核心和状态。 |
/根/ | 根用户的主目录。 就像/ home一样,但是对于系统超级用户(管理员)。 |
/宾/ | 操作必需的可执行文件或二进制文件,系统管理员或有权使用它们的用户的独占命令和程序。 |
/ srv / | 包含系统提供的数据。 |
/ tmp / | 包含临时文件。 |
/ usr / | 用户数据的 二级层次结构 ; 它包含大多数多用户用途的实用程序,但是它们都是只读的。 该文件夹甚至可以与其他本地网络用户共享。 |
/ usr / bin / | 适用于所有用户的非管理二进制命令。 |
/ usr /包括/ | 标准包含文件。 |
/ usr / lib / | 一组共享库或二进制文件。 同一系统上永远不会有两个相同的库,它们可以优化内存使用并提供更大的顺序。 |
/ usr / sbin / | 不重要的二进制文件; 例如, 守护程序 具有多个网络服务。 |
/ usr /共享/ | 包含共享但与体系结构无关的数据。 |
/ usr / src / | 包含某些应用程序的源代码。 |
/ usr / X11R6 / | 与图形环境有关的目录。 |
/ usr /本地/ | 本地数据的 第三级层次结构 ,即特定于此主机。 |
/ var / | 包含系统变量文件,例如日志,数据库,电子邮件。 |
/ var /缓存/ | 与/ tmp类似,它包含某些应用程序的缓存。 |
/ var /崩溃/ | 包含有关错误或系统崩溃的信息。 |
/ var /游戏/ | 它不是必需的目录,其目的是存储有关系统游戏的信息。 |
/ var /锁/ | 找到具有正在使用的资源状态的文件。 |
/ var / log / | 日志 文件 。 |
/ var / mail / | 用户消息,类似电子邮件的存档。 |
/ var / opt / | 包含可以作为/ opt目录中变量的数据。 |
/ var /运行/ | 自上次系统启动以来的信息访问。 例如,当前连接的用户或正在运行的恶魔。 |
/ var / spool / | 包括正在等待处理的任务。 例如,未读的电子邮件或打印队列。 |
/ var / spool / mail / | 来自被拒登用户的电子邮件的位置。 |
/ var / tmp / | 它包含临时文件,它与/ tmp的区别在于重新引导系统时不会删除它。 |
您可能对以下内容感兴趣: 在Linux中需要了解有关root,su和sudo的知识
权限
要结束本主题,在Linux和其他Unix系统中, 对文件维护了权限策略 。 为了控制访问,他们可以做些什么,谁可以做。 权限以字母标识,并以以下方式建立:
- a:读取文件的权限w:写入文件的权限x:执行文件的权限s:更改文件所有者的权限。
同样,可以应用Linux中的每个许可权:对于文件所有者,所有者所属的组或其他用户。 这使该安全机制可以在具有不同职责(多用户)的工作组中完美地工作。