Linux系统目录树结构以及解释

article/2025/8/21 10:13:43

FHS标准

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

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

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

也就是说,实际上,FHS针对目录架构仅定义了三层目录下应该放什么数据,分别是:

  • / (root,根目录):与开机系统有关。
  • /usr (UNIX software resource): 与软件安装和执行有关。
  • /var (variable): 与系统运作过程有关。

Linux目录树

树状目录结构

在这里插入图片描述

各个目录的解释

bin

bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令,放置的是在单用户模式维护模式下还能被操作的命令,/bin下命令可以被root和一般账号使用。如:cat、chmod、chown、mkdir、cp等

boot

放置开机会使用到的文件,包括liunx内核文件以及开机菜单与开机所需配置文件,包括一些连接文件以及镜像文件等。

/dev

dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备与接口设备文件,在 Linux 中访问设备的方式和访问文件的方式是相同的,只要通过访问这个目录下面的某个文件就相当于访问该设备。

/etc

etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

系统主要配置文件几乎都放置在这个目录内,如用户账号、密码、各种服务起始文件等、该目录下的文件普通用户可以查看,但只有root用户有权修改。FHS建议不要放置可执行文件(binary)在此目录。

  • 该目录下比较重要的文件有:
    • /etc/inittab
    • /etc/init.d/
    • /etc/modprobe.conf
    • /etc/X11/:与X Window 有关的各种配置文件放在这里,尤其是xorg.conf这个XServer的配置文件。
    • /etc/xinetd.d/: super daemon 管理的各项服务的配置文件目录。
    • /etc/fstab
    • /etc/sysconfig
  • 该目录下重要的目录有:
    • /etc/init.d/: 所有服务的默认启动脚本都是放置在这里的。
      例如启动或关闭iptables命令为:

      /etc/init.d/iptables start  #启动
      /etc/init.d/iptables stop   #关闭
      

/home

系统默认用户的主文件夹,创建账户时会在该目录下自动生成这个用户的主文件夹,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

/root

系统管理员主文件夹,一般希望root的主文件夹与根目录放置在同一个分区中。

/lib

lib 是 Library(库) 的缩写,放置的是在系统开机时用到的函数库以及系统最基本的动态连接共享库,几乎所有的应用程序都需要用到这些共享库。其作用类似于 Windows 里的 DLL 文件,在/bin/sbin下面的命令会调用到的函数库也在/lib内。

/lib/modules/这个目录下放置内核相关的驱动程序。

/media

/media下面放置的是可删除设备。linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

/mmt

/media功能相似,系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

/opt

opt 是 optional(可选) 的缩写,这是给主机额外安装 第三方软件放置目录,比如你安装一个ORACLE数据库则就可以放到这个目录下,默认是空的。

/proc

proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

比如查看某个进程的信息:ll /proc/pid

这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

/run

是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

/sbin

s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序,/sbin目录下的命令只有root用户能够使用,普通用户只有查询的权限。/sbin下包含开机、修复、还原系统所需要的命令。

至于服务器软件程序命令,一般放置在/usr/sbin/

本机自行安装的第三方软件产生的命令,则放置在/usr/local/sbin/中。

/tmp

一般用户或者正在执行的程序暂时放置文件的地方。这个目录是任何人可以访问的,需要定期清理。

注意: 不可以与根目录分开的目录有:/etc/bin/sbin/dev/lib这五个目录。

/sys

这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

sysfs 文件系统集成了下面3种文件系统的信息:

  • 针对进程信息的 proc 文件系统、
  • 针对设备的 devfs 文件系统
  • 针对伪终端的 devpts 文件系统。

该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

/selinux

这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/lost+found

这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/srv

一些网络服务启动之后,这些服务所需要读取数据的目录。常见的服务例如WWW、FTP等,WWW服务需要的网页数据放置在/srv/www/里面。

/usr

用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

/usr下包含的子目录:

  • /usr/lib/: 包含各应用软件的函数库、目标文件以及不被一般用户惯用的执行文件或脚本。注意该文件名也可能为/usr/lib64
  • /usr/bin/: 绝大部分的用户可使用命令放这里,注意与/bin的不同之处(是否与开机过程有关)。
  • /usr/sbin/: 非系统正常运行所需要的系统命令。
  • /usr/src/: 内核源代码默认的放置目录。
  • /usr/local/: 第三方软件安装位置。
  • /usr/share/: 放置共享文件的地方,各种帮助文档目录也在这个下面。
  • /usr/include/:C/C++等程序语言头文件与包含文件放置处,当使用tarball方式(*.tar.gz的方式安装软件)安装某些数据时,会使用里面的许多文件。
  • /usr/X11R6/ :X Window 系统重要数据防止目录。

