当前位置: 首页 > article >正文

Linux 文件系统目录结构详解

Linux 文件系统目录结构详解

Linux 文件系统遵循 Filesystem Hierarchy Standard (FHS) 标准,定义了各个目录的用途和文件存放规则。无论是开发者、运维工程师还是普通用户,理解这些目录的作用都至关重要。本文将全面解析 Linux 的目录结构,并结合实际场景说明其应用。


根目录 /

作为所有目录和文件的起点,类似于 Windows 的 C:\。所有其他目录均挂载在根目录下。


核心系统目录

1. /bin(基本用户命令)

  • 作用:存放所有用户可用的基础命令(如 ls, cp, cat)。
  • 注意:现代系统中,/bin 通常是 /usr/bin 的符号链接。

2. /boot(启动文件)

  • 内容:内核文件(vmlinuz-*)、引导加载程序(如 GRUB)、初始化内存盘(initramfs)。
  • 重要性:系统启动依赖此目录,切勿随意删除!

3. /dev(设备文件)

  • 作用:以文件形式表示硬件或虚拟设备。
  • 示例
    • /dev/sda:第一块物理磁盘。
    • /dev/null:黑洞设备,丢弃所有写入数据。

4. /etc(配置文件)

  • 关键目录:存放系统和应用程序的配置。
  • 常见文件
    • /etc/passwd:用户账户信息。
    • /etc/fstab:文件系统挂载表。
    • /etc/nginx/nginx.conf:Nginx 服务配置。

5. /lib/lib64(共享库)

  • 作用:为 /bin/sbin 中的程序提供依赖库。
  • 区别/lib64 专用于 64 位系统(某些发行版直接合并到 /lib)。

6. /sbin(系统管理命令)

  • 用途:存放管理员专用的命令(如 fdisk, iptables, reboot)。

用户与数据目录

7. /home(用户家目录)

  • 规则:每个用户拥有独立子目录(如 /home/alice),存放个人文件和配置文件(如 ~/.bashrc)。

8. /root(超级用户的家目录)

  • 权限:仅 root 用户可访问,普通用户无权查看。

9. /opt(第三方软件)

  • 场景:存放独立于系统包管理器安装的第三方应用(如 MATLAB、大型商业软件)。

10. /usr(用户程序资源)

  • 最大目录:包含用户级应用程序和文件。
  • 子目录
    • /usr/bin:用户命令(如 python, gcc)。
    • /usr/local:手动编译安装的软件(避免与系统包冲突)。
    • /usr/share:共享数据(文档、字体、图标)。

11. /var(动态数据)

  • 作用:存放频繁变化的文件。
  • 子目录
    • /var/log:系统日志(如 syslog, nginx/access.log)。
    • /var/cache:应用程序缓存。
    • /var/lib:数据库文件(如 MySQL 数据)。

临时与运行时目录

12. /tmp(临时文件)

  • 特点:系统重启后自动清理,某些系统使用内存(tmpfs)加速访问。

13. /run(运行时数据)

  • 内容:存放系统启动后的临时文件(如 PID 文件、套接字文件)。
  • 注意:现代系统中,/var/run 通常符号链接到 /run

特殊文件系统

14. /proc(内核与进程信息)

  • 虚拟文件系统:实时反映系统和进程状态。
  • 示例
    • /proc/cpuinfo:CPU 详细信息。
    • /proc/[PID]:特定进程的运行状态。

15. /sys(内核设备与驱动)

  • 用途:提供硬件和驱动的配置接口。
  • 常见操作
    • 查看网络接口:/sys/class/net
    • 管理电源:/sys/power/state

挂载与存储目录

16. /media(可移动设备挂载点)

  • 自动挂载:U 盘、光盘等插入后通常挂载在此(如 /media/usb)。

17. /mnt(手动挂载点)

  • 场景:临时挂载网络存储(NFS)或实验性文件系统。

18. /srv(服务数据)

  • 规范:存放服务相关的数据文件(如 Web 站点的 /srv/www)。

进阶目录与场景

19. /etc/X11(图形界面配置)

  • 作用:X Window 系统的配置文件(如 xorg.conf)。

20. /usr/src(源代码)

  • 用途:存放内核源码和开发头文件(如 linux-headers-*)。

21. /var/spool(任务队列)

  • 示例
    • /var/spool/cron:用户定时任务(crontab)。
    • /var/spool/mail:用户邮件暂存。

发行版差异

不同 Linux 发行版的目录结构可能略有调整:

