Linux 目录配置标准:FHS

FHS:即Filesystem Hierarchy Stabdard,文件配置标准。其主要目的是希望用户可以了解已安装软件通常放置在哪个目录下。
FHS根据文件系统使用的频繁与否与是否允许用户随意改动,而将目录定义成为四种交互的形态,如下表:

  • 可分享的:可分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据,是能分享给网络上其他主机挂载用的目录。
  • 不可分享的:自己机器上运行的设备文件或者与程序有关的socket文件等
  • 不变的:比如函数库、文件说明文件、系统管理员所管理的主机服务配置文件等。
  • 可变动的:经常改变数据,例如登录文件、新闻组等。
事实上,FHS针对目录架构,定义出三层目录下面应该放什么数据而已,分别是下面三个目录定义:
  • / (root,根目录):与开机系统有关;
  • /usr(UNIX software resource):与软件安装执行有关;
  • /var (variable):与系统运作过程有关。
根目录的意义与内容
根目录是整个系统最重要的一个目录,所有目录都是由根目录衍生出来,同时根目录也与开机、还原、系统修复等操作有关。
FHS标准建议:根目录(/)所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。如此不但性能较好,根目录所在的文件系统也较不容易发生问题。
如下表表示根目录以及子目录内容:

  • 除了这些目录内容之外,另外需要注意的是,因为根目录与开机有关,开机过程仅有根目录会被挂载,其他分区则是在开机完成后才会持续进行挂载行为。因此根目录下与开机过程有关的目录就不能够放到不同的分区去。
  • /etc:配置文件
  • /bin:重要执行文件
  • /dev:所需要的设备文件
  • /lib:执行文件所需要的函数库与内核所需要的模块
  • /sbin:重要的系统执行文件
/usr的意义和内容
usr是UNIX software Resource的缩写,也就是“UNIX 操作系统软件资源”所放置的目录,而不是用户数据。FHS建议所有软件开发者应将他们的数据合理地分别放置到这个目录下的子目录,而不要自行新建该软件自己独立的目录。
因为所有系统默认的软件(distribution发布者提供的软件)都会放置在/usr下面,因此这个目录有点类似windows系统的“C:Windows\”和“C:Progrom files”这两个目录的综合体。系统安装完毕后这个目录会占用最多的硬盘容量。

/var的意义和内容
/var在系统运行后才会逐渐占用硬盘容量。var目录主要针对常态性变动的文件,包括缓存(caches)、登录文件(logfile)以及某些软件运行所产生的文件,包括程序文件(lock file,run file)或者MySQL数据库的文件等。

目录树(directory tree)

在Linux下面,所有的文件与目录都是由根目录开始的。那是所有目录与文件的源头。然后再一个个分支下来,有点像树枝状。因此我们也称这种目录配置方式为“目录树(directorytree)”。它主要特性如下:
  • 目录树起始点为根目录(/,root)
  • 每一个目录不只能使用本地端的文件系统,也可以使用网络上的文件系统。比如利用Network File System(NFS)服务器挂载某特定目录等。
  • 每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的。

绝对路径和相对路径

  • 绝对路径:由根目录(/)开始写起的文件名或者目录名称,例如/home/dmtsai/.bashrc
  • 相对路径:相对于目前路径的写法。例如./home/dmtsai或者../../home/dmtsai/等

两个特殊的目录:

  • .:代表当前目录,也可以用./表示。
  • ..:上一层目录,也可以用../表示。