/var

存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。

/var下包含的子目录:

  • /var/cache/: 应用程序运行过程产生的一些暂存文件。
  • /var/lib/: 程序本身运行过程中,需要使用到的数据文件放置在这里。
  • /var/lock/: 某些设备或文件资源只能被一个应用程序使用,该文件就是将该文件上锁,以确保单一软件使用。
  • /var/log/: 登录文件放置目录。
  • /var/mail/: 个人邮件信箱目录,不过这个目录也被放置到/var/spool/mail/目录中,这两个目录互为连接文件。
  • /var/run/:某些程序或服务启动后,会将它们的PID放置在该目录下。
  • /var/spool/: 该目录放置一些队列数据。

参考:菜鸟教程
参考:Linux系统下的目录树结构


http://chatgpt.dhexx.cn/article/pXxN17Ew.shtml

相关文章

目录树的构造

概述 ”树“在计算机的世界里是一个基本的数据结构,很多地方都能看到”树“的身影。最常见的应该是在各种软件和网页的菜单栏中,多层级的折叠其实就是以一棵树的形式进行展现的,如下图所示: 在树的层级和标签类别比较少&#xf…

兴安雪学运维之:目录树详解

极北之地,兴安之雪,老骥伏枥转战Linux运维,最近根据授课和大略看了FHS3.0,对Linux的目录有了初步的了解,怕人老忘性差,作以记录。 一、目录结构图 Linux的目录是一个倒置的树状结构,最顶层的目录…

【数据结构】B/B-树(目录树)

引言 关于B树的性质 一、B树的结构 二、B树的实现 #include<iostream> using namespace std; #if 1 //5分支Btree #define M 5 //奇数 #define MAXSIZE (M-1) //最多元素个数 #define MINSIZE (M/2) //最少元素个数 //B树 class Btree { public://关键码类型using KeyTy…

【Mybatis】Mybatis将String类型的0存到数据库中的number类型字段中,变成了空;

一、问题 Mybatis将String类型的0存到数据库中的number类型字段中&#xff0c;变成了空&#xff1b; 二、分析 自己写了一个自动写代码的脚本&#xff0c;带入springBatch后&#xff0c;读取文件时&#xff0c;少了序列号0-9的记录&#xff08;10笔一提交&#xff09;&#…

java取数据库number转String

2019独角兽企业重金招聘Python工程师标准>>> BigDecimal bigDecimal(BigDecimal)value; Long lbigDecimal.longValue(); String sbigDecimal.toString(); 转载于:https://my.oschina.net/u/2285090/blog/514110

字符串存入数据库date类型字段

有时候为了计算方便等原因需要将时间以date格式存入数据库&#xff0c;但是前台传过来的数据类型都是字符串&#xff0c;如果将字符串直接插入date类型的字段中会抛&#xff1a;ORA-01861: 文字与格式字符串不匹配。 前台页面有一个表单&#xff0c;如下所示&#xff1a; <…

2018年SCI论文--整合GEO数据挖掘完整复现 八 :STRING数据库构建蛋白质相互作用网络(PPI),cytoscape软件筛选hub基因

文章目录 论文地址STRING数据库PPI网络构建输入差异基因listPPI图保存结果 cytoscape软件筛选hub基因、功能模块输入“string_interactions”文件用cytohHubba插件&#xff0c;筛选top10 Hub基因生存分析用MCODE插件&#xff0c;筛选功能模块 论文地址 STRING数据库 PPI网络构…

string数据库使用和实践第三部分数据处理 流程-参数--后续分析

流程 1.首先要获取蛋白质列表&#xff08;单个/多个&#xff09; 格式&#xff1a;蛋白名称为一个占一行&#xff0c;或者氨基酸序列的通用格式。ID类别&#xff1a;可以为一种&#xff0c;可以为多种混合 2.在对应的数据框中输入蛋白质列表或者上传列表文件后&#xff0c;选择…

spring boot String类型json 存入数据库

效果图&#xff1a; 如图&#xff0c;string类型的json字符串&#xff0c;存入数据库&#xff0c;主要就是解析成map&#xff0c;遍历插入&#xff0c;不多说上干货&#xff1a; PostMapping(value "/currentConfig")public String saveSvConfig(RequestParam(&quo…

