参考文献:
- Filesystem Hierarchy Standard 3.0(文件系统层次结构标准3.0)
- 《鸟哥的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
- man1: 查询终端命令,如
- /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)
声明:
本文采用
BY-NC-SA
协议进行授权,如无注明均为原创,转载请注明转自
SigmaPoet
本文地址: unix文件系统学习笔记
本文地址: unix文件系统学习笔记