Linux根文件系统各文件夹作用详解

🔥作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生,研究方向无线联邦学习

🎬擅长领域:驱动开发,嵌入式软件开发,BSP开发

❄️作者主页:一个平凡而乐于分享的小比特的个人主页

✨收录专栏:Linux,本专栏目的在于,记录学习Linux操作系统的总结

欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖

Linux根文件系统各文件夹作用详解

📁 Linux目录结构全景图

复制代码
/
├── bin/      (基本命令)
├── boot/     (启动文件)
├── dev/      (设备文件)
├── etc/      (配置文件)
├── home/     (用户目录)
├── lib/      (共享库)
├── media/    (可移动媒体)
├── mnt/      (临时挂载)
├── opt/      (可选软件)
├── proc/     (进程信息)
├── root/     (root用户家目录)
├── run/      (运行时数据)
├── sbin/     (系统命令)
├── srv/      (服务数据)
├── sys/      (系统信息)
├── tmp/      (临时文件)
├── usr/      (用户程序)
└── var/      (可变数据)

📊 目录功能对比表

目录 主要用途 类比现实世界 典型内容 是否可删除
/bin 基础命令 工具箱 ls, cp, rm, cat 否(系统无法启动)
/sbin 系统管理命令 专用工具 fdisk, ifconfig, reboot
/etc 配置文件 设置说明书 passwd, network.conf
/home 用户个人文件 个人房间 用户文档、设置 是(但用户数据会丢失)
/root 管理员家目录 经理办公室 root的配置文件 可(但不建议)
/dev 设备文件 设备插槽 /dev/sda1, /dev/tty
/lib 共享库文件 公共图书馆 .so文件
/proc 进程和内核信息 监控仪表盘 cpuinfo, meminfo 否(虚拟文件系统)
/tmp 临时文件 公共白板 缓存、临时下载 是(重启可能丢失)
/usr 用户程序资源 应用商店 程序、文档、库
/var 可变数据 仓库/日志室 日志、邮件、数据库
/boot 启动文件 引擎启动器 内核、grub
/opt 可选软件包 扩展应用区 第三方大型软件 是(软件会丢失)
/mnt 临时挂载点 临时停车位 外部硬盘、ISO 是(但会失去挂载点)
/media 可移动媒体 自动挂载区 U盘、光盘

🔍 详细目录解析

1. /bin 和 /usr/bin - 命令仓库

复制代码
/bin/                    /usr/bin/
├── bash                 ├── python3
├── cat                  ├── gcc
├── ls                   ├── vim
├── cp                   ├── git
└── rm                   └── ssh
  • /bin: 基础生存命令(单用户模式也需要)
  • /usr/bin: 大部分用户命令
  • 场景: 系统救援时,/bin必须存在才能执行基本操作

2. /etc - 系统配置中心

复制代码
/etc/
├── passwd           # 用户账户信息
├── group            # 用户组信息
├── fstab            # 文件系统挂载表
├── hosts            # 主机名映射
├── network/         # 网络配置
├── ssh/             # SSH服务器配置
└── apt/             # 包管理器配置
  • 特点: 几乎全是文本文件,可直接编辑
  • 重要文件 : /etc/passwd(用户)、/etc/fstab(挂载)

3. /home 和 /root - 用户空间

复制代码
/home/               /root/
├── alice/           ├── .bashrc
│   ├── Documents/   ├── .ssh/
│   ├── Downloads/   └── scripts/
│   └── .config/     
└── bob/
    ├── Music/
    └── projects/
  • /home/username: 每个用户的个人空间
  • /root: 超级用户的家目录(不在/home下是为了安全)

4. /dev, /proc, /sys - 系统接口

复制代码
/dev/                 /proc/                /sys/
├── sda1              ├── 1/                ├── class/
├── tty0              │   ├── cmdline       ├── devices/
├── null              │   └── status        └── kernel/
├── zero              ├── cpuinfo
└── random            └── meminfo
  • /dev: 设备文件(硬盘、终端等)
  • /proc: 进程和系统信息(虚拟文件系统)
  • /sys: 内核和设备信息

5. /var - 变化的数据

