Linux根目录下文件的含义(FHS标准)

  • Post author:
  • Post category:linux


文件系统层次结构标准

转载:

维基百科


文件系统层次结构标准(英语:Filesystem Hierarchy Standard,FHS)定义了Linux操作系统中的主要目录及目录内容。FHS由Linux基金会维护。 当前版本为3.0版,于2015年发布



概述

多数Linux发行版遵从FHS标准并且声明其自身政策以维护FHS的要求。但截至2009年,包括由自由标准小组成员参与开发的版本在内的绝大多数发行版,并不完全执行建议的标准。

当FHS创建之时,其他的UNIX和类Unix操作系统已经有了自己的标准,尤其是hier(7)文件系统布局描述。 自从第七版Unix(于1979年发布)以来已经存在,或是SunOS filesystem(7),和之后的Solaris filesystem(5)。 例如,macOS使用如 /Library、 /Applications和/Users 等长名与传统UNIX目录层次保持一致。

现在的Linux发行版包含一个/sys目录作为虚拟文件系统(sysfs,类似于 /proc,一个procfs),它存储且允许修改连接到系统的设备,然而许多传统UNIX和类Unix操作系统使用/sys作为内核代码树的符号链接。

一些Linux系统如GoboLinux和Syllable Server使用了和FHS完全不同的文件系统层次组织方法。



历史

开发一套文件系统层次结构标准的进程始于1993年8月,标准努力重整Linux的文件和目录结构。FSSTND(英文Filesystem Standard),一个针对Linux操作系统的文件系统层次结构标准在1994年2月14日发布。 后续的修正版本分别在1994年10月9日和1995年3月28日发布。

在1996年初, 开发一个更加全面的、不仅解决Linux,而且解决其他类Unix系统目录层次结构问题的FSSTND的计划在BSD开发社区成员的协助下正式被采纳。因此,计划重点解决在类Unix系统上普遍存在的问题。 为了适应标准范围的扩充,标准的名称修改为文件系统层次结构标准。



目录结构

在FHS中,所有的文件和目录都出现在根目录”/”下,即使他们存储在不同的物理设备中。但是请注意,这些目录中的一些可能或可能不会在Unix系统上出现,这取决于系统是否含有某些子系统,例如X窗口系统的安装与否。

这些目录中的绝大多数都在所有的UNIX操作系统中存在,并且一般都以大致类似的方法使用;然而,这里的描述是针对于FHS的,并未考虑除了Linux平台以外的权威性。

目录 描述
/ 第一层次结构的根、 整个文件系统层次结构的根目录
/bin/ 需要在单用户模式可用的必要命令(可执行文件);面向所有用户,例如: cat、 ls、 cp。
/boot/ 引导程序文件,例如: kernel、initrd;时常是一个单独的分区
/dev/ 必要设备, 例如:/dev/null.
/etc/ 特定主机,系统范围内的配置文件。

