Linux FHS结构

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

FHS是Filesystem Hierarchy Standard文件系统层次化标准的缩写多数Linux版本采用这种文件组织形式类似于Windows操作系统中c盘的文件目录FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。

FHS_2.3标准文档https://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.pdf

定义

FHS定义了两层规范。

第一层是 / 下面的各个目录应该要放什么文件数据例如/etc应该要放置设置文件/bin与/sbin则应该要放置可执行文件等等。因为Linux的开发人员实在太多了如果每个人都使用自己的目录配置方法那么将可能会带来很多管理问题。你能想象你进入一个企业之后所接触到的Linux目录配置方法竟然跟你以前学的完全不同吗很难想象。所以后来就有所谓的文件系统层次标准(Filesystem Hierarchy StandardFHS)出台。

第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。

特点介绍

由于FHS仅是定义出最上层(/)及子层(/usr, /var)的目录内容应该要放置的文件数据因此在其他子目录层级内就可以随开发人员自行配置了。举例来说FC4的网络设置数据放在/etc/sysconfig/network-script/目录下但SuSE Server 9则是将网络放在/etc/sysconfig/network/目录下目录名称是不同的。

另外在Linux中所有的文件与目录都由根目录/ 开始。那是所有目录与文件的源头。然后再一个一个分支下来有点像树状。因此我们也称这种目录配置方式为“目录树(directory tree)”。这个目录树主要特性有

目录树的起始点为根目录(/, root)。需要为根目录单独创建一个分区即根分区相当于C盘系统盘。

每一个目录不仅能使用本地端分区的文件系统也可以使用网络上的文件系统。举例来说可以利用网络文件系统(Network File SystemNFS)服务器载入某特定目录等。

每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的。

此外根据文件名写法的不同也可将路径(path)定义为绝对路径(absolute)与相对路径(relative)。

绝对路径为由根目录(/)开始写起的文件名或目录名称例如/home/dmtsai/.bashrc

相对路径为相对于当前路径的文件名写法。例如./home/dmtsai或../../home/dmtsai/等等。

反正开头不是/ 就属于相对路径的写法。必须要了解相对路径是以“当前所在路径的相对位置”来表示的。举例来说当前在/home目录下如果想要进入/var/log目录时怎么写呢

cd /var/log(absolute)

cd ../var/log(relative)

因为在/home中所以要回到上一层(../)之后才能继续向/var移动。

特别注意这两个特殊的目录

表示当前目录也可以使用./来表示。

.. 表示上一层目录也可以../来表示。

.与..的目录概念很重要你常常会看到cd ..或 ./command之类的命令方式就是表示上一层与当前所在目录的工作状态。此外针对“文件名”与“完整文件名(由/ 开始写起的文件名)”的字符限制大小为

单一文件或目录的最大容许文件名为255个字符。包含完整路径名称及目录(/)的完整文件名为4096个字符。

我们知道/var/log/下面有个文件名为message这个message文件的最大文件名可达255个字符。var与log这两个上层目录最长也分别可达255个字符。但总的来说 /var/log/messages这样完整的文件名最长则可达4096个字符。

提示root在Linux里面的意义很多。如果从“账号”的角度来看root指“系统管理员”身份如果以“目录”的角度来看root指的是根目录就是/ 。要特别注意。

文件系统的目录结构

  • 文件和目录被一个组织成一个单根倒置树结构
  • 文件系统从根目录下开始用“/”表示
  • 根文件系统rootfsroot filesystem
  • 标准Linux文件系统如ext4文件名称大小写敏感
  • 以 . 开头的文件为隐藏文件
  • 路径用 / 分隔
  • 文件名最长255个字节
  • 包括路径在内文件名称最长4095个字节
  • 蓝色-->目录     绿色-->可执行文件     红色-->压缩文件    浅蓝色-->链接文件     灰色-->其他文件
  • 除了斜杠和NUL所有字符都有效但使用特殊字符的目录名和文件不推荐使用有些字符需要用引号来引用。

  • 每个文件都有两类相关数据元数据metadata即属性 数据data即文件内容

2、默认的基本目录结构如下

/boot引导文件存放目录内核文件(vmlinuz)、引导加载器(bootloadergrub)都存放于此目录

