简介

Linux 磁盘管理好坏直接关系到整个系统的性能问题。

Linux 磁盘管理常用命令为 dfdu

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

查看磁盘占用

df

检查文件系统的磁盘空间占用情况。

可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法

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

参数

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

示例

  1. 将系统内所有的文件系统列出来。

在 Linux 底下如果 df 没有加任何选项,那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来。

  1. [root@sail ~]# df

  2. Filesystem 1K-blocks Used Available Use% Mounted on

  3. /dev/vda1 61791304 2029212 57019704 4% /

  4. devtmpfs 877748 0 877748 0% /dev

  5. tmpfs 888200 0 888200 0% /dev/shm

  6. tmpfs 888200 432 887768 1% /run

  7. tmpfs 888200 0 888200 0% /sys/fs/cgroup

  8. tmpfs 177644 0 177644 0% /run/user/0

  9. 将容量结果以易读的容量格式显示出来

  10. [root@sail ~]# df -h

  11. Filesystem Size Used Avail Use% Mounted on

  12. /dev/vda1 59G 2.0G 55G 4% /

  13. devtmpfs 858M 0 858M 0% /dev

  14. tmpfs 868M 0 868M 0% /dev/shm

  15. tmpfs 868M 432K 867M 1% /run

  16. tmpfs 868M 0 868M 0% /sys/fs/cgroup

  17. tmpfs 174M 0 174M 0% /run/user/0

  18. 将系统内的所有特殊文件格式及名称都列出来

  19. [root@sail ~]# df -aT

  20. Filesystem Type 1K-blocks Used Available Use% Mounted on

  21. rootfs - - - - - /

  22. sysfs sysfs 0 0 0 - /sys

  23. proc proc 0 0 0 - /proc

  24. devtmpfs devtmpfs 877748 0 877748 0% /dev

  25. securityfs securityfs 0 0 0 - /sys/kernel/security

  26. tmpfs tmpfs 888200 0 888200 0% /dev/shm

  27. devpts devpts 0 0 0 - /dev/pts

  28. tmpfs tmpfs 888200 432 887768 1% /run

  29. tmpfs tmpfs 888200 0 888200 0% /sys/fs/cgroup

  30. cgroup cgroup 0 0 0 - /sys/fs/cgroup/systemd

  31. pstore pstore 0 0 0 - /sys/fs/pstore

  32. cgroup cgroup 0 0 0 - /sys/fs/cgroup/memory

  33. cgroup cgroup 0 0 0 - /sys/fs/cgroup/cpu,cpuacct

  34. cgroup cgroup 0 0 0 - /sys/fs/cgroup/net_cls,net_prio

  35. cgroup cgroup 0 0 0 - /sys/fs/cgroup/devices

  36. cgroup cgroup 0 0 0 - /sys/fs/cgroup/blkio

  37. cgroup cgroup 0 0 0 - /sys/fs/cgroup/freezer

  38. cgroup cgroup 0 0 0 - /sys/fs/cgroup/cpuset

  39. cgroup cgroup 0 0 0 - /sys/fs/cgroup/perf_event

  40. cgroup cgroup 0 0 0 - /sys/fs/cgroup/pids

  41. cgroup cgroup 0 0 0 - /sys/fs/cgroup/hugetlb

  42. configfs configfs 0 0 0 - /sys/kernel/config

  43. /dev/vda1 ext4 61791304 2029228 57019688 4% /

  44. hugetlbfs hugetlbfs 0 0 0 - /dev/hugepages

  45. mqueue mqueue 0 0 0 - /dev/mqueue

  46. debugfs debugfs 0 0 0 - /sys/kernel/debug

  47. systemd-1 autofs 0 0 0 - /proc/sys/fs/binfmt_misc

  48. tmpfs tmpfs 177644 0 177644 0% /run/user/0

  49. 将 /etc 底下的可用的磁盘容量以易读的容量格式显示

  50. [root@sail ~]# df -h /etc

  51. Filesystem Size Used Avail Use% Mounted on

  52. /dev/vda1 59G 2.0G 55G 4% /

du

也是查看使用空间的,但是与 df 命令不同的是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。

语法

  1. du [-ahskm] 文件或目录名称

参数

  • -a:列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
  • -h:以人们较易读的容量格式 (G/M) 显示。
  • -s:列出总量而已,而不列出每个各别的目录占用容量。
  • -S:不包括子目录下的总计,与 -s 有点差别。
  • -k:以 KBytes 列出容量显示。
  • -m:以 MBytes 列出容量显示。

示例

  1. 只列出当前目录下的所有文件夹容量(包括隐藏文件夹)。

直接输入 du 没有加任何选项时,则 du 会分析当前所在目录的文件与目录所占用的硬盘空间。

  1. [root@sail ~]# du
  2. 8 ./.pip
  3. 12 ./.cache/pip/wheels/06/6d/c4/d1fba0de1630fc6d1f48b698ac9e2ec3aac470569e492f8492
  4. 16 ./.cache/pip/wheels/06/6d/c4
  5. 20 ./.cache/pip/wheels/06/6d
  6. 24 ./.cache/pip/wheels/06
  7. 192 ./.cache/pip/wheels/30/92/1b/72d4f934de9bb23f32ec92236df2256da67ba4de3483c634c7
  8. 196 ./.cache/pip/wheels/30/92/1b
  9. 200 ./.cache/pip/wheels/30/92
  10. 204 ./.cache/pip/wheels/30
  11. 52 ./.cache/pip/wheels/6d/a6/31/fbfd8613ea1839768e2e78f6ce34420730176733e084176c15
  12. 56 ./.cache/pip/wheels/6d/a6/31
  13. 60 ./.cache/pip/wheels/6d/a6
  14. 64 ./.cache/pip/wheels/6d
  15. 20 ./.cache/pip/wheels/ff/b5/f9/5329ae8063250ec6b2f2456b3c32a9eabc13a4d850d0a39f0d
  16. 24 ./.cache/pip/wheels/ff/b5/f9
  17. 28 ./.cache/pip/wheels/ff/b5
  18. 32 ./.cache/pip/wheels/ff
  19. 328 ./.cache/pip/wheels
  20. 336 ./.cache/pip
  21. 340 ./.cache
  22. 4 ./.ssh
  23. 388 .