关于这个名称目前有争议。在贝尔实验室关于UNIX实现文档的早期版本中,/etc 被称为etcetera, 这是由于过去此目录中存放所有不属于别处的所有东西(然而,FHS限制/etc只能存放静态配置文件,不能包含二进制文件自从早期文档出版以来,目录名称已被以各种方式重新称呼。最近的解释包括逆向首字母缩略词如:“可编辑的文本配置”(英文 “Editable Text Configuration”)或”扩展工具箱”(英文 “Extended Tool Chest”)
/etc/opt/ opt的配置文件
/etc/X11 X窗口系统(版本11)的配置文件
/etc/sgml SGML的配置文件
/etc/xml/ XML的配置文件
/home/ 用户的家目录,包含保存的文件,个人设置等,一般为单独的分区
/lib/ /bin和/sbin中二进制文件必要的库文件
/media/ 可以出媒体(如CD-ROM)的挂载点(在FHS-2.3中出现)
/mnt/ 临时挂载的文件系统
/opt/ 可选应用软件包
/proc/ 虚拟文件系统,将内核与进程状态归档为文本文件。例如:uptime、 network。在Linux中,对应Procfs格式挂载
/root/ 超级用户的家目录
/sbin/ 必要的系统二进制文件,例如: init、 ip、 mount。
/srv/ 站点的具体数据,由系统提供。
/tmp/ 临时文件(参见 /var/tmp),在系统重启时目录中文件不会被保留
/usr/ 用于存储只读用户数据的第二层次; 包含绝大多数的(多)用户工具和应用程序
/usr/bin/ 非必要可执行文件 (在单用户模式中不需要);面向所有用户。
/usr/include/ 标准包含文件。
/usr/lib/ /usr/bin/和/usr/sbin/中二进制文件的库。
/usr/sbin/ 非必要的系统二进制文件,例如:大量网络服务的守护进程。
/usr/share/ 体系结构无关(共享)数据。
/usr/src/ 源代码,例如:内核源代码及其头文件
/usr/X11R6/ X窗口系统 版本 11, Release 6.
/usr/local/ 本地数据的第三层次, 具体到本台主机。通常而言有进一步的子目录, 例如:bin/、lib/、share/.
/var/ 变量文件——在正常运行的系统中其内容不断变化的文件,如日志,脱机文件和临时电子邮件文件。有时是一个单独的分区。
/var/cache/ 应用程序缓存数据。这些数据是在本地生成的一个耗时的I/O或计算结果。应用程序必须能够再生或恢复数据。缓存的文件可以被删除而不导致数据丢失。
/var/lib/ 状态信息。 由程序在运行时维护的持久性数据。 例如:数据库、包装的系统元数据等。
/var/lock/ 锁文件,一类跟踪当前使用中资源的文件。
/var/log/ 日志文件,包含大量日志文件,为了防止日志占满根分区,生产环境中一般是单独分区。
/var/mail/ 用户的电子邮箱。
/var/run/ 自最后一次启动以来运行中的系统的信息,例如:当前登录的用户和运行中的守护进程、一些守护进程的pid文件、socket文件。现已经被/run代替
/var/spool/ 等待处理的任务的脱机文件,例如:打印队列和未读的邮件。
/var/spool/mail/ 用户的邮箱(不鼓励的存储位置)
/var/tmp/ 在系统重启过程中可以保留的临时文件
/run/ 代替/var/run目录。



闲扯

问:linux中系统日志放在什么地方

答:/var/log

问:具体在什么地方,再详细点

答:。。。我不知道

今天面试遇到一个问题懵逼了,赶紧查一查

/var/log/messages — 包括整体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。
/var/log/dmesg — 包含内核缓冲信息(kernel ring buffer)。在系统启动时,会在屏幕上显示许多与硬件有关的信息。可以用dmesg查看它们。
/var/log/auth.log — 包含系统授权信息,包括用户登录和使用的权限机制等。
/var/log/boot.log — 包含系统启动时的日志。
/var/log/daemon.log — 包含各种系统后台守护进程日志信息。
/var/log/dpkg.log – 包括安装或dpkg命令清除软件包的日志。
/var/log/kern.log – 包含内核产生的日志,有助于在定制内核时解决问题。
/var/log/lastlog — 记录所有用户的最近信息。这不是一个ASCII文件,因此需要用lastlog命令查看内容。
/var/log/maillog /var/log/mail.log — 包含来着系统运行电子邮件服务器的日志信息。例如,sendmail日志信息就全部送到这个文件中。
/var/log/user.log — 记录所有等级用户信息的日志。
/var/log/Xorg.x.log — 来自X的日志信息。
/var/log/alternatives.log – 更新替代信息都记录在这个文件中。
/var/log/btmp – 记录所有失败登录信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。
/var/log/cups — 涉及所有打印信息的日志。
/var/log/anaconda.log — 在安装Linux时,所有安装信息都储存在这个文件中。
/var/log/yum.log — 包含使用yum安装的软件包信息。
/var/log/cron — 每当cron进程开始一个工作时,就会将相关信息记录在这个文件中。
/var/log/secure — 包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里。
/var/log/wtmp或/var/log/utmp — 包含登录信息。使用wtmp可以找出谁正在登陆进入系统,谁使用命令显示这个文件或信息等。
/var/log/faillog – 包含用户登录失败信息。此外,错误登录命令也会记录在本文件中。

除了上述Log文件以外, /var/log还基于系统的具体应用包含以下一些子目录:

/var/log/httpd/或/var/log/apache2 — 包含服务器access_log和error_log信息。
/var/log/lighttpd/ — 包含light HTTPD的access_log和error_log。
/var/log/mail/ –  这个子目录包含邮件服务器的额外日志。
/var/log/prelink/ — 包含.so文件被prelink修改的信息。
/var/log/audit/ — 包含被 Linux audit daemon储存的信息。
/var/log/samba/ – 包含由samba存储的信息。
/var/log/sa/ — 包含每日由sysstat软件包收集的sar文件。
/var/log/sssd/ – 用于守护进程安全服务。

所以上述问题的答案应该具体点说就是


/var/log/auth.log包含系统授权信息,包括用户登录和使用的权限机制。



/var/log/boot.log包含系统启动时的日志。



/var/log/daemon.log包含各种系统后台守护进程日志信息.


在这里插入图片描述