Linux文件系统采用树形结构组织文件和目录,所有内容都从根目录(/)开始。这种统一的结构与Windows的分区驱动方式不同,所有存储设备都挂载到文件系统的某个目录下。
目录 | 用途 |
---|---|
/bin | 基本用户命令二进制文件(所有用户可用) |
/boot | 启动加载程序相关文件(内核、initrd等) |
/dev | 设备文件(硬盘、终端等) |
/etc | 系统全局配置文件 |
/home | 普通用户主目录 |
/lib | 基本共享库和内核模块 |
/media | 可移动媒体挂载点 |
/mnt | 临时挂载文件系统 |
/opt | 可选应用软件包 |
/proc | 进程和内核信息虚拟文件系统 |
/root | root用户的主目录 |
/run | 运行时的可变数据 |
/sbin | 系统管理命令二进制文件 |
/srv | 服务相关数据 |
/tmp | 临时文件 |
/usr | 用户程序和数据(二级层次) |
/var | 可变数据(日志、缓存等) |
/usr目录结构:
/usr
├── bin # 大部分用户命令
├── include # C程序头文件
├── lib # 库文件
├── local # 本地安装的软件
├── sbin # 非关键系统管理命令
└── share # 架构无关数据
/var目录结构:
/var
├── cache # 应用程序缓存数据
├── lib # 状态信息
├── log # 日志文件
├── mail # 用户邮箱
├── run # 运行时的进程信息
└── spool # 等待处理的队列数据
# 查看磁盘和分区信息
fdisk -l
lsblk
# 查看文件系统使用情况
df -h
du -sh [目录]
# 挂载/卸载文件系统
mount /dev/sda1 /mnt/data
umount /mnt/data
# 自动挂载配置
vim /etc/fstab
# 创建ext4文件系统
mkfs.ext4 /dev/sdb1
# 检查并修复文件系统
fsck /dev/sda1
# 调整文件系统大小
resize2fs /dev/sda2
# 权限示例
-rw-r--r-- 1 user group 1024 Jan 1 10:00 file.txt
drwxr-xr-x 2 user group 4096 Jan 1 10:00 dir/
# 修改权限
chmod 755 file.sh
chmod u+x,g-w,o-r file.sh
# 修改所有者
chown user:group file.txt
chmod u+s /usr/bin/passwd # 设置SUID
chmod g+s /shared/dir # 设置SGID
chmod +t /tmp # 设置Sticky bit
硬链接:直接指向inode,不能跨文件系统
ln source.txt hardlink.txt
软链接(符号链接):包含路径引用,可以跨文件系统
ln -s source.txt symlink.txt
bash
ls -i file.txt
stat file.txt
# 设置扩展属性
setfattr -n user.comment -v "Important file" file.txt
# 查看扩展属性
getfattr file.txt
根据用途选择合适文件系统:
合理设置挂载选项:
# /etc/fstab示例
/dev/sda1 /data ext4 defaults,noatime,nodiratime 0 2
定期维护:
# 检查磁盘错误
fsck -f /dev/sda1
# 整理碎片(ext4通常不需要)
e4defrag /mnt/data
Linux文件系统架构设计精巧且灵活,理解其结构和原理对于系统管理和故障排查至关重要。掌握这些知识可以帮助你更高效地使用和维护Linux系统。