有没有刚进入Linux世界时,对着黑乎乎的终端,输入一个 ls / 后,看着蹦出来的一堆名字 like binetcusr,感觉一头雾水,像是在看天书?

别担心,你不是一个人。Linux的文件系统就像一个超级有条理的公司总部大楼,每个部门(目录)都有其严格规定的职责和存放的资料。今天,就让我当你的导游,带你逛逛这座“大楼”,保证你逛完以后,再也不会迷路!

目录

一、目录结构全景图

二、核心目录

2.1 核心功能区 (/bin, /sbin, /lib, /etc, /dev)

2.2 用户与数据区 (/home, /root, /tmp, /var)

2.3 软件与扩展区 (/usr, /opt)

2.4 虚拟与内核区 (/proc, /sys)

2.5 杂项区 (/boot, /mnt, /media, /run)

三、实践建议与注意事项


一、目录结构全景图

Linux文件系统采用树状结构,所有文件和目录都从根目录/开始延伸。这种层级设计遵循Filesystem Hierarchy Standard(FHS)标准,确保不同发行版具有一致性。以下是核心目录的层级示意图:

根目录/
├── bin:存放常用普通命令(ls、cp等)
├── sbin:存放系统管理员命令(shutdown、reboot等)
├── dev:设备文件目录(硬盘、鼠标等设备映射文件)
├── etc:系统配置文件目录(网络、用户配置等)
├── lib:系统库文件目录(程序运行所需共享库和内核模块)
├── mnt:挂载目录(临时挂载U盘、移动硬盘等)
├── opt:第三方软件存放目录
├── proc:虚拟文件系统(系统进程和内核信息)
├── tmp:临时文件目录(重启后文件删除)
├── usr:用户文件目录
│   ├── usr/bin:存放更多系统命令
│   ├── usr/sbin:存放更多管理员命令
│   ├── usr/lib:存放库文件
│   ├── usr/share:存放共享数据
│   └── usr/local:存放用户自行编译安装的软件
├── var:可变文件目录(日志、邮件等)
└── sys:虚拟文件系统(内核与用户空间交互,硬件相关信息)

二、核心目录

2.1 核心功能区 (/bin, /sbin, /lib, /etc, /dev)

这一片区域是公司的“核心研发与运维部门”,系统能否正常启动和运行,全靠它们。

  • /bin (Binaries) - 基础命令仓库

    • 职责:存放所有用户(包括管理员)都能使用的最基础、最必要的命令。比如文件操作命令 lscpmvrm,系统管理命令 pskillecho 等等。

    • 打个比方:就像大楼里的公共工具墙,谁都可以拿来用,螺丝刀、钳子、万用表,都是日常维修必备的。

    • 注意:这里的命令是系统启动和恢复所必需的,甚至在急救模式下也可能需要用到。

  • /sbin (System Binaries) - 管理员专属工具箱

    • 职责:存放系统管理员用于系统管理和修复的命令。普通用户默认无法使用。比如磁盘分区 fdisk、网络配置 ifconfig、系统初始化 init、文件系统检查 fsck

    • 打个比方:这是机房和电房的钥匙,只有物业经理(root用户)才有权限动用,涉及整个大楼的水电安全,可不能随便给人玩。

    • 小知识:在现代发行版中,/bin 和 /sbin 通常是 /usr/bin 和 /usr/sbin 的软链接,但逻辑上的区别依然存在。

  • /lib & /lib64 (Libraries) - 共享库文件

    • 职责:存放被 /bin 和 /sbin 中的程序所依赖的共享库文件(类似于Windows里的DLL文件)。这些是许多程序正常运行所必需的“基础零件”。

    • 打个比方:就像是核心部门所需要的公共基础零件库/bin 和 /sbin 的工具要正常工作,就得来这里找它们需要的“螺丝”和“齿轮”(.so文件)。

  • /etc (Etcetera) - 系统配置中心

    • 职责系统全局配置文件的聚集地。几乎所有系统和重要软件的配置都存放在这里。比如用户账户密码文件 /etc/passwd,网络配置 /etc/network/,软件源列表 /etc/apt/sources.list

    • 打个比方:这里是公司的中央档案室和规章制度部。所有部门和员工(程序)该怎么运作,都得遵循这里定下的规矩。改动这里的文件要万分小心,改错了可能导致服务甚至整个系统无法启动!

  • /dev (Devices) - 设备管理处

    • 职责:这是一个非常有趣的目录,它不包含任何真正的文件,而是包含了一系列的设备文件。在Linux中,“一切皆文件”,硬件设备也被抽象成了文件。比如 /dev/sda 代表你的第一块硬盘,/dev/null 是一个“黑洞”设备,/dev/random 是随机数发生器。

    • 打个比方:这是整栋楼的设备总控开关面板。每个开关(文件)都对应一个真实的设备(灯、空调、电梯)。你想操作硬件,就得通过这个面板来“按开关”。