/bin所有用户使用的基本命令不能关联至独立分区OS启动即会用到的程序

/sbin管理类的基本命令不能关联至独立分区OS启动即会用到的程序

/lib启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

/lib64专用于x86_64系统上的辅助共享库文件存放位置

/etc配置文件目录

/home/USERNAME普通用户家目录

/root管理员的家目录

/media便携式移动设备挂载点

/mnt临时文件系统挂载点

/dev设备文件及特殊文件存储位置

          b: block device随机访问

          c: character device线性访问

/opt第三方应用程序的安装位置

/srv系统上运行的服务用到的数据

/tmp临时文件存储位置

/usr: universal shared, read-only data

        bin: 保证系统拥有完整功能而提供的应用程序

        sbin:

        lib32位使用

        lib64只存在64位系统

        include: C程序的头文件(header files)

        share结构化独立的数据例如doc, man等

        local第三方应用程序的安装位置

                          bin, sbin, lib, lib64, etc, share

/var: variable data files

        cache应用程序缓存数据目录

        lib应用程序状态信息数据

        local专用于为/usr/local下的应用程序存储可变数据

        lock锁文件

        log日志目录及文件

        opt专用于为/opt下的应用程序存储可变数据

        run运行中的进程相关数据通常用于存储进程pid文件

        spool应用程序数据池

        tmp保存系统两次重启之间产生的临时数据

/proc: 用于输出内核与进程信息相关的虚拟文件系统

/sys用于输出当前系统上硬件设备相关信息虚拟文件系统

/selinuxsecurity enhanced Linuxselinux相关的安全策略等信息的存储位置

3、文件系统结构总结:

  • Linux的目录中只有一个根目录/
  • Linux的各个目录存放的内容是规划好的不要乱放文件。
  • Linux是以文件的形式管理设备的因此Linux系统中一切皆为文件。
  • Linux的各个文件目录下存放什么内容需要有一个准确的认识。

 4、文件类型

使用命令查看文件首字母会标记该文件的文件类型有以下几种类型:

  •  : 普通文件
  • d: 目录文件
  • b:块文件
  • c:字符文件
  • l:符号链接文件
  • p:管道文件pipe
  • s:套字节文件socket

 

FHS定义了两层规范第一层是 / ,第二层是针对 /usr 和 /var 这两个目录的子目录来定义的。

/dev 设备目录

/etc 配置文件以及服务启动的目录

/etc/init.d 存放系统或服务器以system v 模式启动的脚本

/etc/sysconfig/network-scripts/ifcfg-eth0 设置网卡 /etc/init.d/network restart ; ifdown eth0;

/etc/sysconfig/network 可修改机器名及网卡启动网关等配置

/etc/resolv.conf 设置linux本地的客户端DNS的文件

/etc/hosts 设定用户IP与名字的对应表

/etc/fstab 记录开机要mount的文件系统的一个文件

/etc/inittab 设定系统启动时init进程将把系统设置成什么样的runlevel及加载相关的启动文件设置。

/etc/rc.local 存放开机自启动程序命令的文件。chkconfig

/etc/exports 设定NFS网络文件系统用的配置文件。

/etc/xinit.d 如果服务器是通过xinitd模式运行的他的脚本存放在这里。

/etc/profile 系统全局环境变量配置路径。

/etc/profile.d 加载系统登录程序一个目录命令或文件独立存在。

/etc/skel 存放新用户配置文件目录

/proc 显示内核及进程信息虚拟文件系统

/tmp 临时文件目录

/home 普通用户家目录

/var 变化目录一般是日志文件目录。

/usr 用户程序及数据帮助文件等目录。

/usr/bin 应用程序

/usr/share 数据文件,帮助

/usr/local 存放用户自己安装的程序相当于c:/program files 一般编译软件的时候默认路径yum或rpm包安装默认路径一般不是这里。

/usr 存放unix系统商开发的程序。

/opt 存放第三方厂商开发的程序。

/etc/motd 设置警告信息

参考LinuxFHS标准 - 幸福框架 - 博客园 

百度百科-验证

Linux FHS结构 - Steven_shl - 博客园

百度安全验证

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux