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

 更新时间:2026年01月28日 08:47:37   作者:一个平凡而乐于分享的小比特  
本文深入解析了Linux系统中关键的目录结构,包括根分区、/etc、/boot、/var、/root、/tmp、/usr、/sbin、/mnt、/dev、/home和/proc等功能与用途,为理解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:安装软件

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

重要注意事项

不要随意删除的目录:

  • /bin, /sbin, /lib, /etc - 系统无法运行
  • /boot - 无法启动
  • /dev - 无法访问硬件

定期清理的目录:

  • /tmp - 临时文件
  • /var/tmp - 长期临时文件
  • /var/log - 日志文件(使用logrotate)

权限注意事项:

  • /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

实用命令

# 查看目录大小
du -sh /* | sort -h

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

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

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

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

以上就是一文详解Linux根文件系统各文件夹作用的详细内容,更多关于Linux根文件各文件夹作用的资料请关注脚本之家其它相关文章!

相关文章

  • CentOS7.5安装配置Harbor1.7的全过程

    CentOS7.5安装配置Harbor1.7的全过程

    这篇文章主要介绍了CentOS7.5安装配置Harbor1.7的全过程,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Linux获取docker容器中的文件路径的方法

    Linux获取docker容器中的文件路径的方法

    在Linux系统中,Docker容器中的文件路径与宿主机上的文件系统是隔离的,因此我们不能直接使用宿主机的文件系统路径来访问容器内的文件,但是,有几种方法可以让我们获取或操作Docker容器中的文件,本文介绍的非常详细,需要的朋友可以参考下
    2024-11-11
  • Linux下gdb调试打印字符串方式

    Linux下gdb调试打印字符串方式

    这篇文章主要介绍了Linux下gdb调试打印字符串方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • linux kill命令详解

    linux kill命令详解

    本篇文章主要介绍了linux kill命令详解 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • centos7系统部署k8s集群详细介绍

    centos7系统部署k8s集群详细介绍

    大家好,本篇文章主要讲的是centos7系统部署k8s集群详细介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • ssh远程登陆没有用户名和主机名的解决方法

    ssh远程登陆没有用户名和主机名的解决方法

    这篇文章主要给大家分享了ssh远程登陆没有用户名和主机名的解决方法,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • Linux chage命令详解

    Linux chage命令详解

    chage命令用于密码实效管理,该是用来修改帐号和密码的有效期限,接下来通过本文给大家介绍Linux chage命令相关知识,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-01-01
  • 一步步教你如何开启、关闭ubuntu防火墙

    一步步教你如何开启、关闭ubuntu防火墙

    这篇文章主要给大家介绍了关于如何开启、关闭ubuntu防火墙的相关资料,文中将ubuntu系统中防火墙的安装以及使用介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • MySQL/MariaDB/Percona数据库升级脚本

    MySQL/MariaDB/Percona数据库升级脚本

    这篇文章主要介绍了MySQL/MariaDB/Percona数据库升级脚本的相关资料,需要的朋友可以参考下
    2016-12-12
  • 深入理解apahce的工作模式perfork、worker

    深入理解apahce的工作模式perfork、worker

    本文介绍下,apache的两种工作模式perfork与worker,就它们的区别进行深入分析,供大家学习参考
    2013-06-06

最新评论