一文详解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根文件各文件夹作用的资料请关注脚本之家其它相关文章!

相关文章

  • 关于Linux vi命令使用详解(vim编辑器)

    关于Linux vi命令使用详解(vim编辑器)

    这篇文章主要介绍了关于Linux vi命令使用详解(vim编辑器),文中详细列举了vi命令的用法,还不熟悉的朋友可以多看一下
    2023-03-03
  • Apache中301重定向的配置代码

    Apache中301重定向的配置代码

    Apache下301重定向代码(因为我使用的是WINDOWS 2003 + APACHE 所以本文仅限APACHE服务器使用。)
    2011-02-02
  • 如何利用多核CPU来加速你的Linux命令(GNU Parallel)

    如何利用多核CPU来加速你的Linux命令(GNU Parallel)

    这篇文章主要介绍了如何利用多核CPU来加速你的Linux命令(GNU Parallel),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • 在服务器上配置仅使用HTTPS通信的教程

    在服务器上配置仅使用HTTPS通信的教程

    这篇文章主要介绍了在服务器上配置仅使用HTTPS通信的教程,示例囊括Apache2和Nginx以及Lighttpd服务器上的操作,需要的朋友可以参考下
    2015-06-06
  • Linux内核之内核裁剪详解

    Linux内核之内核裁剪详解

    Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makemenuconfig可以帮助用户进行配置,裁剪原理是通过Kconfig和Makefile实现的
    2025-01-01
  • Linux服务器怎么修改密码 passwd命令用法

    Linux服务器怎么修改密码 passwd命令用法

    这篇文章主要介绍了Linux服务器怎么修改密码之passwd命令用法,需要的朋友可以参考下
    2023-05-05
  • Linux系统清除缓存的方法总结

    Linux系统清除缓存的方法总结

    在本篇文章里小编给大家整理了关于Linux系统清除缓存的方法和实例内容,需要的朋友们参考下。
    2020-01-01
  • Ubuntu环境下安装、配置和使用Git的全流程

    Ubuntu环境下安装、配置和使用Git的全流程

    Git 是当今最流行的分布式版本控制系统,在 Ubuntu 系统中无论是个人开发还是团队协作都离不开它,本文将系统地介绍在 Ubuntu 环境下安装、配置和使用 Git 的方法,涵盖从基础操作到远程协作的全流程,需要的朋友可以参考下
    2026-05-05
  • Ubuntu18.04安装vsftpd的实现代码

    Ubuntu18.04安装vsftpd的实现代码

    这篇文章主要介绍了Ubuntu18.04安装vsftpd的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Linux 解决Deepin无法在root用户启动Google Chrome浏览器的问题

    Linux 解决Deepin无法在root用户启动Google Chrome浏览器的问题

    这篇文章主要介绍了Linux 解决Deepin无法在root用户启动Google Chrome浏览器的问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07

最新评论