Linux目录配置标准FHS

2024-02-11 13:48
文章标签 配置 linux 目录 标准 fhs

本文主要是介绍Linux目录配置标准FHS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

FHSFilesystem Hierarchy Standard的简称。FHS定义了两层规范。第一层是/目录下各个主要目录应该放什么文件数据,例如/etc应该放配置文件、/bin/sbin则应该放置可执行文件等;第二层则是针对/usr/var这两个目录的子目录来定义,例如/var/log放置系统登录文件,/usr/share放置共享数据等。

单一文件或目录的最大允许文件名为255个字符,包含完整路径的文件名或目录名最大允许为4096个字符。

目录应放置的文件内容
/根目录root(/),一般建议在根目录下只有目录,不要直接有文件。根目录是启动时系统第一个载入的分区,所以所有启动过程中会用到的文件都应该放在这个分区中。举例来说,/etc、/bin、/dev、/lib、/sbin这5个子目录都应该与根目录连在一起,不可独立成为某个分区。
/bin,/usr/bin,
/usr/local/bin
放置用户可执行的二进制文件的目录。
/boot放置Linux系统启动时用到的文件。启动会用到Linux的核心文件。这个目录下面的文件vmlinuz就是Linux的核心。这一点非常重要,如果引导程序(loader)选择grub,那么这个目录内还有/boot/grub子目录。
/dev在Linux系统上,任何设备都以文件类型存放在这个目录中,例如键盘、鼠标、硬盘、光盘等。在此目录下的文件会多出两个属性,分别是主设备号(major device number)与辅设备号(minor device number)。系统核心就是通过这两个号码来判断设备的。重要的文件有/dev/null、/dev/tty[1-6]、/dev/ttyS*、/dev/lp*、/dev/hd*、/dev/sd*等。
/etc系统主要的设置文件几乎都放在这个目录内,例如人员的账号密码文件、各种服务的起始文件等。一般来说,这个目录下的各文件属性是可以让一般用户查看的,但只有root有权修改。在此目录下的文件几乎都是ASII的纯文本文件。不过,FHS建议不要在这个目录中放置可执行文件。比较重要的文件有:/etc/inittab、/etc/init.d、/etc/modprobe.conf、/etc/X11、/etc/fstab、/etc/sysconfig等。
/home这是系统默认的家目录(home directory)。
/lib,/usr/lib,
/usr/local/lib
系统使用的函数库的目录。程序在运行过程中,可能会调用一些额外的参数,这需要函数库的协助。这些函数库就放在此处。比较重要的是/lib/modules目录内有核心的相关模块。
/lost+found系统出现异常,产生错误时,会将一些遗失的片段放于此目录下,通常这个目录会自动出现在某个分区顶层的目录下。
/mnt/media这是软盘与光盘的默认载入点。通常软盘挂在/mnt/floppy下,光盘挂在/mnt/cdrom下。
/opt这是给主机额外安装软件所放的目录。举例来说,FC4使用Fedora团队开发的软件,如果想要自行安装新的KDE桌面软件,可以将该软件安装在这个目录下。不过,以前的Linux系统中,我们还是习惯放在/usr/local目录下。
/proc这个目录本身是一个“虚拟文件系统”,它放置的数据都在内存中,例如系统核心、外部设备的状态及网络状态等。因为这个目录下的数据都在内存中,所以本身不占任何硬盘空间。比较重要的文件有/proc/cpuinfo、/proc/dma、/proc/interrupts、/proc/ioports、/proc/net/*等。
/root系统管理员(root)的家目录。之所以放在这里,是因为系统第一个启动就载入的分区为/,而我们希望/root能够与/放在同一块分区上。
/sbin,/usr/sbin,
/usr/local/sbin
放一些系统管理员才会用到的可执行命令,例如:fdisk、mke2fs、fsck、mkswap、mount等。与/bin不太一样的地方是,这几个目录是给root系统管理用的。但目录下的执行文件可以让一般用户用来“查看”而不能设置。
/srv一些服务启动之后,这些服务所需要访问的数据目录。举例来说,WWW服务器需要的网页数据就可以放在/srv/www中。
/tmp这是让一般用户或者是正在执行的程序临时放置文件的地方。这个目录是任何人都能访问的,所以需要定期清理。当然,重要数据不可放在此目录中。
/usr

根据FHS规范的第二层内容,在/usr目录下,包含系统的主要程序、图形界面所需要的文件、额外的函数库、本机自行安装的软件,以及共享的目录与文件。它有点像Windows操作系统中的“Program files”与“Windows”这两个目录的结合。在此目录下的重要子目录有:

  • /usr/bin,/usr/sbin:一般身份用户与系统管理员可执行文件放置目录
  • /usr/include:c/c++等程序语言的文件头(header)与包含文件(include)放置处,当以tarball方式(*.tar.gz的方式安装软件)安装某些数据时,会使用到里面的许多包含文件。
  • /usr/lib:各种应用软件的函数库文件放置目录。
  • /usr/local:本机自行安装的软件默认放置的目录。当前也适用于/opt目录。在安装完Linux之后,基本上所有的配置都有了,但软件总是可以升级的,例如要升级代理服务,则通常软件默认的安装地方就是/usr/local中。当安装完之后所得到的执行文件,为了与系统原执行文件区分,升级后的执行文件通常放在/usr/local/bin中。建议将后来才安装的软件放在这里,便于管理。
  • /usr/share:共享文件放置的目录,例如/usr/share/doc目录放置一些系统帮助文件、/usr/share/man放置manpage文件。
  • /usr/src:Linux系统相关的程序代码放置目录,例如/usr/src/linux为核心源码。
  • /usr/X11R6:系统内的X Window System所需的执行文件几乎都放在这里。
/var

这个目录也很重要,也是FHS规范的第二层目录内容。它主要放置系统执行过程中经常变化的文件,例如缓存(cache)或者是随时更改的日志文件(log file)。此外,某些软件执行过程中会写入的数据库文件,例如MySQL数据库,也都写入这个目录中。它下面的主要目录有:

  • /var/cache:程序文件在运行过程中的一些暂存盘。
  • /var/lib:程序执行的过程中,使用的数据文件放置的目录。例如locate数据库与MySQL及rpm等数据库系统,都写在这个目录中。
  • /var/log:登录文件放置的目录,很重要。例如/var/log/messages就是总管所有登录文件的文件。
  • /var/lock:某些设备具有一次性写入的特性,例如tab(磁带机),此时,为了避免被其他人干扰正在运行的操作,会将该设备lock(锁)起来,以确定该设备只能被单一程序所用。
  • /var/run:某些程序或者是服务启动后,会将它们的PID放在这个目录下。
  • /var/spool:是一些队列数据存放的地方。例如主机收到电子邮件后,就会放到/var/spool/mail中,若信件暂时发不出去,就会放到/var/spool/mqueue目录下,用户工作任务分配(cron)则是放在/var/spool/cron中。

这篇关于Linux目录配置标准FHS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/699943

相关文章

如何配置Spring Boot中的Jackson序列化

《如何配置SpringBoot中的Jackson序列化》在开发基于SpringBoot的应用程序时,Jackson是默认的JSON序列化和反序列化工具,本文将详细介绍如何在SpringBoot中配置... 目录配置Spring Boot中的Jackson序列化1. 为什么需要自定义Jackson配置?2.

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

Spring中配置ContextLoaderListener方式

《Spring中配置ContextLoaderListener方式》:本文主要介绍Spring中配置ContextLoaderListener方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录Spring中配置ContextLoaderLishttp://www.chinasem.cntene

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO