Linux目录结构怎么理解_从基础到进阶全流程讲透【教学】
发布时间 - 2025-12-22 00:00:00 点击率:次Linux目录结构遵循FHS规范,核心逻辑是“谁用、谁管、谁改”:/为挂载总入口;/bin、/sbin存基础命令;/etc管配置;/var存可变数据;/usr为只读系统软件区;/opt供第三方独立软件;/home、/root、/run体现运行态;实际存储常通过挂载和符号链接分离。
Linux目录结构不是随意设计的,而是遵循FHS(Filesystem Hierarchy Standard)规范,目的是让不同发行版保持一致、便于管理、安全隔离和软件兼容。理解它,关键不是死记硬背,而是抓住“谁用、谁管、谁改”这三条逻辑线。
根目录 / 是一切的起点,但不等于“C盘”
Windows习惯把系统、程序、用户文件全塞进一个盘符,而Linux的 / 是挂载点总入口——它本身通常不存大量数据,而是组织其他实际存储位置(比如 /home 可能单独挂载在另一块硬盘上)。刚装完系统时 / 下只有十几个标准子目录,每个都有明确职责:
- /bin 和 /sbin:存放所有用户(/bin)和管理员(/sbin)都能直接运行的基础命令,如 ls、cp、ifconfig。现代发行版常软链接到 /usr/bin 和 /usr/sbin(见下文)
- /etc:纯文本配置中心。服务开关、网络设置、用户账号(/etc/passwd)、权限策略(/etc/sudoers)全在这里。修改前建议备份,别直接 vim /etc/shadow
- /var:记录“会变”的东西——日志(/var/log)、邮件队列(/var/spool/mail)、数据库数据(/var/lib/mysql)、网页内容(/var/www)等。它的存在就是为了和只读的系统目录分开
/usr 和 /opt 不是“用户目录”,而是“软件分发区”
新手最易混淆的是 /usr —— 它名字像“user”,实则代表“Unix System Resources”。它是只读的系统级软件仓库:
- /usr/bin:绝大多数终端命令所在地(比如 python、gcc、curl),普通用户日常使用
- /usr/lib:对应二进制的库文件和模块(如 /usr/lib/python3.11/),程序运行时动态加载
- /usr/share:架构无关的资源,比如文档(/usr/share/man)、图标(/usr/share/icons)、字体(/usr/share/fonts)
- /opt:留给第三方大型独立软件,比如 Google Chrome、JetBrains IDE。它们自成目录(/opt/google/chrome/),不混入 /usr,方便整体卸载
注意:/usr 本应只读,但部分发行版(如 Ubuntu)允许写入;而 /opt 始终由管理员手动管理,包管理器一般不管它。
/home、/root、/run:三个真实“活”的地方
这三个目录体现 Linux 的“运行态”思维:
- /home/用户名:每个普通用户的私人空间,桌面、下载、配置文件(以 . 开头,如 ~/.bashrc)全在此。权限默认为 755,他人不可写
- /root:超级用户 root 的家目录,不是 /!它独立存在,保障 root 配置与系统隔离,也避免误操作波及根文件系统
- /run:内存中的临时运行时数据(tmpfs),每次开机重建。存放 PID 文件(/run/nginx.pid)、套接字(/run/docker.sock)、已登录用户信息(/run/utmp)等。关机即清空,比 /var/run 更轻量、更及时
进阶要点:挂载、符号链接与实际存储分离
真正掌握目录结构,要跳出“目录=文件夹”的直觉,学会看背后的实际挂载:
- 执行 findmnt 或 df -h,能看到 /、/home、/boot 各自在哪个物理设备或LVM卷上
- 很多目录是符号链接,例如 ls -l /bin 常显示 → /usr/bin,说明命令实际从 /usr 分发,/bin 只是兼容入口
- /proc 和 /sys 是虚拟文件系统,不占磁盘空间,而是内核实时生成的接口(如 /proc/cpuinfo 看CPU信息,/sys/class/net/ 查网卡状态)
- 容器环境里,/ 某些子目录可能被覆盖(如 Docker 中 /etc/hosts 是容器专属),这是 mount namespace 的效果,不是目录错了
基本上就这些。不需要背全,遇到新目录先查 man hier,再看它属于哪个 FHS
类别(配置?可变数据?架构相关?),逻辑就稳了。
# mysql
# linux
# python
# go
# docker
# windows
# nginx
# 硬盘
# ubuntu
# c盘
# curl
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何获取PHP WAP自助建站系统源码?
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
香港服务器网站卡顿?如何解决网络延迟与负载问题?
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
Laravel集合Collection怎么用_Laravel集合常用函数详解
青岛网站建设如何选择本地服务器?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
如何正确下载安装西数主机建站助手?
奇安信“盘古石”团队突破 iOS 26.1 提权
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
如何在VPS电脑上快速搭建网站?
如何利用DOS批处理实现定时关机操作详解
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
详解Android图表 MPAndroidChart折线图
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
如何在香港免费服务器上快速搭建网站?
实例解析angularjs的filter过滤器
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
音乐网站服务器如何优化API响应速度?
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
JavaScript如何实现倒计时_时间函数如何精确控制
网站制作报价单模板图片,小松挖机官方网站报价?
开心动漫网站制作软件下载,十分开心动画为何停播?
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
Mybatis 中的insertOrUpdate操作
SQL查询语句优化的实用方法总结
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
如何快速选择适合个人网站的云服务器配置?
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
详解jQuery中基本的动画方法
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
QQ浏览器网页版登录入口 个人中心在线进入
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
长沙做网站要多少钱,长沙国安网络怎么样?
EditPlus中的正则表达式 实战(2)
Laravel如何使用Gate和Policy进行授权?(权限控制)
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
清除minerd进程的简单方法
如何用低价快速搭建高质量网站?
如何在Tomcat中配置并部署网站项目?
如何破解联通资金短缺导致的基站建设难题?

