概述

Linux磁盘管理好坏直接关系到整个系统的性能问题。
Linux磁盘管理常用命令为 df、du。

  • df :列出文件系统的整体磁盘使用量
  • du:检查磁盘空间使用量

df

df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:

  1. df [-ahikHTm] [目录或文件名]

选项与参数:

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
  • -k :以 KBytes 的容量显示各文件系统;
  • -m :以 MBytes 的容量显示各文件系统;
  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
  • -H :以 M=1000K 取代 M=1024K 的进位方式;
  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
  • -i :不用硬盘容量,而以 inode 的数量来显示

测试:

  1. # 将系统内所有的文件系统列出来!
  2. # 在 Linux 底下如果 df 没有加任何选项
  3. # 那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来!
  4. [root@kuangshen /]# df
  5. Filesystem 1K-blocks Used Available Use% Mounted on
  6. devtmpfs 889100 0 889100 0% /dev
  7. tmpfs 899460 704 898756 1% /dev/shm
  8. tmpfs 899460 496 898964 1% /run
  9. tmpfs 899460 0 899460 0% /sys/fs/cgroup
  10. /dev/vda1 41152812 6586736 32662368 17% /
  11. tmpfs 179896 0 179896 0% /run/user/0
  1. # 将容量结果以易读的容量格式显示出来
  2. [root@kuangshen /]# df -h
  3. Filesystem Size Used Avail Use% Mounted on
  4. devtmpfs 869M 0 869M 0% /dev
  5. tmpfs 879M 708K 878M 1% /dev/shm
  6. tmpfs 879M 496K 878M 1% /run
  7. tmpfs 879M 0 879M 0% /sys/fs/cgroup
  8. /dev/vda1 40G 6.3G 32G 17% /
  9. tmpfs 176M 0 176M 0% /run/user/0
  1. # 将系统内的所有特殊文件格式及名称都列出来
  2. [root@kuangshen /]# df -aT
  3. Filesystem Type 1K-blocks Used Available Use% Mounted on
  4. sysfs sysfs 0 0 0 - /sys
  5. proc proc 0 0 0 - /proc
  6. devtmpfs devtmpfs 889100 0 889100 0% /dev
  7. securityfs securityfs 0 0 0 - /sys/kernel/security
  8. tmpfs tmpfs 899460 708 898752 1% /dev/shm
  9. devpts devpts 0 0 0 - /dev/pts
  10. tmpfs tmpfs 899460 496 898964 1% /run
  11. tmpfs tmpfs 899460 0 899460 0% /sys/fs/cgroup
  12. cgroup cgroup 0 0 0 - /sys/fs/cgroup/systemd
  13. pstore pstore 0 0 0 - /sys/fs/pstore
  14. cgroup cgroup 0 0 0 - /sys/fs/cgroup/freezer
  15. cgroup cgroup 0 0 0 - /sys/fs/cgroup/cpuset
  16. cgroup cgroup 0 0 0 - /sys/fs/cgroup/hugetlb
  17. cgroup cgroup 0 0 0 - /sys/fs/cgroup/blkio
  18. cgroup cgroup 0 0 0 - /sys/fs/cgroup/net_cls,net_prio
  19. cgroup cgroup 0 0 0 - /sys/fs/cgroup/memory
  20. cgroup cgroup 0 0 0 - /sys/fs/cgroup/pids
  21. cgroup cgroup 0 0 0 - /sys/fs/cgroup/cpu,cpuacct
  22. cgroup cgroup 0 0 0 - /sys/fs/cgroup/devices
  23. cgroup cgroup 0 0 0 - /sys/fs/cgroup/perf_event
  24. configfs configfs 0 0 0 - /sys/kernel/config
  25. /dev/vda1 ext4 41152812 6586748 32662356 17% /
  26. systemd-1 - - - - - /proc/sys/fs/binfmt_misc
  27. mqueue mqueue 0 0 0 - /dev/mqueue
  28. debugfs debugfs 0 0 0 - /sys/kernel/debug
  29. hugetlbfs hugetlbfs 0 0 0 - /dev/hugepages
  30. tmpfs tmpfs 179896 0 179896 0% /run/user/0
  31. binfmt_misc binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc
  1. # 将 /etc 底下的可用的磁盘容量以易读的容量格式显示
  2. [root@kuangshen /]# df -h /etc
  3. Filesystem Size Used Avail Use% Mounted on
  4. /dev/vda1 40G 6.3G 32G 17% /

du

Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍Linux du命令。
语法:

  1. du [-ahskm] 文件或目录名称
  1. du 参数
  2. -a或-all 显示目录中个别文件的大小。
  3. -b或-bytes 显示目录或文件大小时,以byte为单位。
  4. -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
  5. -D或--dereference-args 显示指定符号连接的源文件大小。
  6. -h或--human-readable KMG为单位,提高信息的可读性。
  7. -H或--si 与-h参数相同,但是KMG是以1000为换算单位。
  8. -k或--kilobytes 1024 bytes为单位。
  9. -l或--count-links 重复计算硬件连接的文件。
  10. -L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
  11. -m或--megabytes 1MB为单位。
  12. -s或--summarize 仅显示总计。
  13. -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
  14. -x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
  15. -X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
  16. --exclude=<目录或文件> 略过指定的目录或文件。
  17. --max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
  18. --help 显示帮助。
  19. --version 显示版本信息。

测试:

  1. # 只列出当前目录下的所有文件夹容量(包括隐藏文件夹):
  2. # 直接输入 du 没有加任何选项时,则 du 会分析当前所在目录的文件与目录所占用的硬盘空间。
  3. [root@kuangshen home]# du
  4. 16./redis
  5. 8./www/.oracle_jre_usage # 包括隐藏文件的目录
  6. 24./www
  7. 48. # 这个目录(.)所占用的总量
  1. # 将文件的容量也列出来
  2. [root@kuangshen home]# du -a
  3. 4./redis/.bash_profile
  4. 4./redis/.bash_logout
  5. ....中间省略....
  6. 4./kuangstudy.txt # 有文件的列表了
  7. 48.
  1. # 检查根目录底下每个目录所占用的容量
  2. [root@kuangshen home]# du -sm /*
  3. 0/bin
  4. 146/boot
  5. .....中间省略....
  6. 0/proc
  7. .....中间省略....
  8. 1/tmp
  9. 3026/usr # 系统初期最大就是他了啦!
  10. 513/var
  11. 2666/www

通配符 * 来代表每个目录。
与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。

磁盘挂载与卸除

根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载”
Linux 的磁盘挂载使用mount命令,卸载使用umount命令。
磁盘挂载语法:

  1. mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点

测试:

  1. # 将 /dev/hdc6 挂载到 /mnt/hdc6 上面!
  2. [root@www ~]# mkdir /mnt/hdc6
  3. [root@www ~]# mount /dev/hdc6 /mnt/hdc6
  4. [root@www ~]# df
  5. Filesystem 1K-blocks Used Available Use% Mounted on
  6. /dev/hdc6 1976312 42072 1833836 3% /mnt/hdc6

磁盘卸载命令 umount 语法:

  1. umount [-fn] 装置文件名或挂载点

选项与参数:

  • -f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
  • -n :不升级 /etc/mtab 情况下卸除。

卸载/dev/hdc6

  1. [root@www ~]# umount /dev/hdc6