Linux 系统目录结构
《Linux 系统目录结构》
📁 学习目标
- 掌握 Linux 标准文件系统结构(FHS)及其各目录的作用。
- 理解 /bin,/etc,/home,/var,/dev等关键目录的用途。
- 能在阿里云 Ubuntu ECS 上熟练查找和管理各类系统文件。
- 学会如何合理规划目录,提升系统维护效率。
🧠 核心重点(表格提炼)
| 目录 | 内容说明 | 
|---|---|
| / | 根目录,整个文件系统的起点 | 
| /bin | 基础命令存放目录(如 ls,cp) | 
| /boot | 启动相关文件(内核、initrd) | 
| /dev | 设备文件目录(硬盘、终端等) | 
| /etc | 系统配置文件目录 | 
| /home | 用户主目录 | 
| /lib | 系统运行所需库文件 | 
| /media | 挂载可移动设备(U盘、光驱) | 
| /mnt | 临时挂载点 | 
| /opt | 第三方软件安装目录 | 
| /proc | 进程信息虚拟文件系统 | 
| /root | 系统管理员 root 的家目录 | 
| /run | 运行时数据(临时) | 
| /sbin | 系统管理命令(如 reboot,fdisk) | 
| /srv | 提供的服务数据目录 | 
| /tmp | 临时文件目录 | 
| /usr | 用户程序与共享资源(只读) | 
| /var | 可变数据目录(日志、缓存、邮件等) | 
🔍 详细讲解