Linux基础学习:目录配置的更多相关文章

  1. linux基础学习目录

    以下用一个表格来罗列linux默认的目录或文件及其用途: 目录/文件 用途 来源 / /处于Linux文件系统树形结构的最顶端,它是Linux文件系统的入口,所有的目录.文件.设备都在/之下. - / ...

  2. Linux基础学习 | 目录及文件

    一.目录结构 Linux目录采用树形结构,以根目录/向下延伸呈一个倒置的树的形状. 每个目录下都有其相对应的子目录,而子目录中又有其子目录的存在,就像一棵树的树枝分叉,所有的目录层次结构分明,每个目录 ...

  3. Linux 基础学习1

    目录 Linux 基础学习 用户登录 终端 交互式接口 bash 修改ssh连接慢的步骤 命令提示符 显示提示符格式 命令 别名 命令格式 获取命令的帮助信息 man bash 快捷键 tab 键 引 ...

  4. Linux基础学习系列目录导航

    Linux基础学习-通过VM安装RHEL7.4 Linux基础学习-命令行与图形界面切换 Linux基础学习-基本命令 Linux基础学习-RHEL7.4之YUM更换CentOS源 Linux基础学习 ...

  5. linux基础学习之软件安装以及常用命令

    linux基础学习之软件安装以及常用命令 调用中央仓库: yum install wget 然后下载nodejs: wget https://nodejs.org/dist/v10.14.2/node ...

  6. linux基础学习路线&review

    linux基础学习网址: https://www.runoob.com/linux/linux-tutorial.html 比较重点的是这个启动过程的介绍学习:https://www.runoob.c ...

  7. Linux 基础学习2

    目录 Linux 基础学习2 文件目录结构 文件命名规范 文件系统结构 linux应用程序的组成 绝对路径和相对路径 目录名和基名 切换目录 切换到家目录 切换到上一次的目录 显示当前的工作目录 列出 ...

  8. 关于linux中的目录配置标准以及文件基本信息

    关于Linux中的目录配置标准 在查看docker.k8的运行日志,修改相关的运行记录的时候,学长总是能很快地找到目录,这个多多少少和Linux的FHS(File Hierarchy Standard ...

  9. Msftables之Linux NFS共享目录配置漏洞

    实验目的 1.了解Metasploitables靶机系统漏洞: 2.学习使用Metasploit. 实验原理 msftables之利用Linux NFS共享目录配置漏洞渗透. 实验内容 msftabl ...

  10. linux文件权限目录配置笔记

    ###linux 文件权限目录配置笔记 ---------- 多人多任务环境 linux 一般将文件可存取的身份分为三个类别:owner group others Permission deny ls ...

随机推荐

  1. Win10系统盘制作及安装流程

    一.下载最新版的 Win10 镜像 1.打开 MSDN 下载 Windows 系统镜像,即 https://msdn.itellyou.cn/ ​ 2.下载的 iso 镜像文件 ​ 3.你可以通过双击 ...

  2. 异常:System.InvalidOperationException: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms FIPS信息标准限值了MD5加密

    最近做的winform项目中,有个功能使用了MD5 加密,本地测试是没有问题的,但是上线后有些用户反馈说提示如下错误 一.问题描述 中文版错误截图 英语版错误截图 具体错误信息: 有关调用实时(JIT ...

  3. PyQt5 api 帮助文档

    学习PyQt5的帮助文档是通过,使用help(PyQt5 class)的方式在console端输出帮助内容,常用的方法和属性查找起来不是很方便,现在放在网上以方便大家使用. QWidget Qt QM ...

  4. 白话kubernetes的十万个为什么(持续更新中...) - kubernetes

    Kubernetes简称? 答:k8s或kube. Kubernetes是什么? 答:由Google开发的一个强大的平台,可以在集群环境中管理容器化应用程序.本质上是一种特殊的数据库,里面存储的是能够 ...

  5. PHP全栈学习笔记4

    php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScript脚本,在PHP中使用JavaScript. JavaScript是网景公司开发的,是 ...

  6. React 与 React-Native 使用同一个 meteor 后台

    meteor 可以快速构建 pc,移动端,桌面端应用. 最大的优点是:数据库的数据发生变化时,可以实时推送到前端,非常适用于实时展示的应用开发. 在 react,react-native 应用中,可以 ...

  7. kafka的设计

    1.动机 设计 kafka 初衷,作为统一平台处理大公司的实时数据.所以 必须具有如下特性: 支持海量数据 高吞吐量 低延迟(实时性) 支持分区,分布式 容错 2.持久化 kafka 高度依赖 文件系 ...

  8. .NET Core TDD 前传: 编写易于测试的代码 -- 单一职责

    第1篇: 讲述了如何创造"缝".  "缝"(seam)是需要知道的概念. 第2篇, 避免在构建对象时写出不易测试的代码. 第3篇, 依赖项和迪米特法则. 第4篇 ...

  9. .NET Core微服务之基于EasyNetQ使用RabbitMQ消息队列

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.消息队列与RabbitMQ 1.1 消息队列 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更 ...

  10. 机器学习——交叉验证,GridSearchCV,岭回归

    0.交叉验证 交叉验证的基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train set),另一部分做为验证集(validation set or test set) ...