- 一、Linux 文件系统概述
- 二、核心目录结构详解
/- 根目录/bin- 基本用户命令二进制文件/boot- 启动引导文件/dev- 设备文件/etc- 系统配置文件/home- 用户家目录/lib,/lib64- 共享库文件/media- 可移动媒体挂载点/mnt- 临时挂载点/opt- 可选应用程序软件包/proc- 进程和系统信息虚拟文件系统/root- root用户的家目录/run- 运行时数据/sbin- 系统管理命令二进制文件/srv- 服务数据/sys- 系统设备信息虚拟文件系统/tmp- 临时文件/usr- 用户程序和数据/var- 可变数据文件- 三、目录权限和安全考虑
- 关键目录的典型权限
- 安全最佳实践
- 四、实用命令示例
- 查看目录大小
- 查找文件
一、Linux 文件系统概述
Linux 文件系统采用层级式树状结构,所有文件和目录都从根目录(/)开始。这种结构遵循 FHS(文件系统层次结构标准),确保了不同Linux发行版之间的一致性。
二、核心目录结构详解
/ - 根目录
重要性:整个文件系统的起点,包含所有其他目录
注意事项:根目录通常不直接存储用户文件,只包含系统必要的目录
/
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
/bin - 基本用户命令二进制文件
重要性:系统启动和运行所需的最基本命令
包含内容:
ls,cp,mv,rm,cat等基础命令bash,sh等shell解释器
示例:
ls /bin/ls /bin/cat /bin/bash/boot - 启动引导文件
重要性:包含系统启动所需的所有文件
包含内容:
- 内核文件(vmlinuz-*)
- 引导加载程序(GRUB)
- 初始内存盘(initramfs)
安全警告:误删此目录内容将导致系统无法启动
/dev - 设备文件
重要性:所有硬件设备的接口文件
特殊设备文件:
/dev/sda、/dev/sdb:硬盘设备/dev/tty*:终端设备/dev/null:空设备(写入的数据被丢弃)/dev/zero:零设备(提供无限的零字节流)
示例:
# 查看磁盘设备
ls -l /dev/sd*
# 将输出重定向到空设备
echo "这个信息不会被保存" > /dev/null/etc - 系统配置文件
重要性:系统的”控制中心”,包含所有配置文件
关键配置文件:
/etc/
├── passwd # 用户账户信息
├── shadow # 加密的用户密码
├── group # 用户组信息
├── fstab # 文件系统挂载表
├── hosts # 主机名解析
├── resolv.conf # DNS配置
├── ssh/ # SSH服务配置
└── network/ # 网络配置/home - 用户家目录
重要性:普通用户的个人工作空间
结构:
/home/
├── alice/ # 用户alice的家目录
├── bob/ # 用户bob的家目录
└── charlie/ # 用户charlie的家目录用户目录内容:
~/Desktop/:桌面文件~/Documents/:文档~/.bashrc:用户shell配置~/.ssh/:SSH密钥对
/lib, /lib64 - 共享库文件
重要性:程序和命令运行所需的共享库
包含内容:
.so文件(共享对象库)- 内核模块
/media - 可移动媒体挂载点
重要性:自动挂载可移动设备(U盘、光盘等)
示例:
# 插入U盘后自动挂载到
/media/USB_Drive/
# 光盘挂载到
/media/CDROM//mnt - 临时挂载点
重要性:管理员手动挂载文件系统的临时位置
使用场景:
# 手动挂载网络共享
mount -t nfs 192.168.1.100:/share /mnt/nfs_share
# 挂载ISO镜像
mount -o loop ubuntu.iso /mnt/iso/opt - 可选应用程序软件包
重要性:第三方商业软件的安装目录
典型结构:
/opt/
├── google/
│ └── chrome/ # Google Chrome浏览器
├── oracle/
│ └── java/ # Oracle JDK
└── vmware/ # VMware工具/proc - 进程和系统信息虚拟文件系统
重要性:内核和进程信息的实时接口(内存中的虚拟文件系统)
关键文件:
/proc/
├── cpuinfo # CPU信息
├── meminfo # 内存使用情况
├── loadavg # 系统负载
├── mounts # 已挂载文件系统
├── net/ # 网络统计信息
├── [PID]/ # 每个进程的详细信息
└── sys/ # 可调整的内核参数实用示例:
# 查看CPU信息
cat /proc/cpuinfo
# 查看内存使用
cat /proc/meminfo
# 查看系统负载
cat /proc/loadavg/root - root用户的家目录
重要性:系统管理员(root)的个人工作目录
注意:普通用户无法访问此目录
/run - 运行时数据
重要性:存储系统启动后的运行时信息
包含内容:
- 守护进程的PID文件
- 用户登录信息
- 设备锁文件
/sbin - 系统管理命令二进制文件
重要性:系统管理命令,通常需要root权限
关键命令:
fdisk:磁盘分区ifconfig:网络接口配置iptables:防火墙规则shutdown:系统关机
/srv - 服务数据
重要性:网站、FTP等服务的数据文件
典型用法:
/srv/
├── www/ # Web网站文件
├── ftp/ # FTP服务器文件
└── git/ # Git仓库/sys - 系统设备信息虚拟文件系统
重要性:硬件设备和驱动信息的统一接口
/tmp - 临时文件
重要性:程序和用户的临时文件存储
特性:
- 所有用户都有读写权限
- 系统重启时可能被清空
/usr - 用户程序和数据
重要性:Unix系统资源,包含大部分用户程序
详细结构:
/usr/
├── bin/ # 用户命令(大部分命令在这里)
├── sbin/ # 系统管理命令
├── lib/ # 共享库
├── include/ # C/C++头文件
├── share/ # 架构无关的共享数据
├── local/ # 本地编译安装的软件
├── src/ # 内核源代码
└── games/ # 游戏程序/var - 可变数据文件
重要性:经常变化的系统数据
关键目录:
/var/
├── log/ # 系统日志文件
├── cache/ # 应用程序缓存
├── lib/ # 状态信息
├── run/ # 运行时数据(符号链接到/run)
├── spool/ # 队列数据(邮件、打印任务)
├── tmp/ # 临时文件(重启后保留)
└── www/ # Web网站根目录(某些系统)三、目录权限和安全考虑
关键目录的典型权限
drwxr-xr-x /bin, /usr/bin # 所有人可执行,仅root可写
drwxr-xr-x /etc # 配置文件,仅root可写
drwx------ /root # 仅root可访问
drwxr-xr-x /home/user # 用户自己的目录
drwxrwxrwt /tmp # 所有人可读写,粘滞位防止删除他人文件安全最佳实践
- 最小权限原则:只授予必要的权限
- 定期检查:监控关键目录的权限变化
- 日志监控:关注/var/log下的安全日志
- 备份重要数据:特别是/etc配置文件和用户数据
四、实用命令示例
查看目录大小
# 查看根目录下各目录的大小
du -sh /* 2>/dev/null | sort -hr
# 查看磁盘使用情况
df -h查找文件
# 在/etc下查找所有.conf文件
find /etc -name "*.conf"
# 查找大于100MB的文件
find / -size +100M 2>/dev/null理解Linux目录结构是系统管理的基础,这种层次化的设计使得文件管理更加有序和安全。
作者:严锋 创建时间:2025-11-01 10:45
最后编辑:严锋 更新时间:2025-11-04 14:01
最后编辑:严锋 更新时间:2025-11-04 14:01