Linux 文件系统目录结构 🌳
Linux 文件系统目录结构 🌳
🐧 深入理解Linux目录树结构,掌握系统管理的核心知识
目录
🌍 概述
Linux 文件系统采用层次化的树状结构,以 /
(根目录)为起点。这种结构设计遵循 FHS(文件系统层次结构标准),使得不同Linux发行版具有一致的目录布局。
🎯 设计理念:一切皆文件,层次分明,各司其职!
📊 主要特点:
- ✅ 树状层次结构
- ✅ 区分系统文件和用户文件
- ✅ 标准化目录用途
- ✅ 灵活的挂载点系统
- ✅ 权限控制精细
📁 核心目录详解
🗂️ / - 根目录
描述:整个文件系统的起点,包含所有其他目录和文件
重要内容:
- 系统启动必需的核心目录
- 不应该直接存放用户文件
示例:1
ls / # 查看根目录内容
⚠️ 注意:根目录应保持整洁,避免在此存放用户数据。
📦 /bin - 基本命令二进制文件
描述:存放系统最基本的命令,所有用户都可使用
包含内容:
ls
,cp
,mv
,rm
,cat
,mkdir
等核心命令- 系统启动和修复所需的工具
特点:
- ✅ 所有用户可执行
- ✅ 系统启动必需
- ✅ 单用户模式仍可用
现代变化:在一些新系统中,/bin
是 /usr/bin
的符号链接。
🚀 /boot - 启动文件
描述:包含系统启动所需的文件
重要文件:
vmlinuz
- Linux内核文件initrd.img
- 初始内存磁盘镜像grub/
- GRUB引导加载程序配置config-*
- 内核配置文件
⚠️ 注意:不要随意删除此目录文件,否则系统无法启动!
备份建议:定期备份 /boot
目录,特别是升级内核前。
💻 /dev - 设备文件
描述:体现Linux”一切皆文件”理念,包含所有设备文件
常见设备:
/dev/sda
- 第一块SATA硬盘/dev/sdb
- 第二块SATA硬盘/dev/ttyUSB0
- 第一个USB串口设备/dev/null
- 空设备(黑洞)/dev/random
- 随机数生成器/dev/zero
- 零源设备
特殊设备文件:
- 块设备:随机访问(如硬盘)
- 字符设备:顺序访问(如键盘)
管理命令:1
2
3ls /dev # 查看所有设备
fdisk -l # 查看磁盘设备
lsblk # 查看块设备信息
⚙️ /etc - 配置文件
描述:系统级配置文件中心
重要配置文件:
/etc/passwd
- 用户账户信息/etc/group
- 用户组信息/etc/fstab
- 文件系统挂载表/etc/hosts
- 主机名解析/etc/network/
- 网络配置/etc/ssh/sshd_config
- SSH服务配置/etc/crontab
- 计划任务配置
操作示例:1
2
3sudo nano /etc/hostname # 修改主机名
sudo nano /etc/hosts # 修改主机解析
sudo systemctl restart networking # 应用网络更改
🏠 /home - 用户主目录
描述:普通用户的个人空间
结构示例:1
2
3
4/home/
├── alice/ # 用户alice的家目录
├── bob/ # 用户bob的家目录
└── charlie/ # 用户charlie的家目录
用户目录内容:
~/Desktop/
- 桌面文件~/Documents/
- 文档~/Downloads/
- 下载文件~/.config/
- 用户配置(隐藏文件)~/.bashrc
- Bash shell配置~/.ssh/
- SSH密钥和配置
权限管理:1
2chmod 700 /home/username # 设置用户目录权限
chown username:username /home/username # 设置所有权
📚 /lib - 系统库文件
描述:存放系统运行所需的共享库
包含内容:
.so
文件(共享对象)- 内核模块
- 系统命令依赖的库文件
相关命令:1
2
3ldd /bin/ls # 查看ls命令依赖的库
ldconfig # 重建库缓存
ls /lib/modules/$(uname -r)/kernel/ # 查看内核模块
现代变化:在一些新系统中,/lib
是 /usr/lib
的符号链接。
📀 /media 和 /mnt - 挂载点
描述:用于挂载外部存储设备
区别:
/media/
- 自动挂载(U盘、光盘等)/mnt/
- 手动挂载(临时文件系统)
挂载示例:1
2
3
4
5
6
7
8
9
10
11# 创建挂载点
sudo mkdir /mnt/usb
# 手动挂载U盘
sudo mount /dev/sdb1 /mnt/usb
# 查看挂载信息
df -h
# 卸载
sudo umount /mnt/usb
自动挂载:现代桌面环境会自动在 /media/username/
下挂载设备。
📦 /opt - 可选软件
描述:第三方应用程序安装目录
典型结构:1
2
3
4
5
6/opt/
├── google/
│ └── chrome/
├── oracle/
│ └── java/
└── sublime_text/
特点:
- ✅ 保持软件独立性和完整性
- ✅ 便于管理和卸载
- ✅ 避免与系统包管理器冲突
🔍 /proc - 进程信息
描述:虚拟文件系统,显示内核和进程信息
重要文件:
/proc/cpuinfo
- CPU信息/proc/meminfo
- 内存信息/proc/[pid]/
- 特定进程信息/proc/version
- 内核版本/proc/loadavg
- 系统负载
查看示例:1
2
3cat /proc/cpuinfo # 查看CPU信息
cat /proc/meminfo # 查看内存信息
cat /proc/loadavg # 查看系统负载
进程信息:1
2
3# 查看进程1234的信息
ls /proc/1234/
cat /proc/1234/status
👑 /root - root用户目录
描述:超级用户(root)的家目录
特点:
- ❗ 需要root权限访问
- 💡 与
/home/root
不同 - 🔒 系统管理的重要目录
- 📁 存放系统管理脚本和配置
安全建议:避免在 /root
目录存放敏感信息,使用加密存储。
⚡ /sbin - 系统管理命令
描述:系统管理员使用的命令
重要命令:
fdisk
- 磁盘分区ifconfig
- 网络配置reboot
- 重启系统shutdown
- 关闭系统iptables
- 防火墙配置fsck
- 文件系统检查
特点:需要root权限执行
现代变化:在一些新系统中,/sbin
是 /usr/sbin
的符号链接。
🗑️ /tmp - 临时文件
描述:存放临时文件,重启后清空
特点:
- ✅ 所有用户可写入
- ⏰ 重启自动清理
- 🔒 有些系统会定期清理
- 🛡️ 使用tmpfs(内存文件系统)提高性能
安全考虑:设置适当的粘滞位权限:1
chmod 1777 /tmp # 设置粘滞位,用户只能删除自己的文件
📂 /usr - 用户程序
描述:最大的目录之一,包含用户应用程序
重要子目录:
/usr/bin/
- 用户命令/usr/lib/
- 程序库/usr/local/
- 本地安装软件/usr/share/
- 架构无关数据/usr/src/
- 源代码/usr/include/
- 头文件
/usr/local 的重要性:1
2
3
4# 编译安装软件到/usr/local
./configure --prefix=/usr/local
make
sudo make install
📊 /var - 可变数据
描述:存放经常变化的文件
重要内容:
/var/log/
- 系统日志/var/www/
- Web服务器文件/var/mail/
- 用户邮件/var/spool/
- 队列文件/var/cache/
- 应用程序缓存/var/run/
- 运行时的变量数据
日志查看:1
2tail -f /var/log/syslog # 实时查看系统日志
journalctl -f # 查看systemd日志
日志管理:使用logrotate管理日志文件大小和历史。
🔧 实用技巧
📝 常用命令
1 | # 查看当前目录 |
📊 磁盘空间管理
1 | # 查看磁盘使用情况 |
🔍 文件查找
1 | # 按名称查找文件 |
⚠️ 注意事项
🔴 危险操作
不要随意删除系统文件
1
2
3
4# 危险!可能导致系统崩溃
rm -rf /etc/
rm -rf /boot/
rm -rf /lib/谨慎操作根目录
1
2# 避免在根目录创建大量文件
# 不要将用户数据直接放在根目录备份重要配置
1
2
3# 备份重要配置文件
cp /etc/fstab /etc/fstab.backup
tar -czf etc-backup.tar.gz /etc/小心使用通配符
1
2# 危险!可能删除错误文件
rm -rf *.txt # 确保在当前正确目录
🛡️ 权限管理
1 | # 正确设置文件权限 |
📊 快速参考
🗺️ 目录结构速查表
目录 | 用途 | 重要内容 |
---|---|---|
/ |
根目录 | 文件系统起点 |
/bin |
基本命令 | ls , cp , rm |
/boot |
启动文件 | 内核, GRUB配置 |
/dev |
设备文件 | 硬件设备接口 |
/etc |
配置文件 | 系统配置 |
/home |
用户目录 | 用户个人文件 |
/lib |
库文件 | 共享库 |
/media |
可移动媒体 | 自动挂载点 |
/mnt |
临时挂载 | 手动挂载点 |
/opt |
可选软件 | 第三方应用 |
/proc |
进程信息 | 内核和进程信息 |
/root |
root目录 | 管理员家目录 |
/sbin |
系统命令 | 系统管理工具 |
/tmp |
临时文件 | 临时数据 |
/usr |
用户程序 | 应用程序和数据 |
/var |
可变数据 | 日志、缓存等 |
🔄 常用操作速查
1 | # 查看系统信息 |
🎯 学习建议
- 📚 循序渐进:先掌握常用目录,再学习高级功能
- 🛠️ 多实践:在虚拟机中练习,避免影响生产系统
- 🔍 好奇心:多探索系统目录,了解文件用途
- 📝 记笔记:记录重要目录的用途和注意事项
- 🆘 求助:遇到问题时使用
man
命令或在线文档 - 🔧 实验环境:使用Docker容器或虚拟机进行实验
- 📖 阅读文档:查阅FHS标准和发行版文档
推荐资源:
💡 专业提示:理解Linux文件系统结构是成为系统管理员的第一步。花时间探索每个目录,了解其用途和重要性,这将为你的Linux之旅打下坚实基础。