Linux 文件系统全解析

笔记整理自 【双语视界】Linux文件系统全解析:从混乱到标准,一览核心目录!

可执行文件目录

  • /bin(基本系统命令)

    • 包含核心操作系统程序,在系统启动时必须可用 ,即使没有挂载 /usr 也能运行。

    • 这里的命令通常用于基本文件操作、文本处理和进程管理,如:

      bash 复制代码
      ls  # 列出文件
      cp  # 复制文件
      mv  # 移动文件
      rm  # 删除文件
  • /sbin(系统管理命令)

    • 存放需要 root 权限的系统管理工具,如磁盘分区、网络管理、系统恢复等命令。

    • 仅管理员(root)用户可运行,一般用户若需使用,可通过 sudo 提升权限。

      bash 复制代码
      fdisk   # 磁盘分区
      reboot  # 重新启动系统
      ifconfig  # 配置网络接口
  • /usr/bin(非核心用户程序)

    • 存放非操作系统核心 的可执行文件,通常由软件包管理器安装,如:

      bash 复制代码
      python  # 解释器
      git  # 版本控制
      vim  # 文本编辑器
      curl  # 网络请求工具
    • 这些程序在 /usr 挂载后才能访问,不参与系统启动的早期阶段。

  • /usr/local/bin(管理员安装的自定义程序)

    • 存放管理员手动安装的可执行文件 ,通常是自行编译的软件,用于避免覆盖系统默认版本:

      bash 复制代码
      /usr/local/bin/custom_python  # 用户编译的 Python 版本
      /usr/local/bin/my_script.sh  # 自定义脚本
    • 优先级高于 /usr/bin ,可以通过调整 PATH 变量修改搜索顺序:

      bash 复制代码
      export PATH=/usr/local/bin:$PATH  # 优先使用 /usr/local/bin 里的程序

共享库目录

  • /lib(基本库文件)

    • 存放 /bin/sbin 命令所需的共享库文件,如 glibc(C 语言标准库)。
    • 这些库在系统启动初期就必须可用,因此 /lib 目录无需依赖 /usr 挂载。
  • /usr/lib(用户应用程序库)

    • 存放 /usr/bin/usr/local/bin 依赖的共享库文件,适用于非核心系统程序。
    • 这些库文件不会被系统启动初期使用 ,因此它们存放在 /usr/lib 而非 /lib
  • 环境变量调整搜索顺序

    • 可以通过 LD_LIBRARY_PATH 变量调整共享库的搜索顺序:

      bash 复制代码
      export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

配置文件目录

  • /etc(配置文件)

    • 存放所有系统和应用程序的配置文件,例如:

      bash 复制代码
      /etc/passwd  # 用户信息
      /etc/fstab   # 挂载信息
      /etc/hosts   # 主机名解析
    • /etc 目录通常不包含二进制程序,仅用于存储配置。


用户目录

  • /home(普通用户目录)

    • 每个用户都有自己的目录,如:

      复制代码
      /home/user1
      /home/user2
    • 存放用户的个人数据、配置文件和下载内容

  • /rootroot 用户的家目录)

    • root 用户的个人目录,类似于 /home/user,但仅限root用户使用

变量数据目录

  • /var(存放可变数据,如日志和缓存)

    • 主要存储日志、缓存、队列数据等:

      bash 复制代码
      /var/log   # 系统日志文件
      /var/spool # 邮件、打印机队列
      /var/tmp   # 临时文件
    • /var 目录的内容可能会频繁变化 ,而 /etc 目录通常是静态配置文件。

  • /run(易失数据,系统进程间通信)

    • 存放系统运行时产生的临时数据,如进程 PID 文件、套接字(socket)文件等:

      bash 复制代码
      /run/sshd.pid  # ssh 进程的 PID 文件
      /run/docker.sock  # Docker 进程的套接字文件
    • /run 目录中的内容在系统重启后会丢失


虚拟文件系统

  • /proc(进程信息)

    • 提供系统运行时的进程和内核信息 ,它是内存中的虚拟文件系统

      bash 复制代码
      /proc/cpuinfo  # 查看 CPU 信息
      /proc/meminfo  # 查看内存信息
      /proc/1234  # 进程 ID 1234 的信息
    • 读取 /proc 目录下的文件相当于查询系统状态,而不是实际存储数据。

  • /sys(内核与设备信息)

    • 用于提供硬件设备、内核模块的信息

      bash 复制代码
      /sys/block/  # 硬盘信息
      /sys/class/net/  # 网络接口信息
    • /sys 是现代 Linux 内核提供的硬件接口,可用于管理设备。


其他目录

  • /opt(第三方软件)

    • 存放第三方软件(通常是手动安装的商业软件或大型应用程序)。

    • 例如:

      bash 复制代码
      /opt/google/chrome/  # Google Chrome
      /opt/zoom/           # Zoom 会议软件
  • /media/mnt(挂载点)

    • /media:用于自动挂载可移动存储设备(如 USB、CD-ROM)。

    • /mnt:用于手动挂载临时存储设备,例如:

      bash 复制代码
      mount /dev/sdb1 /mnt
  • /srv(服务器数据存储)

    • 存放服务器应用(如 Web 服务器、FTP 服务器)提供的数据:

      bash 复制代码
      /srv/www/  # Web 服务器文件
      /srv/ftp/  # FTP 服务器文件

总结

目录 作用
/bin 核心系统命令(所有用户可用)
/sbin 系统管理工具(仅 root 可用)
/usr/bin 非核心程序(软件包管理器安装)
/usr/local/bin 手动安装的软件(优先级高)
/lib 核心系统库(系统启动时需要)
/usr/lib 用户程序库(非核心系统库)
/etc 配置文件目录
/home 普通用户目录
/root root 用户目录
/var 日志、缓存、队列数据
/run 易失数据,进程间通信
/proc 进程信息(虚拟文件系统)
/sys 硬件信息(虚拟文件系统)
/opt 第三方软件
/media /mnt 存储设备挂载点
/srv 服务器数据

相关推荐
Vacancy空白14 分钟前
【Ubuntu常用命令】
linux·运维·ubuntu·ssh
老天文学家了22 分钟前
课表周视图数据【示例】
linux·运维·服务器
榆榆欸23 分钟前
7.从Server到Acceptor,优化Reactor模式的实现
linux·服务器·网络
小麦嵌入式34 分钟前
Linux驱动开发实战(九):Linux内核pinctrl_map详解与优势分析
linux·c语言·汇编·驱动开发·stm32·嵌入式硬件·硬件工程
爪娃侠40 分钟前
解决wsl2下CentOS 7 的 yum 仓库无法连接问题
linux·运维·centos
fengyehongWorld1 小时前
Linux 随机数据生成
linux·运维
周Echo周2 小时前
5、vim编辑和shell编程【超详细】
java·linux·c++·后端·编辑器·vim
榆榆欸2 小时前
6.实现 Reactor 模式的 EventLoop 和 Server 类
linux·服务器·网络·c++·tcp/ip
前端提桶人2 小时前
Win11 安装 Sentry 监控
linux·前端
sukida1003 小时前
Firefox 浏览器同步一个账户和书签网址
android·linux·firefox