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

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

  • /bin :存放普通用户和系统管理员都可以使用的基本命令 (如 ls、cp),系统启动时需要。
  • /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 包含所有用户都可用的基础命令(cat、chmod);/sbin 包含系统修复和管理的命令(fdisk、ifconfig)。
  • /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 Files 和 C:\Windows 的组合。
    • 层级 :
      • /usr/bin:用户日常使用的大部分命令(如 python、gcc)。
      • /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)等,但在你截图的标准系统中可能为空。
相关推荐
j7~12 分钟前
【ProtoBuf】(篇一)初识 ProtoBuf
运维·服务器·序列化·protobuf·protobuf的适用特点
丰锋ff27 分钟前
用户管理命令
linux·运维·服务器
BcoreOS29 分钟前
‌新手必看:Debian 13 虚拟机 SSH 连不上?我是怎么一步步调试成功的
服务器
迪菲赫尔曼36 分钟前
【基础篇 08】让VS Code连接服务器:界面在本地,文件保存到远端
运维·服务器·vscode·yolo·论文·教程·ultralyt
东方佑1 小时前
去魅:工具调用、Agent 调用、A2A、MCP、Harness 到底都是什么
服务器·网络·数据库
刚入门的大一新生1 小时前
Linux-线程概念
linux·jvm
H.莓飛1 小时前
【数据结构】排序总结与规模实测
linux·服务器·开发语言·数据结构·visual studio·1024程序员节
xianyuCcCcCCCcc1 小时前
Kubernetes :健康检查、认证授权与可视化面板
运维·云原生·kubernetes·dashboard
Zenova EdgeOS2 小时前
Linux 日志实战:用 journalctl 精准检索与治理工业边缘日志
linux·运维·chrome
Dory_Youth2 小时前
电脑的搜索功能不能用,一搜就黑屏闪退
运维·笔记