2.2 用户与数据区 (/home, /root, /tmp, /var)

这一片区域是“员工办公区”和“数据流转中心”,充满了活力和变化。

  • /home - 员工宿舍

    • 职责:存放所有普通用户的家目录。每个用户都会在这里有一个以自己用户名命名的文件夹(如 /home/alice)。用户对自己的家目录有完全的控制权,可以在这里存放文档、图片、下载、个人配置等所有私人文件。

    • 打个比方:这简直是员工的私人卧室和书房,关起门来你想怎么布置就怎么布置,系统一般不会来干涉你。这是系统重装时最需要备份的目录!

  • /root - 董事长办公室

    • 职责:这是系统管理员(root用户)的家目录。它没有放在 /home 下,是为了在 /home 目录无法挂载等极端情况下,root用户依然能有一个可用的工作环境。

    • 打个比方董事长的独立办公室,就在核心机房旁边,安全且独立,确保在任何情况下大佬都能掌控全局。

  • /tmp (Temporary) - 公共休息区茶几

    • 职责:存放临时文件。所有用户和程序都可以在这里写入临时文件。这些文件通常会在每次系统重启时被清空。

    • 打个比方:就像公司入口处的临时物品寄存柜或者会议室里的白板,写写画画很方便,但别指望明天来看内容还在。

  • /var (Variable) - 数据监控室

    • 职责:存放经常变化的(Variable)数据,比如日志、缓存、数据库文件等。这是一个非常重要的目录,系统管理员会经常来这里排查问题。

    • 打个比方:这是公司的运营监控中心和邮件收发室,所有动态的数据都在这里流动和记录。

    • 重点子目录

      • /var/log系统日志和应用程序日志都在这里。系统出了啥问题,第一反应就是来这“查监控录像”。

      • /var/cache:应用程序的缓存数据

      • /var/www:通常用来存放网站的文件(如果你是Web服务器的话)。

      • /var/lib:存放应用程序的状态信息和数据,比如数据库的文件(/var/lib/mysql)。

2.3 软件与扩展区 (/usr, /opt)

这片区域是“业务扩展部”和“第三方合作办公室”,负责为系统添加更多功能。

  • /usr (Unix System Resources) - 软件资源总部

    • 职责:这是Linux系统中最大、最庞杂的目录之一,可以理解为 Windows 下的 C:\Program Files 和 C:\Windows 的混合体。它包含了所有非系统运行所必需的应用程序、库、文档等资源。

    • 打个比方:这是公司的主营业务大楼,里面包含了各种业务部门、共享会议室和资料库。系统启动后,绝大部分操作都在这里进行。

    • 重点子目录

      • /usr/bin:系统安装的大多数用户命令都在这里。数量和重要性都远超 /bin

      • /usr/sbin:系统安装的大多数管理员命令

      • /usr/lib:上述命令所需的共享库

      • /usr/share:存放架构无关的只读数据,比如文档、图标、字体、时区数据等。

      • /usr/local:这是手动编译安装软件的默认位置。当你从源码编译一个程序时,通常会被安装到这里。这样做的好处是与系统自带的软件隔离开,避免混乱,方便管理。它是 /usr 里的“特权部门”。

  • /opt (Optional) - 第三方软件包厢

    • 职责:通常用来安装第三方大型商业软件独立性很强的软件包。这些软件的所有文件(二进制、库、数据)都会放在同一个以软件名命名的子目录下(如 /opt/google/chrome/),卸载时直接删除整个目录即可,非常干净。

    • 打个比方:像是大楼里租给外部公司(如Google, Oracle)的独立办公室,他们自己管理自己的一切,与本公司业务相对独立,搬走时也清清爽爽。

