悠悠楠杉
程序员必知的Linux目录结构与磁盘管理核心知识
一、Linux目录结构:不只是文件夹那么简单
当你第一次登录Linux服务器时,面对/bin、/etc、/var这些神秘目录,是否感到困惑?这些看似普通的文件夹背后,其实遵循着Filesystem Hierarchy Standard(FHS)标准,这是Linux世界的"交通规则"。
关键目录速览:
- /bin:存放所有用户都可用的基础命令(如ls、cp)
- /etc:系统配置文件"大本营"(SSH配置、环境变量都在这里)
- /var/log:系统日志的"档案馆"(tail -f /var/log/syslog实时查看)
- /home:用户的"私人领地"(注意权限设置!)
- /mnt & /media:临时挂载点的"停车场"
特别提示:/proc是虚拟文件系统,直接映射内存和进程信息,cat /proc/cpuinfo查看CPU信息比专用命令更底层。
二、磁盘管理的三个核心技能
1. 看懂磁盘拓扑(物理→逻辑)
运行lsblk -f你会看到类似这样的输出:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 c4f...3b7 /boot
└─sda2 LVM2_mem xyz...
├─vg-root xfs 123...def /
└─vg-swap swap abc...456 [SWAP]
这揭示了:
- 物理磁盘sda被划分为sda1、sda2两个分区
- sda2采用LVM逻辑卷管理,包含根分区和交换分区
- 不同分区使用不同的文件系统(ext4/xfs/swap)
2. 挂载的艺术(mount的深层逻辑)
当插入U盘时,系统实际执行了:bash
查看设备标识
sudo fdisk -l
创建挂载点
sudo mkdir -p /media/usb_drive
执行挂载
sudo mount /dev/sdb1 /media/usb_drive -t vfat -o rw,uid=1000
关键参数解析:
- -t vfat:指定FAT32文件系统类型
- -o uid=1000:让普通用户可直接访问(避免sudo烦恼)
3. 让挂载永久生效(/etc/fstab的陷阱)
编辑/etc/fstab时,一个错误的UUID可能导致系统无法启动!安全修改流程:bash
1. 先备份!
sudo cp /etc/fstab /etc/fstab.bak
2. 使用blkid获取准确UUID
sudo blkid /dev/sda1
3. 使用nano而非vim(防止意外修改)
sudo nano /etc/fstab
示例记录格式:
UUID=c4f...3b7 /boot ext4 defaults,noatime 0 2
各字段含义:设备标识→挂载点→文件系统→挂载选项→dump备份→fsck检查顺序
三、程序员必会的磁盘管理命令
1. 空间分析双雄
df -hT:人类可读的磁盘使用统计(注意-T显示文件系统类型)du -sh * | sort -h:当前目录大小排序(发现大文件的利器)
高阶技巧:bash
找出超过100MB的日志文件
find /var/log -type f -size +100M -exec ls -lh {} \;
2. 文件系统修复(当服务器突然断电后)
bash
先卸载(危险!确保无程序在访问)
umount /dev/sdb1
强制检查ext4文件系统
fsck -y /dev/sdb1
对于XFS系统(现代Linux的默认选择)
xfs_repair /dev/sdb1
四、避坑指南:血泪经验总结
- 慎用
rm -rf:在脚本中使用变量路径时,一定要先echo确认路径 - LVM的快照妙用:
lvcreate -s -n db_backup -L 10G /dev/vg/data可瞬间创建数据库的冻结镜像 - SSD优化:在
/etc/fstab中添加discard选项启用TRIM功能 - NFS挂载超时:加上
soft,intr选项防止进程卡死
结语:理解Linux的目录和磁盘管理,就像程序员了解内存模型一样重要。当你下次面对No space left on device报警时,希望这些知识能帮你快速定位是inode耗尽(df -i)还是真正的空间不足。记住:在Linux的世界里,一切皆文件,而掌握文件的艺术,就是掌握系统的钥匙。
