参考文献:

  1. Filesystem Hierarchy Standard 3.0(文件系统层次结构标准3.0)
  2. 《鸟哥的Linux私房菜》

Chapter2. The Filesystem

  • FHS依据文件系统使用的频繁与否与是否允许用户随意修改,将目录定义为四种交互作用的形态。
shareable unshareable
static /usr
/opt
/etc
/boot
variable /var/mail
/var/spool/news
/var/run
/var/lock

可分享(shareable):可以分享给其它系统挂载使用的目录。

不可分享(unshareable):自己机器上运行的设备文件或与程序有关的socket文件,仅与自身机器有关。

不变(static):不会经常变动的数据,跟随着发行版而不变动。

可变动(variable):经常修改的数据。

  • FHS定义出三层目录下面应该放置的数据类型:
    • /(根目录):与启动系统有关
    • /usr (unix software resource):与软件安装、执行有关
    • /var (variable):与系统运行过程有关

Chapter3. The Root Filesystem

3.2 Requirements

  • /bin : Essential command binaries

    • 存放可执行文件命令,如cd、cp、ls等,可以被root和一般用户共同使用
  • /boot : Static files of the boot loader

    • 存放系统启动使用的文件。操作系统内核必须被放在//boot中,名称一般为vmlinuz。
  • /dev : Device files

    • 存放特殊文件或设备文件。
    • /dev/null : All data written to this device is discarded. A read from this device will return an EOF condition.
    • /dev/zero : All data written to this device is discarded. A read from this device will return as many bytes containing the value zero as was requested.
  • /etc : Host-specific system configuration

    • 存放系统主要的配置文件。
    • 例如
    • /etc/exports : NFS配置文件
    • /etc/fstab : 文件系统配置文件。如果设置了swap交换分区,则启动时就启动交换分区的配置要写在这里面。
    • /etc/ftpusers : ftp配置文件
    • /etc/group : 用户组配置文件
    • /etc/ld.so.conf : 加载so库路径配置文件,与ldconfig命令有关。
    • /etc/networks : 网络配置文件
    • /etc/passed : 密码文件
  • /lib : Essential shared libraries and kernel modules

    • 存放函数库文件。
  • /media : Mount point for removable media

    • 存放可删除的设备(可移动介质),如软件、光盘、硬盘、U盘等,都挂载于此。
  • /mnt : Mount point for mounting a filesystem temporarily

    • 临时需要挂载的文件系统的挂载点。例如我使用NFS时,就常挂载在这个目录下。
  • /opt : Add-on application software packages

    • 存放第三方软件。
    • 例如安装的海思交叉编译器,保存在/opt/hisi-linux中。
  • /run : Data relevant to running processes

    • This directory contains system information data describing the system since it was booted.
    • 在启动过程开始,这个目录中的文件将会被清除。
    • pid文件保存在这个目录中,.pid结尾的文件保存着不同进程的pid。
  • /sbin : Essential system binaries

    • 存放系统管理员才能使用的命令/可执行文件,例如fastboot、fdisk、ifconfig、mkfs、reboot、swapon、swapoff。
    • 某些服务器软件程序,一般放置到/usr/sbin。本机自行安装的软件所产生的系统执行文件,放置到/usr/local/sbin中。
  • /srv : Data for services provided by this system

    • service,放置一些与服务有关的文件。
    • /srv contains site-specific data which is served by this system.
  • /tmp : Temporary files

    • 放置临时文件,这个目录下的文件任何人都可以存取。
    • FHS推荐,当系统启动时,清除这个目录下的所有文件。
  • /usr : Secondary hierarchy

  • /var : Variable data

3.3 Specific Options

  • home : User home directories (optional)
    • 一般用户的家目录。
    • 家目录中应用的配置文件以“.”开头,如果配置文件存放于一个文件夹中,则文件夹名以“.”开头。
    • emacs的配置文件.emacs和配置目录.emacs.d
    • 环境变量配置文件.bashrc
  • lib\<qual> : Alternate format essential shared libraries (optional)
    • 存放与/lib不同格式的函数库文件,如/lib32/lib64等。
  • root : Home directory for the root user (optional)
    • root用户的家目录。

