Linux 文件系统层次结构

Linux 的文件系统遵循 Filesystem Hierarchy Standard (FHS) 标准,其目录结构是层次化的,每个目录都有明确的用途。以下是 Linux 中部分目录的作用解析:


1. 根目录 /

  • 作用:根目录是整个文件系统的顶层目录,所有其他目录都直接或间接挂载在根目录下。
  • 特点
    • 系统启动时,根目录是第一个被挂载的文件系统。
    • 包含所有系统文件和子目录,是 Linux 文件系统的起点。

2. /bin

  • 作用:存放系统启动和日常操作所需的核心命令(二进制可执行文件)。
  • 常见命令lscpmvcatbash 等。
  • 特点
    • 所有用户均可访问。
    • 即使系统进入单用户模式(Single User Mode),这些命令仍可用。
    • 通常包含 32 位架构的命令(64 位系统中 64 位命令可能在 /bin/usr/bin 中)。

3. /boot

  • 作用:存放系统启动所需的文件。
  • 关键文件
    • 内核镜像(如 vmlinuz)。
    • 引导加载器配置文件(如 GRUB 的 grub.cfg)。
    • 初始化内存盘(initrd.imginitramfs)。
  • 特点
    • 系统启动时,BIOS/UEFI 会读取 /boot 中的文件加载操作系统。
    • 通常建议将 /boot 放置在磁盘前 1024 柱面内(旧版系统限制)。

4. /dev

  • 作用:存放设备文件(设备驱动接口)。
  • 常见设备
    • 硬盘(如 /dev/sda/dev/sdb)。
    • 终端设备(如 /dev/tty/dev/console)。
    • 随机数生成器(如 /dev/random/dev/urandom)。
  • 特点
    • 每个硬件设备在 Linux 中都映射为一个文件。
    • 使用 mknodudev 工具动态创建设备文件。

5. /etc

  • 作用:存放系统和应用程序的配置文件。
  • 常见配置文件
    • 用户账户信息(/etc/passwd/etc/shadow)。
    • 网络配置(/etc/network/interfaces/etc/resolv.conf)。
    • 启动脚本(/etc/rc.d/etc/init.d)。
  • 特点
    • 配置文件通常为文本格式,可手动编辑。
    • 系统管理员的核心管理区域。

6. /home

  • 作用:普通用户的个人主目录。
  • 示例
    • 用户 alice 的主目录为 /home/alice
    • 存放用户的个人文件、配置文件(如 .bashrc)。
  • 特点
    • 保护用户隐私,隔离不同用户的文件。
    • 系统升级或重装时,用户数据通常保留在此目录中。

7. /lib/lib64

  • 作用:存放系统运行所需的共享库文件(动态链接库)。
  • 区别
    • /lib:32 位架构的共享库。
    • /lib64:64 位架构的共享库。
  • 关联目录
    • /bin/sbin 中的程序依赖的库文件。
    • 例如:/lib/libc.so.6(C 标准库)。

8. /media/mnt

  • 作用:用于挂载外部存储设备。
  • 区别
    • /media:自动挂载点(如插入 USB 驱动器后,系统自动挂载到 /media/USB)。
    • /mnt:手动挂载点(用户可手动挂载文件系统,如 mount /dev/sdb1 /mnt/data)。
  • 特点
    • /media 是现代系统推荐的挂载点。
    • /mnt 通常为空,供临时使用。

9. /opt

  • 作用:安装第三方软件(如商业软件或非标准软件包)。
  • 示例
    • 软件可能安装在 /opt/software_name/ 目录下。
  • 特点
    • 通常用于独立安装的软件包(如 Oracle、IBM 软件)。
    • 与系统默认软件分离,便于管理。

10. /proc/sys

  • 作用:虚拟文件系统,提供内核和硬件信息。
  • 区别
    • /proc:以文件形式展示进程和系统状态(如 /proc/cpuinfo/proc/meminfo)。
    • /sys:以层次化结构展示设备和驱动信息(如 /sys/class/)。
  • 特点
    • 文件内容由内核动态生成,不占用磁盘空间。
    • 用于调试和监控系统资源。

11. /root

  • 作用:超级用户(root)的主目录。
  • 特点
    • /home 类似,但仅属于 root 用户。
    • 存放 root 的个人文件和配置。

12. /run

  • 作用:存放系统运行时的临时数据(易失性数据)。
  • 示例
    • 进程 ID 文件(如 /run/ 目录下的 .pid 文件)。
    • 临时日志或服务状态信息。
  • 特点
    • 数据在系统重启后丢失。
    • 替代了旧版的 /var/run