2.4 虚拟与内核区 (/proc, /sys)

这片区域是“科幻区”,这里的“文件”不是真的存储在硬盘上,而是内核提供的运行时信息接口。

  • /proc (Processes) - 进程信息镜象馆

    • 职责:这是一个虚拟文件系统,它里面的“文件”是系统内存的映射。通过查看这些特殊的“文件”,可以获取到系统内核和正在运行的进程的实时信息。每个正在运行的进程都有一个以它的PID命名的目录(如 /proc/1234)。

    • 实操一下:试试在终端里输入 cat /proc/cpuinfo,它会立刻显示出你CPU的详细信息。再输入 cat /proc/meminfo,查看内存使用情况。是不是很神奇?

    • 打个比方:这是一个魔法水晶球,通过它可以看到系统内部每一个进程的实时状态和系统的各项参数,但它本身并不是一个实物仓库。

  • /sys (System) - 硬件设备信息镜象馆

    • 职责:同样是虚拟文件系统,在Linux 2.6内核中引入。它提供了一个比 /proc 更规整的接口来访问和管理内核和设备驱动的参数。与硬件、设备驱动、内核模块相关的信息更多地放在这里。

    • 打个比方:这是另一个魔法控制台,它更专注于展示和控制连接到系统的硬件设备,比如USB、PCI设备等的底层设置。

2.5 杂项区 (/boot, /mnt, /media, /run)

  • /boot - 系统启动舱

    • 职责:存放系统启动所需的文件,包括Linux内核镜像、初始RAM磁盘镜像(initrd)以及引导加载程序(如GRUB)的文件。这个目录通常独立分区,以防主分区损坏导致无法启动。

  • /mnt (Mount) & /media - 外部设备接待处

    • 职责:都是用于手动挂载其他文件系统的临时挂载点

    • 区别/media 通常由系统自动挂载可移动设备,比如U盘、光盘。插入U盘后,你很可能会在 /media/your-username/ 下看到它。而 /mnt 通常由管理员手动临时挂载一些设备,比如另一个硬盘分区或网络共享。

  • /run - 运行时数据前台

    • 职责:一个较新的临时文件系统,存放自系统启动以来的运行时信息,例如运行的进程的PID文件、锁文件、设备锁文件等。它代替了旧版的 /var/run,旨在提供更早可用的临时空间。

三、实践建议与注意事项

1. 权限敏感目录

  • 修改/etc/sbin等目录需谨慎,建议备份后操作。
  • 使用sudo执行管理员命令,避免直接以root用户登录。

2. 临时文件管理

  • 程序生成的临时文件应存放在/tmp,并设置自动清理策略。
  • 避免在/tmp存放重要数据,以防系统重启后丢失。

3. 第三方软件安装

  • 优先使用发行版官方仓库安装软件,减少依赖冲突。
  • 必须手动安装时,优先选择/opt/usr/local,并记录安装路径。

4. 硬件交互

  • 通过/dev目录操作硬件时,需确认设备文件权限及所有者。
  • 使用udev规则动态管理设备文件,提升灵活性。

逛完这一圈,是不是感觉清晰多了?最后给你两个最重要的忠告:

  1. 不要动 / 目录下的任何你不认识的文件夹! 尤其是 /etc/bin/sbin 等核心目录,胡乱删除或修改文件分分钟让你的系统崩溃。

  2. 重要个人文件请一定放在 /home 你的用户目录下,并养成定期备份的好习惯。这样即使系统重装,只要不格式化 /home 分区,你的数据就还在。

