一、Linux 整体目录树

在 Linux 系统中,所有文件和目录都是从根目录开始,一级一级向下分支形成一个树状结构的。

我们把这种目录配置方式称为目录树。

Linux 的根目录为 “/”,我们在该目录下执行 ls -l 命令,查看根目录的目录结构。

你可以想象一下,这么多目录,如果所有使用 Linux 开发的用户,都以自己的原则和方式随意放置文件,这会给后续开发和运维增加无谓的工作量。

因此,在 Linux 中,根目录下的目录内容都会相对固定的,而且,每个目录放置什么内容都是有规定约束的。这个标准称为 FHS 标准(Filesystem Hierarchy Standard)。

下面,我们会从 FHS 标准出发,说明这些目录的主要作用与放置文件的内容。

二、FHS 标准

FHS 标准主要是希望使软件在安装时,或用户自己能够判断安装和存放文件的位置。

This standard enables:

  • Software to predict the location of installed files and directories, and
  • Users to predict the location of installed files and directories.

所以,FHS 标准的核心在于确定每个特定的目录下应该放什么内容的文件和数据,并希望 Linux 用户能够遵循该准则。

FHS 标准根据文件系统使用的频繁与否以及是否允许用户随意改动,将目录定义为四种交互作用形态。

  • 可分享的:可以分享给其他系统挂载使用的目录
  • 不可分享的:与自身机器直接相关的设备文件等,不能分享给其他主机
  • 不变的:数据不常变动的文件
  • 可变动的:经常改变的数据,如登录文件、新闻组等。

在了解了 FHS 准则的大致内容后,我们依据 FHS 准则,介绍根目录(/)下的所有文件夹的作用。

观察 FHS 原文后我们发现,FHS 除了说明了根目录(/)下的子目录的作用,还专门介绍了 /usr 目录及 /var 目录两个二级目录的子目录的作用。

也就是说,FHS 针对目录树架构着重强调了三个目录下的内容定义:

  • 根目录(/),与开机系统相关
  • /usr,与软件安装和执行相关
  • /var,与系统运作过程相关

因此,我们依据 FHS 的内容,分别介绍这三个目录的主要内容。

三、根目录

根目录是 Linux 的最高层目录,是整个目录树的根节点。

同时,根目录与开机、还原、系统修复等操作直接相关。

因此,FHS 认为,在根目录下应该包含与系统开机、还原、系统修复等必要文件的目录。

  • /bin:放置执行文件/命令的目录,尤其是放置在单用户维护模式下还能够被操作执行的命令。

  • /boot:放置开机会使用到的文件,包括 Linux 内核文件以及开机菜单与开机所需配置文件等。

  • /dev:以文件的形式保存 Linux 所有的设备及接口设备。

  • /etc:系统主要配置文件基本上都在这个目录下,包括人员账号密码文件、多种服务的起始文件等。

  • /home:系统默认的普通用户的主文件夹。

  • /lib:主要放置系统开机使用的、/bin 和 /sbin 目录下的命令使用的库函数。

  • /media:放置可删除的设备。

  • /mnt:用于暂时挂载某些额外设备。

  • /opt:第三方软件放置的目录。

  • /proc:这个目录是一个虚拟文件系统,它放置的数据都是在内存当中,例如进程、外部设备状态、网络状态等。

  • /root:root 用户的主目录。

  • /sbin:该目录下放置开机过程中需要的命令,包括开机、修复、还原系统等。

  • /srv:该目录放置与网络服务相关的文件数据

  • /sys:这个目录是一个虚拟文件系统,主要记录与内核相关的信息,与 /proc 目录十分相似。

  • /tmp:让一般用户或者正在执行程序暂时放置文件的地方。

在根目录下,还有两个目录,分别是 /usr、/var。

FHS 详细描述了这两个目录及其子目录的结构,我们对此做一个简单介绍。

四、/usr 目录

usr 其实是 UNIX Software Resource 的全称,即 UNIX 操作系统软件资源。

FHS 建议所有软件开发者都应该将数据合理地放置到这个目录的子目录下。

一般来说,/usr 下的子目录有:

  • /usr/bin/:绝大部分的用户命令都在此处,它与/bin目录的区别在于后者存放与开机相关的命令。
  • /usr/include/:C/C++的头文件和包含文件。
  • /usr/lib/:包含各应用软件的函数库、目标文件,以及一些不被用户惯用的执行文件。
  • /usr/local/:系统管理员在本机自行下载的软件。
  • /usr/sbin/:非系统正常运行需要的系统命令。
  • /usr/share/:放置共享文件的地方
  • /usr/src/:源码放置的地方

五、/var 目录

/var 目录下主要放置常态化变动的文件,例如缓存、登录日志文件、软件运行产生的文件等。

