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/Ubuntu | Web 根目录:/var/www/html ;Snap 包目录:/snap |
Red Hat/CentOS | Web 根目录:/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 系统)
安全与权限建议
关键目录权限
目录 | 推荐权限 | 说明 |
---|---|---|
/etc | 755 | 配置文件需防止普通用户篡改。 |
/var/log | 755 | 日志文件通常仅允许 root 写入。 |
/home | 750 | 用户家目录应限制他人访问。 |
危险操作规避
- 勿随意删除系统目录:如
/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 的目录结构,…...
2025-4-19 情绪周期视角复盘(mini)
我本以为市场进化规律下产生龙头战法的末法时代导致情绪周期逐步混乱或者说混沌期漫长。所谓的市场进化无非也是量化的发展和各类资金逐步量化化的充分博弈下的结果。通过逐步向上思考发现,不仅仅我们的市场是处于一个存量的时代背景,重要的是我们的思维…...
-实用类-
1. API是什么 2.什么是枚举 !有点类似封装! 2.包装类 注意: 1.Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false 2.当包装类构造方法参…...
Unity3D仿星露谷物语开发36之锄地动画2
1、目标 当角色锄地之后,地面会显示开垦后的样貌。 2、思路 上一篇中,虽然角色dig了hoe,同时grid属性也改变了,但是没有任何可视化的反馈。我们现在将添加新的功能,动态地将"dug ground"瓷砖添加到"…...
【备考高项】模拟预测题(一)案例分析及答案详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题一【问题 1】(10分)【问题 2】(5分)【问题 3】(4分)【问题 4】(6分)试题二【问题 1】(12分)【问题 2】(3分)【问题 3】(6分)【问题 4】(4分)试题三【问题 1】(4分)【问题 2】(10分)【问题 3】…...
7、sentinel
控制台访问地址:http://localhost:8080/ 依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency>配置文件 spring:cloud:sentinel:transpo…...
状态管理最佳实践:Provider使用技巧与源码分析
状态管理最佳实践:Provider使用技巧与源码分析 前言 Provider是Flutter官方推荐的状态管理解决方案,它简单易用且功能强大。本文将从实战角度深入讲解Provider的使用技巧和源码实现原理,帮助你更好地在项目中应用Provider进行状态管理。 基…...
INFINI Console 系统集群状态异常修复方案
背景介绍 运行 INFINI Console 1.29.0 和 1.29.1 版本 的用户在 新初始化 平台后可能会遇到一个特定问题。如果后台的系统 Easysearch/Elasticsearch 集群(存储 Console 元数据的集群,通常名为 .infini_cluster 或类似名称)包含超过一个节点…...
Spring Boot自动装配原理(源码详细剖析!)
什么是Spring Boot的自动装配? 自动装配是Spring Boot的核心功能,它能够根据应用程序的依赖和配置自动配置Spring。这意味着我们只需要添加大量的依赖,Spring Boot就能自动完成配置,减少了人工配置的工作量。 自动装配的核心注…...
大数据驱动的高效能量管理:智能优化与实践探索
大数据驱动的高效能量管理:智能优化与实践探索 在全球能源需求不断增长的背景下,如何提高能源利用效率成为各行业关注的焦点。传统的能源管理方式往往依赖固定规则和人工监测,难以适应复杂多变的应用场景。而大数据技术的兴起,为能量管理提供了新的解决方案——通过数据驱…...
《银行数字化风控-业务于实战》读后知识总结
引言 在金融科技高速发展的今天,银行的风控体系正经历从“人工经验驱动”向“数据智能驱动”的深刻变革。《银行数字化风控-业务于实战》一书以实战为导向,系统性地剖析了数字化风控的核心逻辑、技术实现路径及业务落地方法论。作为深耕风控领域多年的从…...
初级达梦dba的技能水准
在x86环境(windows、linux)安装单机软件,安装客户端创建过至少20套数据库,优化参数并更新过正式许可会用逻辑导出导入以及dmrman备份了解manager工具的使用配置sqllog日志,并能解释输出内容能够分析因磁盘空间不足、内…...
C++初阶-类和对象(中)
目录 1.类的默认成员函数 2.构造函数(难度较高) 编辑 编辑 编辑 3.析构函数 4.拷贝构造函数 5.赋值运算符重载 5.1运算符重载 5.2赋值运算符重载 6.取地址运算符重载 6.1const成员函数 6.2取地址运算符重载 7.总结 1.类的默认成员函数…...
Linux网络UDP与TCP
基础知识 传输层 负责数据能够从发送端传输接收端。 端口号(Port)标识了一个主机上进行通信的不同的应用程序; 在 TCP/IP 协议中, 用 “源 IP”, “源端口号”, “目的 IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过 netstat -n 查看); 端口号范…...
23、.NET和C#有什么区别?
1、定义与范畴 .NET 定义 .NET 是一个由微软开发的开发平台(Platform),它提供了一套完整的工具、库和运行时环境,用于构建各种类型的应用程序。 范畴 包括 .NET Framework、.NET Core(现称为 .NET 5 及以上版本&a…...
Qt6离线安装过程
Qt6离线安装过程 说明解决方案联网笔记本安装qt6拷贝到离线电脑修改qtenv2.bat文件 说明 现在qt6已经不能通过离线的方式下载安装包安装了,只能通过登陆的方式在线安装,但是,又有离线安装运行的需求,那么怎么办呢?请跟…...
如何在 Go 中创建和部署 AWS Lambda 函数
AWS Lambda 是一个无服务器计算平台,您可以使用自己喜欢的编程语言编写代码,无需担心设置虚拟机。 您只需为 Lambda 函数的调用次数和运行时间(毫秒)付费。 我们大多数人都了解 JavaScript 和 Python,但它们的内存效率…...
【后端】【Django】Django 模型中的 `clean()` 方法详解:数据校验的最后防线
Django 模型中的 clean() 方法详解:数据校验的最后防线 在 Django 的模型系统中,我们经常使用字段级别的校验器(validators)来约束某个字段的取值范围。但当校验逻辑涉及多个字段之间的关系时,字段级别校验就无能为力…...
内存管理详解(曼波脑图超详细版!)
(✪ω✪)曼波来解答三连问啦!准备好内存知识大礼包了吗?(≧∇≦)ノ ━━━━━━━━━━━━━ ฅ^•ω•^ฅ ━━━━━━━━━━━ 一、内存分配详解 (๑>ᴗ<๑) (1) 栈内存 → 像便签纸📝 void calculate() {int a …...
【2025最新redis数据结构之Hypeloglog介绍】关于Hypeloglog
HyperLogLog (HLL) 算法深度解析 一、HLL 基本概念 HyperLogLog 是一种用于基数统计(distinct counting)的概率算法,能够在极小内存占用下(通常只需几KB)估算巨大数据集的基数(不重复元素数量)…...
软考复习——知识点软件开发
开发模型 瀑布模型 各个活动规定为线性顺序连接的若干阶段的模型。是一种理想的现象开发模型,缺乏灵活性,无法理解软件需求不明确或不准确的问题。适用于需求明确的项目。 演化模型 从初始的原型逐步演化成最终软件产品,特别适用于对软件…...
关于AI:记忆、身份和锁死
作者:John Battelle 当生成式AI迎来投资热潮、产品发布和炒作高峰时,我们大多数人在奔向“下一个大事件”的过程中,忽略了一个深层次的缺陷。我们现在主流的AI产品和服务(比如OpenAI、Google和Microsoft的产品)都是通过…...
2024新版仿蓝奏云网盘源码,已修复已知BUG,样式风格美化,可正常运营生产
说起网盘源码,网络上出现的也很多,不过可真正正能够用于运营的少之又少。今天将的蓝奏云网盘源码,其实网络上也有,不过是残缺版,bug很多。我今天分享的仿蓝奏云模板是经过长时间测试修复后的源码,源码实测可…...
OJ - 设计循环队列
622. 设计循环队列 - 力扣(LeetCode) 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则,并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可…...
实战指南:封装Faster-Whisper为FastAPI接口并实现高并发处理-附整合包
实战指南:封装Faster-Whisper为FastAPI接口并实现高并发处理-附整合包 「faster-whisper」 链接:https://pan.quark.cn/s/d4ddffb1b196 标题下面提供一个完整的示例,说明如何使用 FastAPI 封装 faster-whisper 接口,对外提供 RES…...
011数论——算法备赛
素数筛 给定n, 求2~n内的所有素数 埃氏筛 利用素数的定义, 输出素数2,然后筛掉2的倍数,得 {2,3,5,7,9,11,13,…}输出素数3,然后筛掉3的倍数,得 {2,3,5,7,11,13,…} 继续上述步骤࿰…...
C语言之机房机位预约系统
🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 C语言之机房机位预约系统 目录 博客:机房机位预约系统设计与实现 系统功能概述…...
中间件--ClickHouse-14--案例-3-其他案例思路概述
1、广告投放效果分析 案例背景: 一家广告平台需要分析广告的点击、曝光、转化等数据,以优化广告投放策略并提升 ROI(投资回报率)。 解决方案: 数据接入:将广告投放相关的数据(如曝光、点击、…...
saas是什么?它做什么用的。及和Paas和laas有什么区别
Saas是什么?它做什么用的。及和Paas和laas有什么区别 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是行业内容。前后每一小节的内容是存在的有:学习and理解的关联性,希望对您有用~ 文…...
Qt基础005(文件操作后续)
文章目录 QFileDialogQFileDialog打开开发案例QFileDialog保存开发案例实现文件打开功能开发流程打开功能优化 QComboBoxQListExtraSelection 简介 QFileDialog QFileDialog打开开发案例 #include <QApplication> #include <QFileDialog> #include <QStringLi…...
松灵Cobot Magic双臂具身遥操机器人(基于ROS的定位建图与协同导航技术)
摘要 本文以CobotMagic可移动协作机器人为研究对象,从硬件架构设计、软件系统架构、多传感器融合定位建图系统、智能导航系统协同机制四个维度,深入解析机器人系统工作原理。重点研究多传感器融合定位建图系统实现原理,结合实测数据验证系统…...
AI——神经网络以及TensorFlow使用
文章目录 一、TensorFlow安装二、张量、变量及其操作1、张量Tensor2、变量 三、tf.keras介绍1、使用tf.keras构建我们的模型2、激活函数1、sigmoid/logistics函数2、tanh函数3、RELU函数4、LeakReLu5、SoftMax6、如何选择激活函数 3、参数初始化1、bias偏置初始化2、weight权重…...
实现对象之间的序列化和反序列化
1.什么是序列化? 在项目的开发中,为了让前端更好的分析后端返回的结果,我们一般会将返回的信息进行序列化,序列化就是将返回对象的状态信息转换为一种标准化的格式,方便在网络中传输也方便打印日志时号观察࿰…...
QML中日期处理类
在 QML 中处理日期和时间主要使用 JavaScript 的 Date 对象以及 Qt 提供的一些相关功能。以下是常用的日期处理方式: 1. JavaScript Date 对象 QML 可以直接使用 JavaScript 的 Date 对象: qml // 创建当前日期时间 var currentDate new Date()// 创…...
基于docker-java封装的工具类
基于docker-java封装的工具类 背景环境工具类 背景 写OJ系统时需要用docker作为代码沙箱使用,顺手封装了一个工具类,给自己做个笔记,如果可以的话也希望帮助到其他人。 环境 docker 26.1.4docker-java 3.4.2docker-java-transport-httpcli…...
windows docker desktop 无法访问容器端口映射
为什么使用docker desktop访问映射的端口失败,而其端口对应的服务是正常的? 常见问题,容器的防火墙没有关闭!!! 以centos7为例,默认情况下防火墙处于开启状态: 这下访问就OK了...
ReentrantReadWriteLock读写锁
一、锁的分类 这里不会对Java中大部分的分类都聊清楚,主要把 **互斥,共享** 这种分类聊清楚。 Java中的互斥锁,synchronized,ReentrantLock这种都是互斥锁。一个线程持有锁操作时,其他线程都需要等待前面的线程释放锁…...
Vue.js 入门教程
Vue.js 入门教程 Vue.js 是一款非常流行的前端 JavaScript 框架,适用于构建用户界面。它的设计思想是尽可能简单、灵活,易于与其他库或现有项目整合。本文将从最基础的概念开始,逐步引导你学习 Vue.js。 一、Vue.js 基础概念 1.1 什么是 V…...
解决Docker 配置 daemon.json文件后无法生效
vim /etc/docker/daemon.json 在daemon中配置一下dns {"registry-mirrors": ["https://docker.m.daocloud.io","https://hub-mirror.c.163.com","https://dockerproxy.com","https://docker.mirrors.ustc.edu.cn","ht…...
wpf stylet框架 关于View与viewmodel自动关联绑定的问题
1.1 命名规则 Aview 对应 AVIewModel, 文件夹 views 和 viewmodels 1.2 需要注册服务 //RootViewModel是主窗口 public class Bootstrapper : Bootstrapper<RootViewModel>{/// <summary>/// 配置IoC容器。为数据共享创建服务/// </summary…...
车载测试用例开发-如何平衡用例覆盖度和测试效率的方法论
1 摘要 在进行车载测试用例编写时,会遇到多个条件导致用例排列组合爆炸的情况,但是为了产品测试质量,我们又不得不保证用例设计的需求覆盖度,这样又会使得测试周期非常长。我们如何平衡效率和测试质量?本文进行了一些…...
leetcode(01)森林中的兔子
今天开始记录刷题的过程,每天记录自己刷题的题目和自己的解法,欢迎朋友们给出更多更好的解法。 森林中的兔子 森林中有未知数量的兔子,提问其中若干只兔子“还有多少只兔子与你(被提问的兔子)颜色相同”。将答案收集到…...
人工智能-机器学习其他技术(决策树,异常检测,主成分分析)
决策树 一种对实例进行分类的树形结构,通过多层判断区分目标所属类别 本质:通过多层判断,从训练数据集中归纳出一组分类规则 优点: 计算量校,运算速度快 易于理解 缺点: 忽略属性间的相关性 样本分布不均时…...
AIGC通信架构深度优化指南
AIGC通信架构深度优化指南 标题:《百亿参数大模型如何高效通信?揭秘AIGC系统的协议层设计艺术》 副标题:从分布式训练到多模态推理,构建高可靠AI通信系统 1. AIGC典型通信场景 1.1 分布式模型训练参数同步 sequenceDiagram训练…...
精益数据分析(7/126):打破创业幻想,拥抱数据驱动
精益数据分析(7/126):打破创业幻想,拥抱数据驱动 在创业的道路上,我们都怀揣着梦想,但往往容易陷入自我编织的幻想中。我希望通过和大家一起学习《精益数据分析》,能帮助我们更清醒地认识创业过…...
Android Gradle多渠道打包
目录 1.多渠道打包是什么2.为什么需要多渠道打包3.多渠道配置VariantproductFlavorsbuildTypes 3.构建变体组合关于组合 4.渠道过滤5.渠道资源资源文件资源合并规则代码文件SourceSets 6. 渠道依赖项7.渠道统计meta-dataBuildConfig 8.管理渠道 1.多渠道打包是什么 多聚道打包…...
Day58 | 179. 最大数、316. 去除重复字母、334. 递增的三元子序列
179. 最大数 题目链接:179. 最大数 - 力扣(LeetCode) 题目难度:中等 代码: class Solution {public String largestNumber(int[] nums) {String[] strsnew String[nums.length];for(int i0;i<nums.length;i)str…...
LabVIEW发电机励磁系统远程诊断
变流器在风电系统中承担电能转换与控制的关键角色。它将发电机输出的低频、可变交流,通过整流、逆变等环节转为频率、电压稳定的交流,以满足电网接入要求;同时,根据实时风速调整发电机转速,实现最大功率追踪。 在某…...
性能比拼: Go vs Bun
本内容是对知名性能评测博主 Anton Putra Go (Golang) vs. Bun: Performance (Latency - Throughput - Saturation - Availability) 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 我对 Bun 在之前的基准测试中的出色表现感到惊讶,因此我决定将它与 Go …...
Kubernetes相关的名词解释Dashboard界面(6)
什么是Kubernetes Dashboard? Kubernetes Dashboard 是一个基于 Web 的用户界面,用于管理 Kubernetes 集群。它是 Kubernetes 官方提供的可视化工具,允许用户通过直观的图形界面而不是命令行来部署、管理和监控集群中的应用程序。 Dashboard…...