Linux的目录结构设计体现了Unix哲学的一种美:一切皆文件,并且每个目录都有单一且明确的职责。理解了这套规则,就能更自信地在Linux世界里探索和解决问题了。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/94247.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/94247.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/94247.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

螺旋槽曲面方程的数学建模与偏导数求解

螺旋槽曲面的数学描述 在钻头设计和机械加工领域,螺旋槽的几何建模至关重要。螺旋槽通常由径向截形绕轴做螺旋运动形成,其数学模型可通过参数方程和隐函数方程两种方式描述。 设螺旋槽的径向截形方程为: y=f(z)y = f(z)y=f(z) x=xcx = x_cx=xc​ 其中 xcx_cxc​ 为常数,…

线性回归:机器学习中的基石

在机器学习的众多算法中,线性回归无疑是最基础也是最常被提及的一种。它不仅在统计学中占有重要地位,而且在预测分析和数据建模中也发挥着关键作用。本文将深入探讨线性回归的基本概念、评估指标以及在实际问题中的应用,并通过一个模拟的气象…

编程刷题-资料分发1 图论/DFS

P2097 资料分发 1 题目描述 有一些电脑,一部分电脑有双向数据线连接。 如果一个电脑得到数据,它可以传送到的电脑都可以得到数据。 现在,你有这个数据,问你至少将其输入几台电脑,才能使所有电脑得到数据。 输入格式 第…

RabbitMQ:延时消息(死信交换机、延迟消息插件)

目录一、死信交换机【不推荐】二、延迟消息插件【推荐】2.1 安装插件【Linux】2.2 安装插件【Windows】2.3 如何使用延时消息:生产者发送消息时指定一个时间,消费者不会立刻收到消息,而是在指定时间之后才收到消息。 延时任务:设置…

动学学深度学习05-深度学习计算

动学学深度学习pytorch 参考地址:https://zh.d2l.ai/ 文章目录动学学深度学习pytorch1-第05章-深度学习计算1. 层(Layer)与块(Block)1.1 什么是深度学习中的“层”?1.2 什么是“块”(Block&…

智慧工厂烟雾检测:全场景覆盖与精准防控

智慧工厂烟雾检测:构建工业安全的智能防线(所有图片均为真实项目案例)在工业4.0时代,智慧工厂通过物联网、人工智能与大数据技术的深度融合,实现了生产流程的数字化与智能化。然而,工厂环境中的火灾隐患始终…

@JsonIgnoreProperties注解详解

JsonIgnoreProperties是 Jackson 库中的一个重要注解,用于在 JSON 序列化(对象转 JSON)和反序列化(JSON 转对象)过程中​​控制属性的可见性​​。它提供了更高级别的属性忽略能力,特别适合处理复杂场景。一…

红酒数据集预处理实战:缺失值处理的 5 种打开方式,从入门到进阶一步到位

