linux 虚拟文件系统简介和详解

一个典型的 linux 文件系统的顶层目录中含有如下内容:

  • /bin :存放普通用户和系统管理员都可以使用的基本命令 (如 lscp),系统启动时需要。
  • /boot :包含启动系统所需的核心文件,如 Linux 内核和引导程序(GRUB)的配置。
  • /dev :一切皆文件,这里是硬件设备的访问点 ,如硬盘(/dev/sda)、终端(/dev/tty)。
  • /etc :存放系统和应用程序的配置文件 ,如用户密码(passwd)、网络设置。
  • /home普通用户的家目录。每个用户(如 hadoop)在这里有自己的文件夹存放私人数据。你当前可能正位于此目录。
  • /lib 与 /lib64 :存放系统启动和根文件系统中命令所需的共享库 (相当于 Windows 的 DLL 文件),lib64 专用于 64 位系统。
  • /media 与 /mnt :用于挂载外部设备/media 通常由系统自动挂载(如 U 盘),/mnt 多用于管理员手动挂载临时文件系统。
  • /opt :存放第三方商业软件或可选应用,如手动安装的 Oracle 或 Google Chrome。
  • /proc虚拟文件系统,以目录形式提供内核与进程的实时信息(如 CPU、内存状态),存在于内存中。
  • /root :系统管理员(root 用户)的家目录,位置独立,安全性高。
  • /run :存放系统启动以来正在运行的进程所需的数据,如进程 ID 文件(PID),是临时文件系统。
  • /sbin :存放系统管理命令,主要用于系统维护,通常只有 root 用户可以执行。
  • /srv :存放本机提供的服务数据,如 Web 或 FTP 服务的文件。
  • /sys :另一个虚拟文件系统 ,提供比 /proc 更设备化的内核对象信息(如总线、设备驱动)。
  • /tmp :存放临时文件,所有用户都可读写,通常系统重启时会清空。
  • /usr用户应用程序和文件的存放目录 ,非常重要。其下 /usr/bin 存放非必需的用户命令,/usr/local 存放用户手动编译安装的软件。
  • /var :存放经常变化的文件 ,如日志(/var/log)、缓存、打印队列等。

这些子目录可以按照一定的归属进行分类:

1. 启动与核心系统

  • /boot
    • 内容 :包括 vmlinuz(Linux内核)、initramfs(初始内存文件系统,用于加载必要的驱动)和 grub(引导配置)。
    • 细节:这个目录通常单独分区,以防止根分区写满导致无法启动。
  • /bin 和 /sbin
    • 现在 :在许多现代Linux发行版(如CentOS 7+)中,/bin/sbin 往往是指向 /usr/bin/usr/sbin软链接,实现了合并。
    • 作用/bin 包含所有用户都可用的基础命令(catchmod);/sbin 包含系统修复和管理的命令(fdiskifconfig)。
  • /lib 和 /lib64
    • 细节 :包含了内核模块和驱动程序。当你安装新的硬件或更新内核时,模块通常存放在 /lib/modules/ 下。

2. 用户与配置层面

  • /root
    • 环境 :作为超级用户的家目录,它的环境变量配置文件(如 .bashrc)独立于普通用户。在救援模式下,通常只有这个目录可用。
  • /home
    • 在Hadoop场景中 :如果你创建了一个名为 hadoop 的用户,那么它的数据、.bashrc(环境变量配置)、SSH密钥(用于集群免密登录)都会存放在 /home/hadoop/ 下。
  • /etc
    • 核心:这是系统的"神经中枢"。
    • 网络/etc/sysconfig/network-scripts/ifcfg-ens33(网卡配置文件)。
    • 用户认证/etc/passwd(用户列表)、/etc/shadow(密码加密串)、/etc/sudoers(sudo权限配置)。
    • 软件配置/etc/profile(全局环境变量)、/etc/hosts(主机名IP映射,Hadoop配置集群时必须修改此文件)。