复制代码
/var/
├── log/          # 日志文件
│   ├── auth.log  # 认证日志
│   └── syslog    # 系统日志
├── cache/        # 应用程序缓存
├── lib/          # 程序状态信息
├── mail/         # 用户邮件
├── run/          # 运行时数据(PID文件等)
├── spool/        # 排队数据(打印队列等)
└── www/          # 网站文件(如果运行Web服务器)

6. /usr - 用户软件资源

复制代码
/usr/
├── bin/          # 非必要命令
├── sbin/         # 非必要系统命令
├── lib/          # 库文件
├── share/        # 架构无关数据
│   ├── man/      # 手册页
│   └── doc/      # 文档
├── local/        # 本地安装软件
└── src/          # 内核源码

🎯 实际场景理解

场景1:系统启动过程

复制代码
1. BIOS/UEFI → /boot/grub/ → /boot/vmlinuz* (内核)
2. 内核加载 → 挂载根文件系统 → 读取 /etc/fstab
3. 启动init/systemd → 读取 /etc/systemd/ 或 /etc/init.d/
4. 启动服务 → 日志写入 /var/log/

场景2:用户登录

复制代码
1. 输入用户名密码 → /etc/passwd 验证
2. 登录成功 → 进入 /home/用户名/
3. 读取个人配置 → ~/.bashrc, ~/.profile
4. 执行命令 → 从 /bin/ 或 /usr/bin/ 查找

场景3:安装软件

bash 复制代码
# Debian/Ubuntu
sudo apt install nginx
# 文件安装到:
# 程序 → /usr/sbin/nginx
# 配置 → /etc/nginx/
# 日志 → /var/log/nginx/
# 网页 → /var/www/html/

⚠️ 重要注意事项

  1. 不要随意删除的目录:

    • /bin, /sbin, /lib, /etc - 系统无法运行
    • /boot - 无法启动
    • /dev - 无法访问硬件
  2. 定期清理的目录:

    • /tmp - 临时文件
    • /var/tmp - 长期临时文件
    • /var/log - 日志文件(使用logrotate)
  3. 权限注意事项:

    • /root - 只有root可访问
    • /home/用户 - 用户本人和root可访问
    • /tmp - 所有用户可读写

🔄 现代Linux的变化

  1. /bin, /sbin, /lib 现在通常是到 /usr 的符号链接
  2. /run - 取代了 /var/run,存储运行时数据
  3. systemd - 改变了 /etc/init.d 的启动方式

💡 记忆技巧

  • 静态的 (很少变): /bin, /sbin, /boot, /etc
  • 动态的 (经常变): /home, /var, /tmp
  • 虚拟的 (内存中): /proc, /sys, /dev
  • 用户的 : /home, /usr, /opt

🛠️ 实用命令

bash 复制代码
# 查看目录大小
du -sh /* | sort -h

# 查看磁盘使用情况
df -h

# 查找大文件
find / -type f -size +100M 2>/dev/null

# 查看目录结构
tree -L 2 /  # 显示两级目录

理解Linux目录结构是系统管理的基础,每个目录都有其特定用途,遵循文件系统层次标准(FHS),这保证了不同Linux发行版之间的一致性。

相关推荐
hmywillstronger2 小时前
【Rhino】【Python】对包含特定关键词的文字的MTEXT对象添加指定内容
linux·服务器·python
ICT董老师2 小时前
通过OpenSSL 生成自签名证书
linux·运维·服务器·https·ssl
egoist20232 小时前
[linux仓库]线程池(单例模式)、线程安全与重入、死锁[线程·拾]
linux·单例模式·饿汉模式·懒汉模式·线程安全·死锁·重入问题
EverydayJoy^v^2 小时前
RH134简单知识点——第8章——管理存储堆栈
linux·运维·5g
板面华仔2 小时前
Linux基础(下)——工作中常用命令总结
linux·运维·服务器
刃神太酷啦2 小时前
Linux 基础 IO 收官:库的构建与使用、进程地址空间及核心知识点全解----《Hello Linux!》(11)
java·linux·c语言·数据库·c++·算法·php
RisunJan2 小时前
Linux命令-let(执行算术运算)
linux·服务器
开开心心就好2 小时前
视频伪装软件,.vsec格式批量伪装播放专用
java·linux·开发语言·网络·python·电脑·php
济6173 小时前
linux 系统移植(第十九期)---- BusyBox 构建根文件系统---- Ubuntu20.04
linux·运维·服务器