在数据分析与建模流程中,缺失值处理是数据预处理阶段的关键步骤,直接影响后续模型的准确性与稳定性。本文以红酒数据集为研究对象,详细介绍如何通过基础统计方法(均值、中位数、众数)、完整案例分析(CCA&am…

Node.js 开发 JavaScript SDK 包的完整指南(AI)

一、核心概念SDK 包定义 专为特定服务/平台封装的工具库,提供标准化 API 调用、错误处理、类型声明等功能。示例:支付宝 SDK、AWS SDK、微信小程序 SDK。技术栈选择 语言:JavaScript/TypeScript(推荐 TS,便于类型提示&…

Redis实战-基于Session实现分布式登录

1.流程分析1.1发送短信验证码提交手机号的时候要进行校验手机号,校验成功才会去生成验证码,将验证码保存到session,发生他把这部分那。1.2短信验证码登录/注册如果提交手机号和验证码之后,校验一致才进行根据手机号查询用户&#…

疯狂星期四文案网第47天运营日记

网站运营第47天,点击观站: 疯狂星期四 crazy-thursday.com 全网最全的疯狂星期四文案网站 运营报告 今日访问量 今日搜索引擎收录情况 必应现在是边收录边k页面 百度快倒闭 网站优化点 完善工作流,全面实现文案自动化采集,se…

Vue生命周期以及自定义钩子和路由

Vue生命周期常用的onMounted挂载后执行和onUnmounted卸载前以及onupdated更新后实际上用react对比就是useEffect&#xff0c;而且挂载顺序也是子组件先于父组件然后往外的栈结构&#xff0c;先进后出。1.Vue的生命周期<template><h2>当前求和为{{ sum }}</h2>…

探索Thompson Shell:Unix初代Shell的智慧

引言 在计算机科学的漫漫长河中&#xff0c;Thompson Shell 无疑占据着举足轻重的开创性地位&#xff0c;它是 Unix 系统的第一个 shell&#xff0c;诞生于 1971 年&#xff0c;由计算机领域的传奇人物 Ken Thompson 开发。在那个计算机技术刚刚起步、硬件资源极度匮乏的年代&a…

MySQL B+ 树索引详解:从原理到实战优化

引言在现代数据库应用中&#xff0c;查询效率是影响系统性能的关键因素之一。而索引&#xff0c;尤其是 B 树索引&#xff0c;是 MySQL 中最常用、最重要的性能优化手段。正确使用索引可以将查询时间从毫秒级降低到微秒级&#xff0c;极大地提升应用响应速度。1. B 树索引的重要…

计算机内存中的整型存储奥秘、大小端字节序及其判断方法

目录 一、回顾与引入&#xff1a;整数在内存中的存储方式 为什么要采用补码存储&#xff1f; 二、大小端字节序及其判断方法 1、什么是大小端&#xff1f; 2、为什么存在大小端&#xff1f; 3、练习 练习1&#xff1a;简述大小端概念并设计判断程序&#xff08;百度面试…

Redis 最常用的 5 种数据类型

Redis 支持多种灵活的数据类型&#xff0c;每种类型针对特定场景优化。以下是 **Redis 最常用的 5 种数据类型**及其核心特点和应用场景&#xff1a;1. 字符串&#xff08;String&#xff09;描述&#xff1a;最基本的数据类型&#xff0c;可存储文本、数字&#xff08;整数/浮…

【嵌入式】RK3588 对比 NVIDIA Jetson,Radxa Rock 5B vs Orange Pi 5 Max

RK3588这个芯片,适合AI应用么,为什么这么贵呢 AI 边缘盒子里的旗舰芯 深度分析一下 RK3588(瑞芯微 Rockchip RK3588) 为什么被很多人关注在 AI 应用,以及它价格偏高的原因。 🧩 1. RK3588 的基本情况 制程:8nm(Samsung 8nm LP) CPU:8 核 big.LITTLE 架构(4 Cortex-…

暴雨让高性能计算更“冷静”

当AI大模型的参数突破万亿&#xff0c;当深地探测的精度迈向微米&#xff0c;当数字经济的脉搏与千行百业深度共振&#xff0c;算力已成为驱动时代向前的核心引擎。然而&#xff0c;传统风冷技术在高密度算力需求面前渐显乏力——机柜内的热浪如同无形的枷锁&#xff0c;既制约…

SpringAI集成MCP

文章目录1_调用公用MCP2_Stdio方式3_Stdio实现原理4_SSE方式5_自定义MCP客户端6_MCP Server权限控制SpringAI 通过 SpringBoot 集成扩展了 MCP Java SDK &#xff0c;提供了客户端和服务端 starter&#xff0c;让 AI 应用程序快速支持 MCP。接下来直接演示。 1_调用公用MCP 在…

Spring Start Here 读书笔记:第10章 Implementing REST services

REST 服务可用于实现两个应用之间的通讯&#xff0c;包括 Web 应用中的客户端和服务器之间&#xff0c;移动应用与后端服务之间&#xff0c;或两个后端服务之间。 10.1 使用 REST 服务在应用之间交换数据 REST端点是应用程序通过 Web 协议公开服务的方式&#xff0c;因此也称…