linux文件结构

linux文件结构

概述

linux中,所有的文件和目录都被组织成一个以根节点开始的倒置的树状结构

文件系统的最顶层是从根目录开始的,使用/来表示根目录,根目录之下既可以是目录也可以是文件,而每一个目录又可以包含子目录文件,反复,构成了一个庞大的文件系统

在文件系统中有两个特殊目录,一个是用户所在的工作目录,一个是父目录

一个文件或者目录如果以.开始,表示隐藏目录或者文件,默认查找不显示,比如.bashrc

登录系统输入:

1
ls/

会看到:

1
2
3
rubbishbro@LAPTOP-Q8PG36F8:~$ ls /
bin dev etc init lib64 media opt root sbin sys usr
boot Docker home lib lost+found mnt proc run srv tmp var

这就是树状结构

目录 作用详解 常见文件 / 示例
/ 根文件系统,所有挂载点与路径的起点。包含系统必须的子目录与入口结构。 无具体数据文件,只有子目录结构。
/bin 系统启动和单用户模式下必须的基础命令,所有用户可执行。 ls, cp, mv, rm, bash
/sbin 系统管理与维护命令,面向 root。 fsck, reboot, shutdown
/usr 用户级程序与库的主集合,包含大部分系统软件、文档与工具。 /usr/bin, /usr/lib, /usr/share
/usr/bin 常规用户程序的主要放置目录。 python3, vim, git
/usr/sbin 管理工具的扩展集合。 useradd, apache2ctl
/usr/lib /usr 内程序所依赖的动态库与模块。 各类 .so 动态库
/usr/local 本机安装或编译软件的独立区域。 /usr/local/bin, /usr/local/lib
/lib/lib64 系统启动核心库、动态链接器所在位置。 libc.so.6, ld-linux.so
/etc 系统级配置中心,统一存放所有服务和系统配置。 passwd, group, fstab, ssh/sshd_config
/home 普通用户的个人主目录集合。 /home/user/.bashrc, /home/user/Documents
/root root 用户的主目录。 /root/.ssh/
/var 频繁变化的数据:日志、缓存、数据库运行文件等。 /var/log, /var/lib, /var/cache
/var/log 所有系统与服务日志的集中位置。 syslog, auth.log, kern.log
/var/cache 应用和包管理器缓存。 /var/cache/apt/
/var/lib 服务的持久化状态数据。 mysql/, docker/
/tmp 程序运行时的临时文件区,随时可清理。 临时文件、socket 路径
/boot 启动所需文件:内核、initramfs、引导配置。 vmlinuz-*, initrd.img, grub/grub.cfg
/dev 设备节点集合,文件即设备。 /dev/sda, /dev/null, /dev/tty0
/proc 由内核提供的虚拟文件系统,展示系统与进程的实时信息。 /proc/cpuinfo, /proc/<pid>/
/sys 设备、驱动、内核子系统的状态接口。 /sys/class/net/, /sys/block/
/mnt 手动挂载的临时挂载点。 /mnt/usb
/media 自动挂载外接设备的默认位置。 /media/user/USB_DRIVE
/run 运行时数据存放点,重启后清空。 *.pid, 运行状态 socket 文件

linux的几个系统关键区域

除非你知道你在干什么,否则不要更改!

/etc— 系统配置核心

所有关键配置集中于此。任何错误修改都可能导致服务挂掉,甚至系统无法启动

1
2
3
4
5
/etc/passwd     # 用户信息
/etc/shadow # 密码加密保存
/etc/hosts # 本地DNS解析
/etc/fstab # 磁盘挂载配置
/etc/network # 网络设置

/bin/sbin/usr/bin/usr/sbin — 系统指令区

系统预置命令的所在位置。

  • /bin/usr/bin:供普通用户使用的基础指令(如 ls 位于 /bin/ls)。
  • /sbin/usr/sbin:系统管理指令,主要由 root 使用。

/var — 动态数据区

系统运行时不断写入的数据都落在这里。
重点是**/var/log**,各种服务日志全部存放此处;邮件、缓存、队列等内容也在此目录下维护。

linux文件结构特别之处

  • everything is a file 万物皆是文件
1
2
3
4
5
硬盘 → `/dev/sda`
GPIO → `/sys/class/gpio/`
进程 → `/proc/1234/`
UART/串口 → `/dev/ttyS0`
LED → `/sys/class/leds/led0/brightness`

这些都当成了文件接口,访问外设就是读取文件

  • 无盘符

所有的设备通过挂载加入到一个目录树中,存储设备被关联到系统的目录节点,让设备内容通过这个目录访问,挂载完成后,目录原本的内容不可见,新设备的内容可以像本地文件一样操作

好处是:

  • 统一的文件系统结构:所有设备都挂载在单一的目录树里,不需要区分不同盘符。
  • 灵活接入各种存储:本地磁盘、移动设备、网络共享都可以通过挂载方式整合。
  • 权限及访问控制:可针对挂载点设定读写权限、只读/读写模式等。
  • 动态管理:可根据需要随时挂载/卸载设备,不影响整体系统结构。

linux文件结构
https://rubbishbro.github.io/2025/12/07/linux-file-structure/
Author
John Doe
Posted on
December 7, 2025
Licensed under