Skip to content

第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盘或移动硬盘

  1. 查看设备:

    bash
    $ sudo fdisk -l
  2. 挂载设备:

    bash
    $ sudo mount /dev/sdb1 /mnt/usb
  3. 卸载设备:

    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

清理缓存

  • 清理系统缓存:

    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

实战练习:磁盘管理

  1. 查看磁盘空间使用情况:

    bash
    $ df -h
  2. 查看当前目录的大小:

    bash
    $ du -sh
  3. 查看当前目录下一级目录的大小:

    bash
    $ du -h --max-depth=1
  4. 查找当前目录下大于50MB的文件:

    bash
    $ find . -type f -size +50M -exec ls -lh {} \;
  5. 清理系统临时文件:

    bash
    $ sudo rm -rf /tmp/*
  6. 清理包管理器缓存:

    • Ubuntu/Debian:
      bash
      $ sudo apt clean
    • CentOS/RHEL:
      bash
      $ sudo yum clean all
  7. 查看系统中最大的10个文件:

    bash
    $ find / -type f -exec ls -lh {} \; 2>/dev/null | sort -k5 -r | head -10
  8. 模拟挂载操作:

    bash
    $ mkdir -p ~/test-mount
    $ sudo mount --bind ~/Documents ~/test-mount
    $ ls ~/test-mount
    $ sudo umount ~/test-mount

通过学习磁盘管理,你将能够监控磁盘空间使用情况,及时清理无用文件,确保系统有足够的磁盘空间运行,避免因磁盘空间不足导致的系统问题。

© 2026 编程马·菜鸟教程 版权所有