others

  • lost+found

    • 当文件系统发生错误时,将一些遗失的片段放置到这个目录下。
  • /proc

    • 此目录本身是一个虚拟文件系统。目录下的数据在内存当中,不占任何硬盘空间。
    • 存放系统内核、进程信息、外接设备的状态、网络状态等。
    • 例如
    • /proc/cpuinfo 处理信息相关文件
    • /proc/cmdline 在启动时传递至内核的相关参数信息
    • /proc/devices 系统已经加载的所有块设备和字符设备的信息
    • /proc/filesystems 当前被内核支持的文件系统类型列表文件
    • /proc/interrupts 中断相关
    • /proc/ioports 当前正在使用且已经注册过的与物理设备进行通讯的输入-输出端口范围信息列表
    • /proc/meminfo 系统中关于当前内存的利用状况等的信息
    • /proc/version 当前系统运行的内核版本号
  • /sys

    • 此目录本身是一个虚拟文件系统,目录下的数据在内存当中,不占任何硬盘空间。
    • 存放目前已经加载的内核模块与内核检测到的硬件设备信息。

Chapter4. The /usr Hierarchy

4.2 Requirements

  • /usr/bin : Most user commands
    • 存放所有一般用户能够使用的命令。
  • /usr/lib : Libraries
    • 基本上,与/lib功能相同。
  • /usr/local : Local hierarchy (empty after main installation)
    • 系统管理员在本机安装自己下载的软件。
    • 例如,在atlas200dk上安装python和openssl时,就将python和ssl分别安装到了/usr/local/python3.7.5/usr/local/ssl下。
  • /usr/sbin : Non-vital system binaries
    • 非系统正常运行所需要的系统命令,基本功能与/sbin差不多。
  • /usr/share : Architecture-independent data
    • 主要放置只读的数据文件。
    • 例如
    • /usr/share/man 在线帮助文件
      • man1: 查询终端命令,如man 1 cp
      • man2: 查询系统调用,如man 2 open
      • man3: 查询库函数,如man 3 fopen
    • /usr/share/doc 软件说明文档
    • /usr/share/zoneinfo 与时区有关的时区文件

4.3 Specific Options

  • /usr/games : Games and educational binaries (optional)
    • 游戏相关。
  • /usr/include : Header files included by C programs
    • 放置c/c++程序语言的头文件和包含文件。
  • /usr/libexec : Binaries run by other programs (optional)
    • 存放不被一般用户或脚本常用的执行文件或脚本。
  • /usr/lib\<qual> : Alternate Format Libraries (optional)
    • /lib<qual>功能相同
  • /usr/src : Source code (optional)
    • 存放源代码。
    • 例如linux内核源代码存放在/usr/src/linux下。

Chapter5. The /var Hierarchy

5.2 Requirements

  • /var/cache : Application cache data
    • 存放应用缓存。
  • /var/lib : Variable state information
    • 程序本身执行的过程中,需要使用的数据文件放置的目录。
  • /var/local : Variable data for /usr/local
  • /var/lock : Lock files
    • 存放锁文件相关,目前此目录已经被移动到/run/lock中。
  • /var/log : Log files and directories
    • 存放日志文件。
  • /var/opt : Variable data for /opt
  • /var/run : Data relevant to running processes
    • 此目录链接到/run
  • /var/spool : Application spool data
    • 放置一些队列数据,即排队等待其他程序使用的数据。这些数据使用后通常会被删除。
  • /var/tmp : Temporary files preserved between system reboots

5.3 Specific Options

  • /var/account : Process accounting logs (optional)
  • /var/crash : System crash dumps (optional)
  • /var/grames : Variable game data (optional)
  • /var/mail : User mailbox files (optional)
    • 电子邮箱相关目录。
  • /var/yp : Network Information Service database files (optional)
说点什么
请文明发言!
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...