3. 可变数据与运行状态

  • /var
    • 日志/var/log/ 目录至关重要。比如 messages(系统日志)、secure(安全认证日志)。如果Hadoop启动失败,通常要去 /var/log/hadoop/ 查看错误日志。
    • 锁与缓存/var/lock(锁文件,防止冲突)、/var/cache(应用程序缓存)。
  • /tmp
    • 特性 :通常设置了粘滞位(Sticky Bit),意味着所有用户都可以在此创建文件,但只能删除属于自己的文件。
    • 风险 :Hadoop的中间计算过程可能会产生大量临时数据,默认可能存放在 /tmp,如果 /tmp 分区太小,可能导致任务失败。生产环境通常配置单独的临时目录。
  • /run
    • 现代特性 :取代了旧的 /var/run。它存放在内存中(tmpfs),存储系统从启动以来的运行时数据,比如守护进程的PID文件(/run/sshd.pid)。

4. 应用程序与第三方软件

  • /usr
    • 规模 :这是最大的目录之一,类似于Windows的 C:\Program FilesC:\Windows 的组合。
    • 层级
      • /usr/bin:用户日常使用的大部分命令(如 pythongcc)。
      • /usr/local手动编译安装的软件 。例如,如果你从源码安装Python,通常指定 --prefix=/usr/local/python3,这样便于管理,不会污染系统自带的软件库。
  • /opt
    • 应用 :常用于存放大型商业软件或非系统自带的软件包 。比如Oracle数据库、Google Chrome,或者在某些公司里,手动解压的Hadoop、JDK 也会放在这里(如 /opt/jdk//opt/hadoop/),然后通过软链接或环境变量引用。

5. 虚拟与硬件接口

  • /proc
    • 动态交互 :这是一个伪文件系统,里面的文件并不占用硬盘空间。
    • 查看系统
      • cat /proc/cpuinfo 查看CPU信息。
      • cat /proc/meminfo 查看内存使用情况。
      • /proc/ 下还有很多数字编号的目录,代表当前运行的每一个进程,里面包含该进程的内存映射、文件描述符等信息。
  • /sys
    • 更底层 :用于导出内核中的设备模型信息。可以用来直接操作硬件状态,比如调整笔记本屏幕亮度(/sys/class/backlight/)。
  • /dev
    • 设备文件
      • /dev/sda:第一块SATA硬盘(你的系统很可能装在这里)。
      • /dev/null:数据黑洞,常用于丢弃不需要的输出。
      • /dev/random/dev/urandom:随机数生成器。

6. 挂载点

  • /media 和 /mnt
    • 区别/media 通常由桌面环境自动挂载(如插入U盘自动出现在这里)。/mnt 留给管理员手动临时挂载(如 mount /dev/sdb1 /mnt/usb)。
  • /misc 和 /net
    • 某些系统(如Red Hat系)默认提供,用于自动挂载网络文件系统(NFS)等,但在你截图的标准系统中可能为空。
相关推荐
跟着珅聪学java2 小时前
Electron 精美菜单设计
运维·前端·数据库
AIwenIPgeolocation2 小时前
基于昇腾算力+鲲鹏服务器实现国产化环境的OpenClaw高效应用,解锁AI自动化新体验
服务器·人工智能·自动化
皮皮哎哟2 小时前
嵌入式数据库从入门到精通
linux·数据库·sqlite3·sqlite3_open
进击的雷神3 小时前
ID隐式传参、多页面字段分散、数据强制覆盖、无分页列表解析——巴西展会爬虫四大技术难关攻克纪实
服务器·网络·爬虫·python
gaize12133 小时前
阿里云 GPU 云服务器|AI 训练渲染专用
服务器·人工智能·阿里云
虾..3 小时前
Linux 网络套接字编程
linux·运维·网络
熬夜有啥好3 小时前
Linux软件编程——TCP并发服务器
运维·服务器