jpa @Convert list转String存入数据库

1.问题 list通过jpa直接存入数据库会报错这里需要进行转换 2.代码 1.dto对象 Entity Data Accessors(chain true) public class GameMatch {/*** 主键*/IdGeneratedValue(strategy GenerationType.IDENTITY)private Integer id;/*** 游戏id*/private Integer gameId;/*** …

string数据库使用和实践的第二部分网页展示http://string-db.org/

主页 protein-mode 该模式中&#xff0c;string数据库能够预测到特定物种中的某一个蛋白质的相互作用关系 通过该模式可以获取最多的特异性&#xff0c;但是覆盖面就会较小一些&#xff0c;原因是该模式中&#xff0c;string不会准确的去获取其他物种的直系同源物&#xff0c;取…

蛋白相互作用数据库,STRING使用指南

对于基因组数据分析而言的话&#xff0c;我们能用到网络分析的就是蛋白相互作用分析(protein-protein ineraction, PPI)分析了。 蛋白相互作用分析的数据库有很多&#xff0c;至于为什么选择STRING&#xff0c;还是在于其强大的可视化&#xff0c;以及自定义功能。这样我们可以…

五大常见的数据类型之 String

前言 我们都知道 Redis 提供了丰富的数据类型&#xff0c;常见的有五种&#xff1a;String&#xff08;字符串&#xff09;&#xff0c;Hash&#xff08;哈希&#xff09;&#xff0c;List&#xff08;列表&#xff09;&#xff0c;Set&#xff08;集合&#xff09;、Zset&…

数据库String字符串

char(n) varchar(n) tinyint tinytext text mediumtext longtextchar(0-255)varchar(0-21844) // 63533定长字符串 char()变长字符串 varchar(n) tinytext text mediumtext longtext(4GBtext)-- char varchar tinytext text mediumtext longtext -- 23767-1 21845-1 16383-1…

STRING:蛋白质相互作用(PPI网络)数据库简介

欢迎关注微信公众号《生信修炼手册》! 研究蛋白之间的相互作用网络&#xff0c;有助于挖掘核心的调控基因&#xff0c;目前已经有很多的蛋白质相互作用的数据库&#xff0c;而string绝对是其中覆盖的物种最多&#xff0c;相互作用信息做大的一个&#xff0c;网址如下 https://…

string数据库使用和实践第一部分string数据库介绍

背景 为什么要寻找蛋白质互做关系&#xff1f; 因为只有正确地发现和注释细胞中的所有功能性的相互作用关系&#xff0c;才能对细胞的功能进行系统层面的学习和理解。 大家在收集和展现蛋白质相互作用的信息上&#xff0c;一直在努力地跟上相互作用关系探索的步伐 近年来&#…

解决虚拟机桥接模式无法上网的问题

1.检查IP地址以及网关等信息是否正确 vim /etc/network/interfaces这里设置的是静态ip, auto lo iface lo inet loopback auto eth0 iface eth0 inet stastic address 192.168.43.40 # 设置IP netmask 255.255.255.0 # 设置子网掩码 gateway 192.168.43.19 # 设置网关 首先…

VM虚拟机桥接模式无法联网解决办法

1.桥接模式的意义&#xff1a; 桥接模式----使虚拟机客户机可以和主机在同一网段&#xff0c;这样&#xff0c;和主机同局域网内的其他主机就也可以ping到虚拟机了 2.问题描述&#xff1a; 1.主机和虚拟机客户机相互之间ping不通 2.将虚拟机改为网络模式为NAT模式自动获取I…

虚拟机配置桥接模式(bridge)

使用的Vmware虚拟机软件 需要使用bridge&#xff0c;桥接模式 首先&#xff0c;需要给主机电脑设置IP&#xff0c; 看主机使用的是有线还是无线&#xff0c;使用哪个就设置那个&#xff0c;可以先通过ipconfig/all来查看ip&#xff0c;然后根据实际信息配置网络适配器 手动配置…

虚拟机桥接模式下的网络设置

虚拟机共有三种网络模式&#xff0c;每种网络模式具体的原理参考&#xff1a; Vmware虚拟机三种网络模式详解 - 星朝 - 博客园原文来自http://note.youdao.com/share/web/file.html?id236896997b6ffbaa8e0d92eacd13abbf&typenote 我怕链https://www.cnblogs.com/jpfss/p/…