发行版特点
Debian/UbuntuWeb 根目录:/var/www/html;Snap 包目录:/snap
Red Hat/CentOSWeb 根目录:/var/www;内核模块:/lib/modules
Arch Linux简化结构,部分目录合并到 /usr

实用操作示例

1. 查找大文件

du -sh /*              # 查看根目录下各目录大小
du -h /var/log | sort -rh  # 按大小排序日志文件

2. 挂载外部设备

sudo mount /dev/sdb1 /mnt   # 挂载磁盘分区到 /mnt
sudo umount /mnt            # 卸载设备

3. 清理临时文件

sudo rm -rf /tmp/*          # 清理 /tmp(谨慎操作!)

4. 实时查看日志

tail -f /var/log/syslog        # 监控系统日志
journalctl -u nginx.service    # 查看 Nginx 服务日志(systemd 系统)

安全与权限建议

关键目录权限

目录推荐权限说明
/etc755配置文件需防止普通用户篡改。
/var/log755日志文件通常仅允许 root 写入。
/home750用户家目录应限制他人访问。

危险操作规避

  • 勿随意删除系统目录:如 /bin, /lib,否则可能导致系统崩溃。
  • 谨慎操作 /proc/sys:直接修改可能影响内核行为。

目录合并趋势

现代 Linux 发行版(如 Fedora、Ubuntu)逐步简化结构:

  • 符号链接合并/bin, /sbin, /lib 链接到 /usr 对应目录。
  • 历史背景:早期 //usr 分离是为适应小容量存储,现因存储设备升级而合并。

总结

  • 核心目录/bin, /etc, /home, /var, /usr
  • 运维重点
    • 配置管理/etc/usr/local/etc
    • 日志排查/var

相关文章:

Linux 文件系统目录结构详解

Linux 文件系统目录结构详解 Linux 文件系统遵循 Filesystem Hierarchy Standard (FHS) 标准,定义了各个目录的用途和文件存放规则。无论是开发者、运维工程师还是普通用户,理解这些目录的作用都至关重要。本文将全面解析 Linux 的目录结构,…...

编码器---正交编码器

一、正交编码器定义与核心作用 正交编码器(Orthogonal Encoder),又称增量式编码器,是一种通过输出两路相位差90的脉冲信号(A相、B相)来测量旋转角度、速度和方向的传感器。其核心优势是通过A/B相的脉冲顺序…...

Java Streams 使用教程

简介 Stream 是 Java 8 引入的一个 函数式编程特性,可以让我们用声明式的方式操作集合(如 List、Set、Map 等)。 核心作用是: 从集合中提取数据(流) 对数据做中间操作(filter/map/sort...&am…...

1001: 自由落体的计算

题目描述 一球从m米高度自由下落&#xff0c;每次落地后返回原高度的一半&#xff0c;再落下。 求它在第n次触地时会反弹多高&#xff1f;直到第n次触地时共经过多少米&#xff1f; 输入 一行,包含两个数m, n 其中0 < m < 1,000,000,000 0 < n < 1,000,000,000 输…...

开发环境解决浏览器层面跨域问题

适用于开发环境临时调试等情况 新建一个 Chrome 的快捷方式&#xff0c;目标后面跟上&#xff1a; –disable-web-security --disable-gpu --user-data-dir%LOCALAPPDATA%\Google\chromeTemp 打开后会给出不安全的提示...

2025年渗透测试面试题总结-拷打题库07(题目+回答)

网络安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 2025年渗透测试面试题总结-拷打题库07 1. CMS目录扫描的意义 2. 常见网站服务器容器 3. MySQL写入We…...

【leetcode刷题日记】lc.300-最长递增子序列

目录 1.题目 2.代码 1.题目 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,…...

游戏引擎学习第236天:GPU 概念概述

回顾并展望通过视频采集卡进行流媒体传输的未来 昨天&#xff0c;我们迈出了大胆的一步&#xff0c;决定初始化硬件的 3D 加速&#xff0c;因为我有点厌倦了我们的游戏没有垂直同步&#xff08;vsync&#xff09;。如今&#xff0c;在 Windows 上&#xff0c;我找不到一种可靠…...

深入理解Linux中的线程控制:多线程编程的实战技巧

个人主页&#xff1a;chian-ocean 文章专栏-Linux 前言&#xff1a; POSIX线程&#xff08;Pthreads&#xff09; 是一种在 POSIX 标准下定义的线程库&#xff0c;它为多线程编程提供了统一的接口&#xff0c;主要用于 UNIX 和类 UNIX 系统&#xff08;如 Linux、MacOS 和 BS…...

【题解-Acwing】790. 数的三次方根

题目:790. 数的三次方根 题目描述 给定一个浮点数 n,求它的三次方根。 输入 共一行,包含一个浮点数 n 。 输出 共一行,包含一个浮点数,表示问题的解。 注意,结果保留 6 位小数。 数据范围 −10000 ≤ n ≤ 10000 时空限制 1s / 64MB 输入样例 1000.00输出样…...

【条形码识别改名工具】如何批量识别图片条形码,并以条码内容批量重命名,基于WPF和Zxing的开发总结

批量图片条形码识别与重命名系统 (WPF + ZXing)开发总结 项目适用场景 ​​电商商品管理​​:批量处理商品图片,根据条形码自动分类归档​​图书馆系统​​:扫描图书条形码快速建立电子档案​​医疗档案管理​​:通过药品条形码整理医疗图片资料​​仓储管理​​:自动化识…...

大模型微服务架构模块实现方案,基于LLaMA Factory和Nebius Cloud实现模型精调的标准流程及代码

以下是基于LLaMA Factory和Nebius Cloud实现模型精调的标准流程及代码示例&#xff0c;结合最新技术动态和行业实践整理&#xff1a; 一、LLaMA Factory本地部署方案 1. 环境配置 # 创建Python环境并安装依赖 conda create -n llama_factory python3.10 conda activate llam…...

【C++】 —— 笔试刷题day_22

一、添加字符 题目解析 这道题&#xff0c;给定两个字符串A和B&#xff0c;字符串A的长度要小于B的长度&#xff1b; 现在我们要对A字符串添加字符&#xff0c;使得A字符串长度等于B字符串的长度&#xff0c;并且要求对应位置的字母尽量相等&#xff0c;然后求出来不相等的字符…...

深入浅出:LDAP 协议全面解析

在网络安全和系统管理的世界中&#xff0c;LDAP&#xff08;轻量级目录访问协议&#xff0c;Lightweight Directory Access Protocol&#xff09;是一个不可忽视的核心技术。它广泛应用于身份管理、认证授权以及目录服务&#xff0c;尤其在企业级环境中占据重要地位。本文将从基…...

【Android面试八股文】Android应用进程的启动流程【二】

应用进程 1.1 Android系统进程的启动过程&#xff1a; 1、init进程fork出Zygote进程后&#xff0c;Zygote进程会创建一个服务端socket&#xff0c;等待AMS发起socket请求。 同时&#xff0c;由Zygote进程fork出的SystemServer进程会启动各项系统服务&#xff0c;其中就包含了A…...

“星睿O6” AI PC开发套件评测 - 部署PVE搭建All in One NAS服务器

Radxa O6平台上部署PVE搭建All in One NAS服务器 Radxa O6是一款性能卓越的单板计算机&#xff0c;其强劲的硬件配置和多样化的接口设计&#xff0c;使其成为家庭和小型企业理想的All in One服务器解决方案。值得一提的是&#xff0c;O6原生配备了两个5G网口&#xff0c;便于直…...

16.使用豆包将docker-compose的yaml转为k8s的yaml,安装各种无状态服务

文章目录 docker方式httpbinit-toolslinux-commandmyipreference docker-compose安装k8s方式 docker方式 httpbin A simple HTTP Request & Response Service https://httpbin.org/ https://github.com/postmanlabs/httpbin https://github.com/mccutchen/go-httpbin do…...

全志H5,NanopiKP1lus移植QT5.12记录

移植步骤 机器环境下载QT5.12.0源码安装交叉编译器修改qmake.conf文件配置编译选项qt5的configure选项说明基本配置选项编译器和链接器选项功能模块配置第三方库集成注意事项 配置过程报错解决配置完成编译过程报错解决编译完成将arm-qt文件夹传送到开发板配置板子环境变量运行…...

定制一款国密浏览器(10):移植SM2算法前,解决错误码的定义问题

上一章中,我给大家介绍了 SM4 在 BoringSSL 上的移植要点,本来计划本章介绍 SM2 算法的移植要点。在移植 SM2 过程中,遇到了一个拦路虎,所以先扫除这个拦路虎,这就是错误码的定义问题。 在铜锁中,引入了几个错误码和错误字符串,在文件 sm2_err.c 中: static const ER…...

使用EXCEL绘制平滑曲线

播主播主&#xff0c;你都多少天没更新了&#xff01;&#xff01;&#xff01;泥在干什么&#xff1f;你还做这个账号麻&#xff1f;&#xff01;&#xff01;&#xff01; 做的做的&#xff08;哭唧唧&#xff09;&#xff0c;就是最近有些忙&#xff0c;以及…… 前言&…...

Warcraft Logs [Classic] [WCL] Usage Wizard <HTOC>

‌HTOC&#xff08;十字军的试炼&#xff09;副本中各个BOSS的ID如下‌&#xff1a; ‌629 - 诺森德野兽‌ ‌633 - 加拉克苏斯大王‌ ‌637 - 派系冠军‌ ‌641 - 瓦格里双子‌ ‌645 - 阿努巴拉克‌ encounterID!637 and encounterID!641 encounterID NOT IN (637,641) 伤害 …...

【笔记】网络安全管理

计算机硬件中&#xff0c;运算器和控制器通常集成在一块芯片内&#xff0c;一般称为&#xff08;&#xff09;。 数据库DB、数据库系统DBS、数据库管理系统DBMS&#xff0c;三者之间的关系是&#xff08;&#xff09;。 OSI/RM体系结构中的网络层与TCP/IP体系结构中的&#x…...

在服务器上部署MinIO Server

MinIO的优势 高性能&#xff1a;MinIO号称是目前速度最快的对象存储服务器&#xff0c;据称在标准硬件上&#xff0c;对象存储的读/写速度最高可以高达183 GB/s和171 GB/s&#xff0c;可惜我的磁盘跟不上 兼容性&#xff1a;MinIO基于Amazon S3协议&#xff0c;并提供了与S3兼…...

一个改善Entity Framework异常处理和错误信息的开源项目

使用DDD从零构建一个完整的系统 使用Entity Framework作为ORM框架应该是绝大多数项目的选择&#xff0c;使得我们操作数据库变得简单方便&#xff1b;但是我们操作数据库&#xff0c;绝对是无法避免数据库发生异常的情况&#xff0c;数据库针对每一种异常也都会提供一个编码来…...

计算机视觉——基于 Yolov8 目标检测与 OpenCV 光流实现目标追踪

1. 概述 目标检测&#xff08;Object Detection&#xff09;和目标追踪&#xff08;Object Tracking&#xff09;是计算机视觉中的两个关键技术&#xff0c;它们在多种实际应用场景中发挥着重要作用。 目标检测指的是在静态图像或视频帧中识别出特定类别的目标对象&#xff0…...

PHP使用pandoc把markdown文件转为word

文章目录 首先安装pandocPHP处理 服务器操作系统是Linux&#xff0c;centos 首先安装pandoc yum install -y pandoc安装完成后输入如下代码&#xff0c;检查安装是否成功 pandoc --versionPHP处理 我把markdown内容存到了数据库里&#xff0c;所以要从数据库读取内容。对内容…...

第二十四天 - 分布式任务队列 - Celery高级应用 - 练习:分布式监控任务系统

一、Celery核心机制解析 1.1 分布式架构四要素 # celery_config.py BROKER_URL redis://:passwordlocalhost:6379/0 # 消息中间件 RESULT_BACKEND redis://:passwordlocalhost:6379/1 # 结果存储 TASK_SERIALIZER json ACCEPT_CONTENT [json] TIMEZONE Asia/Shanghai核…...

针对MCP认证考试中的常见技术难题进行实战分析与解决方案分享

一、身份与权限管理类难题 场景1&#xff1a;Active Directory组策略&#xff08;GPO&#xff09;不生效 问题现象&#xff1a;客户端计算机未应用新建的组策略。排查步骤&#xff1a; 检查GPO链接顺序&#xff1a;使用gpresult /r查看策略优先级&#xff0c;确保目标OU的GPO…...

【滑动窗口】最⼤连续 1 的个数 III(medium)

⼤连续 1 的个数 III&#xff08;medium&#xff09; 题⽬描述&#xff1a;解法&#xff08;滑动窗⼝&#xff09;&#xff1a;算法思路&#xff1a;算法流程&#xff1a; C 算法代码&#xff1a;Java 算法代码&#xff1a; 题⽬链接&#xff1a;1004. 最⼤连续 1 的个数 III …...

OBS 日期时间.毫秒时间脚本 date-and-time.lua

文章目录 OBS 日期时间.毫秒时间脚本&#xff1a;效果 OBS 日期时间.毫秒时间脚本&#xff1a; obs obslua source_name ""last_text "" format_string "" activated false-- 此函数用于获取精确的毫秒级时间戳&#…...