13. /sbin

  • 作用:存放系统管理员使用的管理命令。
  • 常见命令fdiskifconfiginitreboot
  • 特点
    • 通常只有 root 用户可执行。
    • /bin 类似,但针对系统管理任务。

14. /srv

  • 作用:存放系统服务的数据(如 Web 服务器、FTP 服务器的数据)。
  • 示例
    • Web 站点文件可能存放在 /srv/www/
    • FTP 数据存放在 /srv/ftp/
  • 特点
    • 用于集中管理服务数据,与 /var 不同,/srv 是服务专属目录。

15. /tmp

  • 作用:存放临时文件。
  • 特点
    • 所有用户均可读写。
    • 系统重启后,/tmp 中的内容通常会被清空。
    • 安全性较低,需定期清理。

16. /usr

  • 作用:系统级应用程序和库文件的存储目录。
  • 子目录
    • /usr/bin:用户命令(如 gccvim)。
    • /usr/sbin:系统管理命令(如 useraddsshd)。
    • /usr/lib:共享库文件。
    • /usr/include:C/C++ 头文件。
    • /usr/share:共享数据(如文档、字体、图标)。
    • /usr/local:本地安装的软件(如手动编译的软件)。
  • 特点
    • 是 Linux 系统中最大的目录之一。
    • 非核心功能的用户程序和库文件主要存放于此。

17. /var

  • 作用:存放运行时变化的数据(如日志、缓存、邮件)。
  • 子目录
    • /var/log:日志文件(如 syslogauth.log)。
    • /var/cache:应用程序缓存。
    • /var/spool:队列数据(如打印任务、邮件)。
    • /var/tmp:长期临时文件(与 /tmp 不同,重启后保留)。
  • 特点
    • 数据随时间增长而变化。
    • 通常需要定期清理或归档。

18. /lost+found

  • 作用:系统非正常关机或文件系统损坏时,恢复“丢失”的文件碎片。
  • 特点
    • 平时为空。
    • 文件系统检查工具(如 fsck)会将修复的文件放在此目录中。

19. /opt

  • 作用:安装第三方软件(如商业软件或非标准软件包)。
  • 示例
    • 软件可能安装在 /opt/software_name/ 目录下。
  • 特点
    • 通常用于独立安装的软件包(如 Oracle、IBM 软件)。
    • 与系统默认软件分离,便于管理。

20. /sys

  • 作用:提供内核和硬件设备的动态信息。
  • 特点
    • 文件内容由内核动态生成。
    • 用于监控和调整硬件参数(如 CPU 频率、设备驱动状态)。

21. /usr/local

  • 作用:本地安装的软件和库文件。
  • 特点
    • 手动编译安装的软件通常安装在此目录下(如通过 ./configure --prefix=/usr/local)。
    • 与系统默认的 /usr 分离,避免冲突。

22. /usr/src

  • 作用:存放内核源代码和其他软件的源代码。
  • 示例
    • Linux 内核源代码通常位于 /usr/src/linux-headers-xxx
  • 特点
    • 开发人员编译内核模块或自定义内核时会用到此目录。

23. /var/log

  • 作用:存放系统日志文件。
  • 常见日志
    • syslog:通用系统日志。
    • auth.log:认证相关日志(如 SSH 登录尝试)。
    • dmesg:内核环缓冲区日志(系统启动信息)。
  • 特点
    • 日志文件可能占用大量磁盘空间,需定期清理或轮转(如使用 logrotate)。

24. /var/cache

  • 作用:缓存应用程序的数据(如包管理器的下载缓存)。
  • 示例
    • apt 的缓存位于 /var/cache/apt/archives/
  • 特点
    • 缓存可以加快程序运行速度,但占用磁盘空间。

25. /var/spool

  • 作用:存放队列数据(如打印任务、邮件队列)。
  • 示例
    • 打印任务可能存放在 /var/spool/cups/
    • 邮件队列可能存放在 /var/spool/mail/
  • 特点
    • 数据按顺序处理,通常由后台服务管理。

26. /var/tmp

  • 作用:存放需要长期保留的临时文件。
  • 特点
    • /tmp 不同,/var/tmp 中的文件在系统重启后仍然保留。
    • 通常用于需要跨会话保存的临时数据。

27. /usr/share

  • 作用:存放共享数据(如文档、字体、图标、语言包)。
  • 示例
    • 文档存放在 /usr/share/doc/
    • 图标存放在 /usr/share/icons/
  • 特点
    • 数据与架构无关,适用于多平台。

