当前位置: 首页 > news >正文

Linux 文件系统全解析

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

可执行文件目录

  • /bin(基本系统命令)

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

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

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

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

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

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

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

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

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

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

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

      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 变量调整共享库的搜索顺序:

      export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
      

配置文件目录

  • /etc(配置文件)

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

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


用户目录

  • /home(普通用户目录)

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

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

  • /rootroot 用户的家目录)

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

变量数据目录

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

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

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

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

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

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


虚拟文件系统

  • /proc(进程信息)

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

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

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

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

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


其他目录

  • /opt(第三方软件)

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

    • 例如:

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

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

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

      mount /dev/sdb1 /mnt
      
  • /srv(服务器数据存储)

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

      /srv/www/  # Web 服务器文件
      /srv/ftp/  # FTP 服务器文件
      

总结

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

http://www.dtcms.com/a/98548.html

相关文章:

  • 202518 | Ngnix
  • MAUI开发Device.BeginInvokeOnMainThread使用
  • python专题1-----判断一个变量是否是字符串类型
  • 代码随想录算法训练营--打卡day4
  • windows第二十章 单文档应用程序
  • 基于大语言模型的智能音乐创作系统——从推荐到生成
  • Jenkins教程(自动化部署)
  • 纯个人整理,蓝桥杯使用的算法模板day1(dfs、bfs)
  • Axure疑难杂症:完美解决中继器筛选问题(时间条件筛选、任性筛选)
  • 信号与系统(郑君里)第一章-绪论 1-22 课后习题解答
  • jdk 支持路线图
  • gamma函数与zeta函数的关系
  • 【大数据技术】大数据技术概念及概述
  • QT音乐播放器(1):数据库保存歌曲
  • Vue Kubernetes项目 局部布局面包屑 el-breadcrumb
  • Matlab教程004:Matlab矩阵的拼接重构重排以及矩阵的运算
  • 测试测试 测试
  • Kubernetes》k8s》Containerd 、ctr 、cri、crictl
  • 每日一题 MySQL基础知识----(四)
  • Java 大视界 -- Java 大数据机器学习模型在电商商品推荐冷启动问题中的解决策略(160)
  • [Python学习日记-88] 并发编程之多进程 —— 队列与生产者消费者模型
  • 赛博威智慧导购平台,融合AI激活一线导购效能,破局增长瓶颈
  • 目标识别与双目测距(1)环境搭建:Ubuntu+yolov5+pcl库
  • JAVA学习*工厂模式
  • Python容器详解:从字符串到字典的完整指南
  • CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.4 泛型
  • 4.训练篇2-毕设篇
  • Share01-WinCC文件越用越大?
  • 【学习笔记】文件上传漏洞--js验证、mime验证、.user.ini、短标签、过滤、文件头
  • 大数据Spark(五十五):Spark框架及特点