深入解析Linux根目录核心文件夹的作用

在Linux系统中,文件系统的层次结构遵循 Filesystem Hierarchy Standard(FHS) ​ 规范,根目录 /作为所有目录的"根节点",其下每个子目录都承担着特定的系统功能或存储角色。理解根目录各文件夹的作用,是高效管理系统、顺利部署项目的关键。本文将剖析根目录核心文件夹的功能,并结合真实项目场景讲解实践技巧。

1. /bin/sbin:基础命令与系统管理工具

  • 作用

    • /bin:存放所有用户可执行的基础命令(如 lscpmv),系统启动和单用户模式必需。
    • /sbin:存放系统管理命令(如 fdisksystemctl),仅限管理员使用。
  • 项目场景

    • 脚本依赖 :在Shell脚本中直接调用 /bin/bash/usr/bin/python3
    • 权限管理 :通过 /sbin/iptables配置防火墙规则。

2. /etc:系统配置的集中管理中心

  • 作用 :存储全局配置文件(如网络、用户策略)和服务配置(如Nginx、SpringBoot),是系统定制化的核心载体。

  • 项目场景

    • Nginx配置 :修改 /etc/nginx/nginx.conf定义虚拟主机、负载均衡规则;新增自定义配置可放入 /etc/nginx/conf.d/(Nginx会自动加载该目录下的配置文件)。
    • MySQL安全加固 :编辑 /etc/mysql/my.cnf,配置字符集、连接池参数,重启服务生效。
    • SpringBoot配置 :在 /etc/profile中设置全局环境变量(如数据库连接参数)。

3. /home:用户数据的独立存储区

  • 作用 :每个用户的独立目录(如 /home/dev),存储个人文件、个性化配置(如 .bashrc)。

  • 项目场景

    • 代码管理 :开发者在个人目录下克隆Git仓库(git clone)。
    • 环境隔离 :通过 ~/.m2/settings.xml配置Maven私有仓库。

4. /var:动态数据的持久化存储

  • 作用 :存储日志(/var/log)、数据库(/var/lib/mysql)、缓存(/var/cache)、服务套接字(/var/run)等可变数据。

  • 项目场景

    • 日志分析 :通过 /var/log/nginx/access.log分析访问流量;MySQL慢查询日志需在 /etc/my.cnf中启用(slow_query_log = 1),日志会写入 /var/log/mysql/slow.log
    • 数据库备份 :定期备份 /var/lib/mysql中的数据库文件。

5. /opt:第三方软件的独立安装目录

  • 作用:存放商业软件或大型闭源工具(如Docker、JDK),避免与系统默认软件冲突。

  • 项目场景

    • 中间件部署 :将Redis安装到 /opt/redis,独立管理配置和数据。
    • 多版本共存 :在 /opt/java下存放多个JDK版本,通过符号链接切换。

6. /tmp/var/tmp:临时文件存储区

  • 作用

    • /tmp:临时文件(重启后清理),适合短期缓存。
    • /var/tmp:跨重启保留的临时数据(如编译中间文件)。
  • 项目场景

    • 文件上传 :Web应用将用户上传的图片暂存 /tmp,处理完成后移动至持久化目录。
    • 编译构建 :使用 make -j4 TMPDIR=/var/tmp指定大文件临时存储路径。

7. /usr:系统资源的共享存储区

  • 作用 :存放共享库(/usr/lib)、网页(/usr/share)和用户级程序(/usr/bin)。

  • 项目场景

    • 开发依赖 :Python包默认安装到 /usr/local/lib/python3.10/site-packages
    • 字体管理 :在 /usr/share/fonts下添加自定义字体,全局生效。

8. /boot:系统启动的核心文件存储

  • 作用 :存储内核镜像(vmlinuz)、引导加载器(如GRUB)的配置文件。

  • 项目场景

    • 内核升级 :替换 /boot下的新内核文件并更新GRUB配置。
    • 救援模式 :通过Live CD挂载根分区后,从 /boot恢复损坏的内核。

9. /dev/proc:虚拟文件系统的信息接口

  • 作用

    • /dev:设备文件(如 /dev/sda表示硬盘)。
    • /proc:实时系统信息(如 /proc/cpuinfo)。
  • 项目场景

    • 硬件调试 :通过 /sys/class/net查看网络接口状态。
    • 性能分析 :使用 cat /proc/meminfo监控内存使用情况。
相关推荐
wdfk_prog7 分钟前
[Linux]学习笔记系列 -- [drivers][clk]clk-bulk
linux·笔记·学习
刘某某.17 分钟前
在 mac 和 linux 系统上使用 pyenv
linux·运维·macos
杜子不疼.22 分钟前
加载了cpolar的Reader 电子书管理工具远程使用体验
linux·人工智能
weixin_3954489131 分钟前
mult_yolov5_post_copy.h_cursor_0129
linux·网络·人工智能
是垚不是土34 分钟前
OpenTelemetry+Jaeger+ES:分布式链路追踪实战部署
大数据·linux·运维·分布式·elasticsearch·全文检索
无垠的广袤43 分钟前
【VisionFive 2 Lite 单板计算机】边缘AI视觉应用部署:人脸检测
linux·人工智能·python·opencv·开发板
Dola_Zou1 小时前
如何用一套加密狗方案打通 Windows、Linux 与 macOS等,零成本实现跨平台交付?
linux·安全·macos·自动化·软件工程·软件加密
松涛和鸣1 小时前
66、SPI驱动ADXL345加速度计
linux·运维·单片机·嵌入式硬件·ubuntu
无垠的广袤1 小时前
【VisionFive 2 Lite 单板计算机】SoC 温度的 Home Assistant 物联网终端显示
linux·python·物联网
好学且牛逼的马1 小时前
【Hot100|20-LeetCode 240. 搜索二维矩阵 II 】
linux·算法·leetcode