Appearance
第12章:磁盘管理
12.1 查看磁盘空间
df命令
- 功能:查看文件系统的磁盘空间使用情况
- 常用选项:
-h:人性化显示磁盘空间(以GB、MB等为单位)-T:显示文件系统类型-i:显示inode使用情况
- 示例:bash
$ df -h # 人性化显示磁盘空间 $ df -hT # 显示文件系统类型 $ df -i # 显示inode使用情况
输出解读
Filesystem:文件系统Size:总空间Used:已使用空间Avail:可用空间Use%:使用率Mounted on:挂载点
12.2 查看目录大小
du命令
- 功能:查看目录或文件的大小
- 常用选项:
-h:人性化显示大小-s:显示总大小-c:显示总计--max-depth:指定目录深度
- 示例:bash
$ du -h # 查看当前目录下所有文件和目录的大小 $ du -sh # 查看当前目录的总大小 $ du -h --max-depth=1 # 查看当前目录下一级目录的大小 $ du -h file.txt # 查看单个文件的大小
查找大文件
查找当前目录下大于100MB的文件:
bash$ find . -type f -size +100M -exec ls -lh {} \;查找系统中最大的10个文件:
bash$ find / -type f -exec ls -lh {} \; | sort -k5 -r | head -10
12.3 磁盘挂载与卸载
mount命令
- 功能:挂载文件系统
- 格式:
mount [选项] 设备 挂载点 - 常用选项:
-t:指定文件系统类型-o:指定挂载选项
- 示例:bash
$ sudo mount /dev/sdb1 /mnt # 挂载设备到/mnt目录 $ sudo mount -t ext4 /dev/sdb1 /mnt # 指定文件系统类型 $ sudo mount -o ro /dev/sdb1 /mnt # 只读挂载
umount命令
- 功能:卸载文件系统
- 格式:
umount 挂载点或umount 设备 - 示例:bash
$ sudo umount /mnt # 卸载/mnt挂载点 $ sudo umount /dev/sdb1 # 卸载设备
自动挂载
编辑
/etc/fstab文件,添加自动挂载项:bash$ sudo vim /etc/fstab示例配置:
/dev/sdb1 /mnt ext4 defaults 0 0配置格式:
设备 挂载点 文件系统类型 挂载选项 备份标记 检查顺序
挂载U盘或移动硬盘
查看设备:
bash$ sudo fdisk -l挂载设备:
bash$ sudo mount /dev/sdb1 /mnt/usb卸载设备:
bash$ sudo umount /mnt/usb
12.4 磁盘空间不足的解决方法
删除无用文件
删除临时文件:
bash$ sudo rm -rf /tmp/* $ sudo rm -rf /var/tmp/*删除旧日志文件:
bash$ sudo find /var/log -name "*.log.*" -delete清理包管理器缓存:
- Ubuntu/Debian:bash
$ sudo apt clean $ sudo apt autoclean - CentOS/RHEL:bash
$ sudo yum clean all
- Ubuntu/Debian:
清理缓存
清理系统缓存:
bash$ sudo sync $ sudo echo 3 > /proc/sys/vm/drop_caches清理用户缓存:
bash$ rm -rf ~/.cache/*
查找大目录
查找系统中最大的目录:
bash$ du -h --max-depth=1 / | sort -hr查找用户目录中最大的文件和目录:
bash$ du -h --max-depth=2 ~/ | sort -hr | head -20
扩展磁盘空间
如果使用LVM(逻辑卷管理),可以扩展逻辑卷:
bash$ sudo lvextend -L +10G /dev/mapper/ubuntu--vg-ubuntu--lv $ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv对于云服务器,可以通过云控制台扩展磁盘,然后扩展文件系统:
bash$ sudo growpart /dev/sda 1 $ sudo resize2fs /dev/sda1
实战练习:磁盘管理
查看磁盘空间使用情况:
bash$ df -h查看当前目录的大小:
bash$ du -sh查看当前目录下一级目录的大小:
bash$ du -h --max-depth=1查找当前目录下大于50MB的文件:
bash$ find . -type f -size +50M -exec ls -lh {} \;清理系统临时文件:
bash$ sudo rm -rf /tmp/*清理包管理器缓存:
- Ubuntu/Debian:bash
$ sudo apt clean - CentOS/RHEL:bash
$ sudo yum clean all
- Ubuntu/Debian:
查看系统中最大的10个文件:
bash$ find / -type f -exec ls -lh {} \; 2>/dev/null | sort -k5 -r | head -10模拟挂载操作:
bash$ mkdir -p ~/test-mount $ sudo mount --bind ~/Documents ~/test-mount $ ls ~/test-mount $ sudo umount ~/test-mount
通过学习磁盘管理,你将能够监控磁盘空间使用情况,及时清理无用文件,确保系统有足够的磁盘空间运行,避免因磁盘空间不足导致的系统问题。