1. 根目录 / —— 系统的起点 🏁
所有其他目录都从根目录开始延伸。它是整个文件系统的“总入口”。
📌 注意:
- 不要随意删除或修改 /下的文件。
- 阿里云 ECS 的根目录一般为 /dev/vda1或/dev/xvda。
📄 查看当前目录结构示例:
ls -l /
2. /bin 和 /sbin —— 命令宝库 ⚙️
✅ /bin
- 包含所有用户都可以使用的基础命令。
- 如:ls,cp,cat,echo,grep等。
✅ /sbin
- 包含系统管理员专用命令。
- 如:reboot,halt,ifconfig,fdisk等。
📌 注意:
- 在 Ubuntu 中,部分命令可能被移到 /usr/bin和/usr/sbin。
- 使用 which命令可以查看某个命令的实际路径:
which ls
which ifconfig
3. /boot —— 启动核心 💾
存放启动所需的文件,包括:
- 内核镜像(vmlinuz-版本号)
- 初始化内存盘镜像(initrd.img)
- GRUB 配置文件(grub.cfg)
📌 注意:
- 如果你升级了内核,旧的文件不会自动删除,占用空间较大。
- 定期清理 /boot中旧的内核文件是必要的。
📄 查看当前内核版本:
uname -r
4. /dev —— 设备映射区 🖥️
在 Linux 中,一切皆文件,硬件设备也以文件形式存在于此目录中。
常见设备文件:
- /dev/sda:第一块硬盘
- /dev/tty1:第一个终端
- /dev/null:黑洞设备(丢弃所有写入内容)
- /dev/zero:产生空字符流
📌 注意:
- 不要随意操作 /dev中的设备文件,可能导致系统崩溃。
- 查看当前磁盘分区情况:
ls /dev/sd*
5. /etc —— 系统配置中心 ⚙️🔧
几乎所有的系统配置文件都存放在此目录中。
常用配置文件举例:
- /etc/passwd:用户账户信息
- /etc/shadow:用户密码加密信息
- /etc/hosts:本地 DNS 映射
- /etc/resolv.conf:DNS 解析配置
- /etc/network/interfaces:网络接口配置(Ubuntu 18.04 及更早版本)
- /etc/netplan/:网络配置文件(Ubuntu 20.04+)
- /etc/ssh/sshd_config:SSH 服务配置文件
- /etc/apt/sources.list:APT 软件源地址列表
📌 注意:
- 修改任何 /etc下的配置文件前,请务必备份原文件。
- 可使用 sudo权限编辑:
sudo nano /etc/ssh/sshd_config
6. /home —— 用户主目录 👤
每个普通用户的“私人空间”,通常位于
/home/用户名。
例如:
- /home/ubuntu是默认用户 ubuntu 的家目录
- /home/john是 john 用户的家目录
📌 注意:
- 普通用户只能访问自己的主目录,除非获得权限。
- 家目录下 .bashrc、.profile文件用于设置环境变量和别名。
7. /lib 和 /usr/lib —— 库文件仓库 📚
包含系统运行所需的共享库(类似于 Windows 的 DLL 文件)。
- /lib:基本运行库,供- /bin和- /sbin使用
- /usr/lib:应用程序使用的库文件
📌 注意:
- 不要轻易删除这些目录下的文件,否则会导致系统无法正常运行。
- 使用 ldd可查看某个程序依赖哪些库:
ldd /bin/ls
8. /media 和 /mnt —— 挂载点 📀
✅ /media
- 自动挂载可移动设备(如 U盘、CD-ROM)
- 插入 U盘后,系统会自动创建 /media/ubuntu/卷标名
✅ /mnt
- 手动挂载临时文件系统(如 NFS、ISO 镜像)
- 例如挂载一个 ISO 文件:
sudo mount -o loop image.iso /mnt
📌 注意:
- 挂载完成后记得卸载(umount),避免数据损坏。
9. /opt —— 第三方软件安装地 📦
用于安装第三方大型软件包,如 Google Chrome、JetBrains 系列工具等。
📌 注意:
- 一些商业软件默认安装到此目录。
- 不建议手动放置文件,应通过官方安装脚本进行部署。
10. /proc —— 实时进程信息 💡
一个虚拟文件系统,提供系统和进程的实时状态信息。
常见用途:
- 查看 CPU 信息:cat /proc/cpuinfo
- 查看内存信息:cat /proc/meminfo
- 查看正在运行的进程:ls /proc/[数字]
📌 注意:
- /proc中的内容不是真实存在的文件,而是由内核动态生成的。
- 可用于调试和性能分析。
11. /root —— 系统管理员的家目录 🛡️
专属于超级用户
root的主目录,与普通用户的/home分开。
📌 注意:
- 默认情况下,Ubuntu 不允许直接登录 root,需要手动开启。
- 重要配置和脚本建议备份到此处。
12. /run —— 运行时数据 🔄
存放系统运行期间产生的临时文件,重启后会被清空。
常见内容:
- PID 文件(记录服务进程 ID)
- Socket 文件(进程间通信)
📌 注意:
- 该目录由 systemd 管理,不建议手动操作。
13. /srv —— 服务数据目录 🌐
用于存储服务器提供的服务数据,如 FTP、Web 站点内容等。
例如:
- /srv/www:网站根目录
- /srv/ftp:FTP 共享目录
📌 注意:
- 可自定义路径,需配合 Nginx/Apache 等服务配置使用。
14. /tmp —— 临时文件夹 🗑️
所有用户都可以在此目录创建临时文件,重启后会被清空。
📌 注意:
- 不要在此目录存放重要数据。
- 有些应用会将缓存写入 /tmp,定期清理有助于释放空间。
15. /usr —— 用户程序与共享资源 📁
类似于 Windows 的
Program Files,但内容为只读。
子目录说明:
- /usr/bin:用户命令
- /usr/sbin:系统命令
- /usr/local:本地安装软件(推荐位置)
- /usr/share:共享数据(如图标、文档)
- /usr/include:C/C++ 头文件
- /usr/lib:库文件
📌 注意:
- /usr通常是一个独立的文件系统挂载点。
- 不要随意更改其内容,尤其是 /usr/bin和/usr/lib。
16. /var —— 可变数据目录 📝
存放经常变化的数据,如日志、缓存、数据库、邮件等。
常见子目录:
- /var/log:系统日志(如- syslog,- auth.log)
- /var/cache:软件包缓存(如 APT 缓存)
- /var/run:运行时数据(软链接到- /run)
- /var/spool:任务队列(如打印任务、邮件队列)
- /var/lib:程序运行时数据(如 MySQL 数据库)
📌 注意:
- 日志文件增长较快,建议定期清理或压缩。
- 使用 journalctl查看 systemd 日志:
journalctl -b
🧩 实战案例:ECS 上的目录使用场景 🛠️
场景一:查看 Web 服务日志 📄
假设你在 ECS 上部署了一个 Nginx 网站,想查看访问日志:
tail -f /var/log/nginx/access.log
📌 提示:
- 若日志过大,考虑使用 logrotate工具进行分割归档。
场景二:修改 SSH 登录配置 🔐
你想禁止 root 登录并更改 SSH 端口:
sudo nano /etc/ssh/sshd_config
修改以下两行:
PermitRootLogin no
Port 2222
保存后重启 SSH 服务:
sudo systemctl restart ssh
📌 提示:
- 修改端口后,确保阿里云安全组也开放新端口!
场景三:清理 /boot 目录 🧹
升级内核后发现 /boot 空间不足:
dpkg --list | grep linux-image
输出类似:
ii  linux-image-5.15.0-1035-aws        5.15.0-1035.41~20.04.1   amd64        Signed kernel image aws
ii  linux-image-5.15.0-1036-aws        5.15.0-1036.42~20.04.1   amd64        Signed kernel image aws
删除旧内核:
sudo apt purge linux-image-5.15.0-1035-aws
更新 GRUB 并清理残留:
sudo update-grub
sudo apt autoremove
📚 小贴士(建议收藏)🔖
| 技巧 | 说明 | 
|---|---|
| 使用 tree /查看目录树结构(需安装tree包) | |
| 使用 du -sh /*快速查看各目录大小 | |
| 使用 find / -name "filename"查找文件 | |
| 使用 df -h查看磁盘使用情况 | |
| 使用 locate filename快速定位文件(需安装mlocate) | 
🎯 总结一句话:
“理解 Linux 系统目录结构,就像了解一栋房子的房间布局一样重要——它能让你快速找到想要的东西,并做出正确的决策!”
是否继续下一章?我将继续输出:
- 《Linux 文件权限管理详解》🔐
- 《用户与组管理实战》👥
- 《Shell 命令入门与进阶》🖥️
请告诉我你想深入的方向吧!🚀
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号