前面的数字代表当前目录下占用的总量。

  1. 将文件的容量也列出来。

  2. [root@sail ~]# du -a

  3. 4 ./.viminfo

  4. 4 ./.pydistutils.cfg

  5. 4 ./.pip/pip.conf

  6. 8 ./.pip

  7. 4 ./.bash_history

  8. 4 ./.cache/pip/selfcheck.json

  9. 8 ./.cache/pip/wheels/06/6d/c4/d1fba0de1630fc6d1f48b698ac9e2ec3aac470569e492f8492/oauth-1.0.1-cp27-none-any.whl

  10. 12 ./.cache/pip/wheels/06/6d/c4/d1fba0de1630fc6d1f48b698ac9e2ec3aac470569e492f8492

  11. 16 ./.cache/pip/wheels/06/6d/c4

  12. 20 ./.cache/pip/wheels/06/6d

  13. 24 ./.cache/pip/wheels/06

  14. 188 ./.cache/pip/wheels/30/92/1b/72d4f934de9bb23f32ec92236df2256da67ba4de3483c634c7/Cheetah-2.4.4-cp27-cp27mu-linux_x86_64.whl

  15. 192 ./.cache/pip/wheels/30/92/1b/72d4f934de9bb23f32ec92236df2256da67ba4de3483c634c7

  16. 196 ./.cache/pip/wheels/30/92/1b

  17. 200 ./.cache/pip/wheels/30/92

  18. 204 ./.cache/pip/wheels/30

  19. 48 ./.cache/pip/wheels/6d/a6/31/fbfd8613ea1839768e2e78f6ce34420730176733e084176c15/PyYAML-5.1.1-cp27-cp27mu-linux_x86_64.whl

  20. 52 ./.cache/pip/wheels/6d/a6/31/fbfd8613ea1839768e2e78f6ce34420730176733e084176c15

  21. 56 ./.cache/pip/wheels/6d/a6/31

  22. 60 ./.cache/pip/wheels/6d/a6

  23. 64 ./.cache/pip/wheels/6d

  24. 16 ./.cache/pip/wheels/ff/b5/f9/5329ae8063250ec6b2f2456b3c32a9eabc13a4d850d0a39f0d/prettytable-0.7.2-cp27-none-any.whl

  25. 20 ./.cache/pip/wheels/ff/b5/f9/5329ae8063250ec6b2f2456b3c32a9eabc13a4d850d0a39f0d

  26. 24 ./.cache/pip/wheels/ff/b5/f9

  27. 28 ./.cache/pip/wheels/ff/b5

  28. 32 ./.cache/pip/wheels/ff

  29. 328 ./.cache/pip/wheels

  30. 336 ./.cache/pip

  31. 340 ./.cache

  32. 4 ./.bash_profile

  33. 4 ./.bash_logout

  34. 4 ./.tcshrc

  35. 0 ./.ssh/authorized_keys

  36. 4 ./.ssh

  37. 4 ./.bashrc

  38. 4 ./.cshrc

  39. 388 .

  40. 检查根目录底下每个目录所占用的容量。

  41. [root@sail ~]# du -sm /*

  42. 0 /bin

  43. 132 /boot

  44. 0 /dev

  45. 34 /etc

  46. 1 /home

  47. 0 /lib

  48. 0 /lib64

  49. 1 /lost+found

  50. 1 /media

  51. 1 /mnt

  52. 1 /opt

  53. du: cannot access ‘/proc/5267/task/5267/fd/4’: No such file or directory

  54. du: cannot access ‘/proc/5267/task/5267/fdinfo/4’: No such file or directory

  55. du: cannot access ‘/proc/5267/fd/4’: No such file or directory

  56. du: cannot access ‘/proc/5267/fdinfo/4’: No such file or directory

  57. 0 /proc

  58. 1 /root

  59. 1 /run

  60. 0 /sbin

  61. 1 /srv

  62. 0 /sys

  63. 1 /tmp

  64. 1588 /usr

  65. 178 /var

通配符 * 来代表每个目录。

系统初期一般最大的为 /usr

df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。

磁盘挂载与卸载

根文件系统之外的其他文件要想能够被访问,都必须通过关联至根文件系统上的某个目录来实现,此关联操作即为挂载,此目录即为挂载点,解除此关联关系的过程称之为卸载

mount

磁盘挂载使用 mount 命令。

语法

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

示例

/dev/hdc6 挂载到 /mnt/hdc6 上面

  1. [root@sail ~]# mkdir /mnt/hdc6
  2. [root@sail ~]# mount /dev/hdc6 /mnt/hdc6
  3. [root@sail ~]# df
  4. Filesystem 1K-blocks Used Available Use% Mounted on
  5. /dev/hdc6 1976312 42072 1833836 3% /mnt/hdc6

umount

磁盘卸载使用 umount 命令。

语法

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

参数

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

示例

卸载 /dev/hdc6

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