28. /usr/include

  • 作用:存放 C/C++ 头文件(开发库的接口定义)。
  • 示例
    • 标准库头文件如 stdio.h
  • 特点
    • 开发人员编译程序时会引用此目录中的文件。

29. /usr/man

  • 作用:存放手册页(man pages)。
  • 示例
    • man ls 会从 /usr/man/man1/ls.1.gz 读取帮助文档。
  • 特点
    • 手册页按级别分类(如 man1 为用户命令,man8 为系统管理命令)。

30. /usr/src

  • 作用:存放内核源代码和其他软件的源代码。
  • 示例
    • Linux 内核源代码通常位于 /usr/src/linux-headers-xxx
  • 特点
    • 开发人员编译内核模块或自定义内核时会用到此目录。

Linux 文件系统目录结构表

层级目录名作用描述
1/根目录,整个文件系统的起点,所有其他目录均挂载于此。
2/bin存放系统启动和日常操作所需的核心命令(如 ls, cp, bash),所有用户均可访问
2/boot存放系统启动所需的文件:
- 内核镜像(vmlinuz
- GRUB 配置文件(grub.cfg
- 初始化内存盘(initrd.img
2/dev设备文件目录,将硬件设备映射为文件:
- 块设备(如 /dev/sda
- 字符设备(如 /dev/tty
- 虚拟设备(如 /dev/random
2/etc系统配置文件目录,存放系统和应用程序的配置文件:
- 用户账户信息(/etc/passwd, /etc/shadow
- 网络配置(/etc/network/interfaces
- 服务配置(如 /etc/nginx/nginx.conf
- 系统初始化脚本(/etc/init.d/
- 环境变量(/etc/profile
- 安全策略(/etc/hosts.allow
2/home普通用户的主目录,每个用户在该目录下有独立的子目录(如 /home/alice)。
2/lib存放系统运行所需的共享库文件(如 libc.so.6),支持 /bin/sbin 中的程序。
2/lib6464 位架构下的共享库文件目录,仅用于 64 位系统,与 /lib 类似但针对 64 位程序。
2/libx3232 位兼容库目录(仅限 64 位系统),用于支持 32 位程序在 64 位系统中运行。
2/media自动挂载点,插入外部设备(如 USB)后,系统会自动挂载到此目录下的子目录(如 /media/USB)。
2/mnt手动挂载点,用户可手动挂载文件系统(如 mount /dev/sdb1 /mnt/data)。
2/opt第三方软件安装目录,通常用于安装非标准软件包(如商业软件)。每个软件通常安装在 /opt/software_name/
2/proc虚拟文件系统,提供内核和进程信息(如 /proc/cpuinfo, /proc/meminfo)。内容由内核动态生成,无需占用磁盘空间
2/root超级用户(root)的主目录,与 /home 类似,但仅属于 root 用户。
2/run运行时数据目录,存放系统运行时的临时数据(如 PID 文件、服务状态)。重启后数据丢失,替代旧版 /var/run
2/sbin系统管理命令目录,存放管理员使用的命令(如 reboot, fdisk),通常仅限 root 用户执行。
2/srv服务数据目录,存放特定服务的数据(如 Web 服务器的网页文件 /srv/www/、FTP 服务的文件 /srv/ftp/)。
2/sys虚拟文件系统,提供内核和硬件设备的动态信息(如 /sys/class/),用于监控和调整硬件参数。
2/tmp临时文件目录,所有用户均可读写,系统重启后内容通常被清空。默认权限为 1777(防冲突)。
2/usr用户级程序目录,是 Linux 系统中最大的目录之一,包含应用程序、库文件和共享数据。
3/usr/bin存放用户命令(如 gcc, vim)。
3/usr/sbin存放系统管理命令(如 useradd, sshd)。
3/usr/lib存放共享库文件(如 libssl.so)。
3/usr/include存放 C/C++ 头文件(如 stdio.h)。
3/usr/share存放共享数据(如文档、字体、图标、语言包)。
3/usr/local存放本地安装的软件(如手动编译的软件),与系统默认的 /usr 分离。
3/usr/src存放内核源代码和其他软件的源代码(如 /usr/src/linux-headers-xxx)。
3/usr/games存放游戏程序(部分系统可能未启用)。
3/usr/libexec存放辅助程序(如 sudo 的底层工具)。
3/usr/lib6464 位架构下的共享库文件目录(与 /lib64 类似,但位于 /usr 下)。
3/usr/libx3232 位兼容库目录(仅限 64 位系统)。
3/usr/local/bin存放本地用户安装的命令(如手动编译的 nginx)。
3/usr/local/lib存放本地安装的共享库文件。
2/var运行时数据目录,存放随时间变化的数据(如日志、缓存、邮件队列)。
3/var/log存放系统日志文件(如 syslog, auth.log)。
3/var/cache存放应用程序缓存(如 apt 的下载缓存)。
3/var/spool存放队列数据(如打印任务 /var/spool/cups/、邮件队列 /var/spool/mail/)。
3/var/tmp存放长期保留的临时文件,与 /tmp 不同,重启后仍保留。
3/var/lib存放应用程序的状态数据(如数据库文件、软件包管理器的状态)。
3/var/lock存放文件或资源的锁定文件(如 flock 创建的锁文件)。
3/var/run已弃用,旧版系统中用于存放运行时数据(现由 /run 替代)。
3/var/ypNIS(网络信息服务)数据目录(较旧系统中使用)。
2/lost+found文件恢复目录,系统非正常关机或文件系统损坏时,恢复“丢失”的文件碎片。
2/selinuxSELinux 安全策略目录(仅在启用 SELinux 的系统中存在)。
2/security安全模块目录(如 AppArmor 配置文件)。
2/snapSnap 包管理器安装目录(用于 Ubuntu 等支持 Snap 的发行版)。
2/systemdsystemd 系统和服务管理器相关文件(如服务单元文件 /systemd/system/)。
2/tmp临时文件目录,所有用户均可读写,系统重启后内容通常被清空。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

密码学标准(Cryptography Standards)介绍

密码学标准(Cryptography Standards)是为确保信息安全传输、存储和处理而制定的一系列技术规范和协议,广泛应用于通信、金融、互联网等领域。以下从分类、主流标准、应用场景和发展趋势四个方面进行详细介绍: 一、密码学标准的分类 密码学标准可根据技术原理和应用场景分…

ubuntu 22.04安装和使用docker介绍

docker安装和使用 准备环境常见的docker操作linux系统常用的配置卸载docker 准备环境 本机环境: Linux yz-MS-7E06 6.8.0-59-generic #61~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Apr 15 17:03:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux安装依赖软件:…

obsidian 中的查找和替换插件,支持正则

最近用着 obsidian 时,发现想要在当前文档中 查找和替换 内容时,没有自动查找和替换的功能,去插件市场查找也没有发现好用的插件,那就自己写一个吧。 全程用的 AI 来写的,当然,我对 JS/CSS/TypeScript 等没…

针对vue项目的webpack优化攻略

一、开发阶段优化 1. 热更新加速(HMR) // vue.config.js module.exports {devServer: {hot: true, // 开启热更新injectClient: true, // 自动注入HMR客户端watchOptions: {ignored: /node_modules/, // 忽略node_modules变化aggregateTimeout: 300…

BTC官网关注巨鲸12亿美元平仓,XBIT去中心化交易平台表现稳定

在全球加密货币市场波动加剧的背景下,2025年5月25日传出重磅消息。据今日最新国际报道,知名巨鲸James Wynn完全平仓价值12亿美元的BTC多头仓位,整体盈利约845万美元,此举引发市场广泛关注。与此同时,收益型稳定币市场迎…

在WPF中添加动画背景

在WPF中添加动画背景 在WPF中创建动画背景可以大大增强应用程序的视觉效果。以下是几种实现动画背景的方法&#xff1a; 方法1&#xff1a;使用动画ImageBrush&#xff08;图片轮播&#xff09; <Window x:Class"AnimatedBackground.MainWindow"xmlns"htt…

单点击登录sso实现

一、单点登录&#xff08;SSO&#xff09;是什么&#xff1f; 核心定义 单点登录&#xff08;Single Sign-On&#xff0c;SSO&#xff09;是一种身份认证解决方案&#xff0c;允许用户通过一次登录访问多个相互信任的应用系统。其核心逻辑是统一认证中心与分布式会话管理&…

JavaWebsocket-demo

Websocket客户端 pom依赖 <dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.4.0</version></dependency>客户端代码片段 Component Slf4j public class PositionAlarmL…

Java Collection(集合) 接口

Date: 2025-05-21 20:21:32 author: lijianzhan Java 集合框架提供了一组接口和类&#xff0c;以实现各种数据结构和算法。 以下是关于 Java 集合的核心内容说明&#xff1a; /*** Java Collection Framework 说明&#xff1a;** 在 Java 中&#xff0c;集合&#xff08;Collec…

让MySQL更快:EXPLAIN语句详尽解析

前言 在数据库性能调优中&#xff0c;SQL 查询的执行效率是影响系统整体性能的关键因素之一。MySQL 提供了强大的工具——EXPLAIN 语句&#xff0c;帮助开发者和数据库管理员深入分析查询的执行计划&#xff0c;从而发现潜在的性能瓶颈并进行针对性优化。 EXPLAIN 语句能够模…

Java基础 Day20

一、HashSet 集合类 1、简介 HashSet 集合底层采取哈希表存储数据 底层是HashMap 不能使存取有序 JDK8之前的哈希表是数组和链表&#xff0c;头插法 JDK8之后的哈希表是数组、链表和红黑树&#xff0c;尾插法 2、存储元素 &#xff08;1&#xff09;如果要保证元素的唯…

2505C++,32位转64位

原文 假设有个想要将一个32位值传递给一个带64位值的函数的函数.你不关心高32位的内容,因为该值是传递给回调函数的直通值,回调函数会把它截断为32位值. 因此,你都担心编译器一般生成的将32位值扩展到64位值的那条指令的性能影响. 我怀疑这条指令不是程序中的性能瓶颈. 我想出…

光伏电站及时巡检:守护清洁能源的“生命线”

在“双碳”目标驱动下&#xff0c;光伏电站作为清洁能源的主力军&#xff0c;正以年均20%以上的装机增速重塑全球能源格局。然而&#xff0c;这些遍布荒漠、屋顶的“光伏矩阵”并非一劳永逸的能源提款机&#xff0c;其稳定运行高度依赖精细化的巡检维护。山东枣庄触电事故、衢州…

C++初阶-list的使用2

目录 1.std::list::splice的使用 2.std::list::remove和std::list::remove_if的使用 2.1remove_if函数的简单介绍 基本用法 函数原型 使用函数对象作为谓词 使用普通函数作为谓词 注意事项 复杂对象示例 2.2remove与remove_if的简单使用 3.std::list::unique的使用 …

OpenHarmony平台驱动使用(一),ADC

OpenHarmony平台驱动使用&#xff08;一&#xff09; ADC 概述 功能简介 ADC&#xff08;Analog to Digital Converter&#xff09;&#xff0c;即模拟-数字转换器&#xff0c;可将模拟信号转换成对应的数字信号&#xff0c;便于存储与计算等操作。除电源线和地线之外&#…

CSS【详解】弹性布局 flex

适用场景 一维&#xff08;行或列&#xff09;布局 基本概念 包裹所有被布局元素的父元素为容器 所有被布局的元素为项目 项目的排列方向&#xff08;垂直/水平&#xff09;为主轴 与主轴垂直的方向交交叉轴 容器上启用 flex 布局 将容器的 display 样式设置为 flex 或 i…

基于MATLAB实现传统谱减法以及两种改进的谱减法(增益函数谱减法、多带谱减法)的语音增强

基于MATLAB实现传统谱减法以及两种改进的谱减法&#xff08;增益函数谱减法、多带谱减法&#xff09;的语音增强代码示例&#xff1a; 传统谱减法 function enhanced traditional_spectral_subtraction(noisy, fs, wlen, inc, NIS, a, b)% 参数说明&#xff1a;% noisy - 带…

symbol【ES6】

你一闭眼世界就黑了&#xff0c;你不是主角是什么&#xff1f; 目录 什么是Symbol&#xff1f;‌Symbol特点‌&#xff1a;创建方法&#xff1a;注意点&#xff1a;不能进行运算&#xff1a;显示调用toString() --没有意义隐式转换boolean 如果属性名冲突了怎么办&#xff1f;o…

LeetCode 649. Dota2 参议院 java题解

https://leetcode.cn/problems/dota2-senate/description/ 贪心。不会写。 class Solution {public String predictPartyVictory(String senate) {boolean rtrue,dtrue;int flag0;//flag>0,d前面有r;flag<0,r前面有dchar[] senatessenate.toCharArray();//每一轮while(r…

机器学习第二十二讲:感知机 → 模仿大脑神经元的开关系统

机器学习第二十二讲&#xff1a;感知机 → 模仿大脑神经元的开关系统 资料取自《零基础学机器学习》。 查看总目录&#xff1a;学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章&#xff1a;DeepSeek R1本地与线上满血版部署&#xff1a;超详细手把手指南 感知机详解…