/var 下的子目录常见有:

  • /var/cache/:应用程序运行过程中产生的暂存文件。
  • /var/lib/:应用程序运行过程中,需要使用到的数据文件放置的目录。
  • /var/lock/:某些设备或文件要求使用时具有排他性,即上锁,该目录存放这类设备文件。
  • /var/log/:日志或登录文件放置的目录。
  • /var/mail/:放置个人电子邮件的目录。
  • /var/run/:某些程序或者是服务启动后,将它们的 PID 记录在这个目录下
  • /var/spool/:这个目录通常会放置一些队列数据,包括等待收寄的电子邮件、cron 任务等。

最后,大家如果有兴趣,可以自行前往 FHS 英文文档查看 FHS 相关内容,附上链接:

FHS 英文文档

(完)

本文为原创文章,转载请告知作者,未经授权请勿转载。

欢迎关注我的微信公众号、知乎:多面手程序员

如果您觉得这篇文章还不错,随手点赞,手有余香~ : )

Linux目录配置与FHS标准相关推荐

  1. Linux目录配置及应放置的内容

    Linux目录配置及应放置的内容 /bin:系统有很多放置执行文件的目录,但/bin比较特殊.因为/bin放置的是在用户维护模式下还能够被操作的命令.在/bin下面的命令可以被root与一般账号所使用 ...

  2. linux安装手动划分目录,Linux目录配置整理

    FHS: 为了规范各种Linux发行版的目录配置方法和目录定义而制定了FHS规范. 在FHS规范的Linux中,所有的文件和目录都由根目录开始,即"/",它是所有文件和目录的起点. ...

  3. Linux 目录配置标准:FHS

    一.FHS针对目录树架构定义出三层目录下放置数据: 1. / (root,根目录):与开机系统有关 2. /usr (UNIX software resourse):与软件安装/执行有关 3. /va ...

  4. Linux目录说明(FHS)

    FHS:Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构 ...

  5. Linux操作系统使用基础03:Linux文件权限与目录配置

    目录 1. 用户与用户组简介 1.1 作用 1.2 相关配置文件 1.2.1 用户信息文件:/etc/passwd 1.2.2 影子文件:/etc/shadow 1.2.3 组信息文件:/etc/gr ...

  6. LINUX目录——FHS标准

    LINUX目录结构 Linux目录配置依据--FHS 四个类型 三个目录结构 根目录(/)的意义和内容 根目录下的子目录 /usr的意义和内容 /var的意义和内容 汇总以上目录出现的链接设置 前言: ...

  7. 文件权限与目录配置——笔记

    目录 一.用户在与用户组: 用户: 用户组: 1./etc/passwd文件时用户管理工作涉及的最重要的一个文件 2./etc/shadow是用户的密码存放处 3.用户组的所有信息都存放在/etc/g ...

  8. linux文件属性解析,Linux操作系统的文件属性与目录配置解析

    -rwxrwxrwx 1 root root 293 Oct 19 21:24 test 第一列表示这个文件的属性 第二列表示连接占用的节点 第三列表示文件(或目录)的拥有者 第四列表示拥有者的用户组 ...

  9. 鸟哥的Linux私房菜(基础篇)- 第六章、Linux 的文件权限与目录配置

    第六章.Linux的文件权限与目录配置 最近更新日期:2009/08/18 Linux最优秀的地方之一,就在于他的多人多任务环境.而为了让各个使用者具有较保密的文件数据,因此文件的权限管理就变的很重要 ...

最新文章

  1. retrofit 上传、下载文件
  2. either fix the issues identified by lint, or modify your build script as follows
  3. shell脚本while read line的使用
  4. 洛阳计算机学校排名2015年,洛阳最好的中专学校有哪些 十大中专学校排名
  5. python函数参数列表_python函数列表
  6. 第三章 硅谷宠儿 Friendster (二)
  7. qca9535 tftp32 刷机_【U-Boot】U-Boot 刷机方法大全
  8. Dockerfile: max depth exceeded
  9. 用Python下载xkcd图片
  10. 已经提交到gitlab上的代码如何撤回
  11. 8.python输出100以内所有7的倍数
  12. lol现在哪个服务器有无限火力,lol2019无限火力什么时候出?2019无限火力开放时间...
  13. 旺旺消息上传到服务器,旺旺在线却发送不了消息怎么办
  14. Python内建函数与对象方法
  15. RUST——互斥锁的使用
  16. 手机视频监控-手视通
  17. 【React+ts】从零开始搭建react函数式组件+router+redux+less+sass+axios反向代理+antd(保姆式教学)
  18. printf 日常使用指南
  19. 基于SSM的律师管理平台
  20. mac地址和ip地址有什么区别

热门文章

  1. 985复旦大学,软件工程学硕停止招生!
  2. 在使用123作为rand matlab,西安电子科技大学MATLAB考试试卷
  3. linux 参数解析,Linux 命令行参数解析
  4. SublimeText——快捷键
  5. 解决python错误:utf-8 codec can't decode byte 0xbb in position3:invalid start byte
  6. 2019辽宁公务员考试:逻辑填空词语的“ 合并同类项”
  7. Linux常用命令(适合初学者)
  8. PLM系统在制造业的应用(下)
  9. 中国免疫抑制剂药物市场趋势报告、技术动态创新及市场预测
  10. persepolis download manager中文版(pdm下载器)