存储管理
一、内存使用量,free
free
命令是一个用于显示系统中物理内存(RAM)和交换空间(swap)使用情况的工具
free -m
free -m -s 5
参数
-b
- 功能: 以字节(bytes)为单位显示内存使用情况。
- 说明: 这个选项适用于需要精确到字节的情况。
-k
- 功能: 以千字节(kilobytes,KB)为单位显示内存使用情况。
- 说明: 这是
free
命令的默认单位,适用于大多数情况。
-m
- 功能: 以兆字节(megabytes,MB)为单位显示内存使用情况。
- 说明: 适用于需要以更大的单位显示内存使用情况的情况。
-g
- 功能: 以千兆字节(gigabytes,GB)为单位显示内存使用情况。
- 说明: 适用于内存容量较大的系统,以更简洁的方式显示内存使用情况。
-h
- 功能: 以人类可读的格式显示内存使用情况,自动选择合适的单位(KB、MB、GB)。
- 说明: 这个选项会根据内存的实际大小自动选择最合适的单位,使输出更易于阅读。
-l
- 功能: 显示低内存(low memory)和高内存(high memory)的使用情况。
- 说明: 主要用于 32 位系统,现代 64 位系统通常不需要这个选项。低内存是指可以直接由内核管理的内存,高内存是指需要通过ZONE_HIGHMEM管理的内存。
-s <interval>
- 功能: 持续显示内存使用情况,每隔指定的时间间隔(秒)显示一次。
- 说明: 适用于需要实时监控内存使用情况的场景。
-t
- 功能: 在输出中添加一行总结,显示总内存、已用内存、空闲内存、共享内存、缓冲区和缓存。
- 说明: 这个选项会在输出的末尾添加一行总结,方便快速查看总体内存使用情况。
-o
- 功能: 不显示缓冲区和缓存的内存使用情况。
- 说明: 适用于只需要查看基本内存使用情况,而不关心缓冲区和缓存的情况。
-V
- 功能: 显示
free
命令的版本信息。 - 说明: 适用于需要检查
free
命令版本的情况。
结果解释 - 物理内存:
- 总量:3888 MB
- 已用:1108 MB
- 空闲:2327 MB
- 共享:12 MB
- 缓冲/缓存:685 MB
- 可用:2779 MB
- 交换空间:
- 总量:974 MB
- 已用:0 MB
- 空闲:974 MB
二、磁盘使用量,df
df
命令用于显示文件系统的磁盘空间使用情况
df
df -hT
- 显示文件系统的磁盘使用情况,并以人类可读的格式(自动选择合适的单位 KB、MB、GB)显示,同时显示每个文件系统的类型
参数
参数和free命令类似,没有-b(以字节为单位)参数,多了一些其他参数,比如-T(显示每个系统文件的类型)
-k
- 功能: 以千字节(1K 字节)为单位显示磁盘使用情况。
- 说明: 这是默认的单位,但明确指定
-k
可以确保输出单位一致。
-m
- 功能: 以兆字节(1M 字节)为单位显示磁盘使用情况。
- 说明: 适用于需要以更大的单位显示磁盘使用情况的情况。
-h
- 功能: 以人类可读的格式显示磁盘使用情况,自动选择合适的单位(KB、MB、GB)。
- 说明: 这个选项会根据磁盘的实际大小自动选择最合适的单位,使输出更易于阅读。
-B <size>
- 功能: 以指定的块大小显示磁盘使用情况。
- 说明:
<size>
可以是1
(字节)、1K
(千字节)、1M
(兆字节)等。
-T
- 功能: 在输出中添加一列,显示每个文件系统的类型(例如 ext4、xfs、btrfs 等)。
- 说明: 适用于需要查看文件系统类型的场景。
-P
- 功能: 以 POSIX 格式输出,不显示标题行。
- 说明: 适用于需要标准格式输出的脚本或自动化任务。
-a
- 功能: 显示所有文件系统,包括那些通常不显示的 dummy 文件系统。
- 说明: 适用于需要查看所有文件系统的详细信息的情况。
-x <filesystem_type>
- 功能: 排除指定类型的文件系统。
- 说明: 例如,排除
tmpfs
文件系统。
-t <filesystem_type>
- 功能: 只显示指定类型的文件系统。
- 说明: 例如,只显示
ext4
文件系统。
-l
- 功能: 只显示本地文件系统。
- 说明: 适用于需要区分本地和网络文件系统的情况。
-i
- 功能: 显示 inode 信息而不是块使用情况。
- 说明: 适用于需要查看文件系统中 inode 使用情况的情况。
-h --si
- 功能: 以人类可读的格式显示磁盘使用情况,使用 1000 为基数(而不是 1024)。
- 说明: 适用于需要符合国际单位制的情况。
-x <filesystem_type> -t <filesystem_type>
- 功能: 结合使用
-x
和-t
选项,可以同时排除和包含特定类型的文件系统。 - 说明: 例如,排除
tmpfs
文件系统,只显示ext4
文件系统。
三、文件或目录大小,du
du
命令用于显示文件和目录的磁盘使用情况。它可以递归地显示目录下每个文件和子目录的大小,也可以显示单个文件的大小。
sudo du ./* -hsc
参数
-k
- 功能: 以千字节(1K 字节)为单位显示磁盘使用情况。
- 说明: 这是默认的单位,但明确指定
-k
可以确保输出单位一致。
-m
- 功能: 以兆字节(1M 字节)为单位显示磁盘使用情况。
- 说明: 适用于需要以更大的单位显示磁盘使用情况的情况。
-h
- 功能: 以人类可读的格式显示磁盘使用情况,自动选择合适的单位(KB、MB、GB)。
- 说明: 这个选项会根据磁盘的实际大小自动选择最合适的单位,使输出更易于阅读。
-b
- 功能: 以字节为单位显示磁盘使用情况。
- 说明: 适用于需要精确到字节的情况。
-s
- 功能: 显示总和,不显示每个文件和子目录的详细信息。
- 说明: 适用于只需要知道总磁盘使用情况的情况。
-a
- 功能: 显示所有文件和目录,包括隐藏文件和目录。
- 说明: 适用于需要查看所有文件和目录的详细信息的情况。
-d <depth>
- 功能: 限制递归的深度。
- 说明:
<depth>
是一个整数,表示递归的层数。例如,-d 1
只显示当前目录下的子目录。
-S
- 功能: 显示每个目录的大小,不包括子目录的大小。
- 说明: 适用于需要单独查看每个目录的大小的情况。
-c
- 功能: 在输出中添加一行总结,显示总磁盘使用情况。
- 说明: 适用于需要查看总和的情况。
--exclude=<pattern>
- 功能: 排除匹配特定模式的文件或目录。
- 说明:
<pattern>
是一个通配符模式,例如*.log
会排除所有.log
文件。
-x
- 功能: 仅显示同一文件系统上的文件和目录。
- 说明: 适用于需要区分不同文件系统的情况。
-l
- 功能: 计算所有文件,即使它们有多个硬链接。
- 说明: 适用于需要准确计算所有文件大小的情况,即使有硬链接。
-H
- 功能: 以 1000 为基数(而不是 1024)显示人类可读的格式。
- 说明: 适用于需要符合国际单位制的情况。
-L
- 功能: 跟踪符号链接指向的文件。
- 说明: 适用于需要计算符号链接指向的文件的实际大小的情况。
-X <file>
- 功能: 从指定文件中读取排除模式。
- 说明:
<file>
是一个包含排除模式的文件,每行一个模式。
五、挂载分区,mount
mount
命令用于将文件系统(如硬盘分区、USB驱动器、网络文件系统等)挂载到指定的挂载点,使其可以被访问,一般需要root权限
mount 显示挂载信息
sudo mount <device> <mount_point>
sudo mount /dev/sdb1 /mnt/usb
sudo
: 以超级用户权限执行mount
命令。mount
: 将文件系统挂载到指定的挂载点。/dev/sdb1
: 要挂载的设备,通常是硬盘或USB驱动器的分区。/mnt/usb
: 挂载点,即设备将被挂载到的目录。
参数
-t <type>
- 功能: 指定文件系统的类型。
- 说明: 用于指定要挂载的文件系统的类型,例如
ext4
、ntfs
、vfat
等。
-o <options>
- 功能: 指定挂载选项。
- 说明: 用于指定挂载时的各种选项,常见的挂载选项包括:
ro
: 以只读方式挂载。rw
: 以读写方式挂载。noexec
: 不允许在挂载点上执行文件。nosuid
: 忽略文件的 setuid 和 setgid 位。nodev
: 不允许访问设备文件。sync
: 以同步方式写入数据。async
: 以异步方式写入数据。uid=<user_id>
: 指定文件系统的拥有者。gid=<group_id>
: 指定文件系统的所属组。umask=<mask>
: 设置文件系统的权限掩码。fmask=<mask>
: 设置文件的权限掩码。dmask=<mask>
: 设置目录的权限掩码。codepage=<codepage>
: 指定代码页(主要用于 FAT 文件系统)。iocharset=<charset>
: 指定字符集(主要用于 FAT 文件系统)。shortname=<mode>
: 设置短文件名模式(主要用于 FAT 文件系统)。utf8
: 使用 UTF-8 编码(主要用于 FAT 文件系统)。errors=<mode>
: 指定错误处理模式,例如errors=remount-ro
(出错时重新以只读方式挂载)。
-a
- 功能: 挂载
/etc/fstab
文件中定义的所有文件系统。 - 说明: 适用于需要一次性挂载所有配置文件中定义的文件系统的情况。
-v
- 功能: 显示详细信息。
- 说明: 适用于需要查看挂载过程中的详细信息的情况。
-r
- 功能: 以只读方式挂载文件系统。
- 说明: 等同于
-o ro
。
-w
- 功能: 以读写方式挂载文件系统。
- 说明: 等同于
-o rw
。
-L <label>
- 功能: 按标签挂载文件系统。
- 说明: 适用于需要按文件系统的标签(label)挂载的情况。
-U <uuid>
- 功能: 按 UUID 挂载文件系统。
- 说明: 适用于需要按文件系统的 UUID 挂载的情况。
-n
- 功能: 不使用
/etc/mtab
文件记录挂载信息。 - 说明: 适用于需要临时挂载且不希望记录到
/etc/mtab
的情况。
-R
- 功能: 递归挂载文件系统。
- 说明: 适用于需要递归挂载文件系统及其子文件系统的情况。
-i
- 功能: 不执行任何实际操作,仅显示将要执行的挂载命令。
- 说明: 适用于需要模拟挂载操作的情况。
-f
- 功能: 强制挂载,即使设备不可用也尝试挂载。
- 说明: 适用于需要强制挂载的情况。
-F <file>
- 功能: 从指定文件中读取挂载选项。
- 说明: 适用于需要从文件中读取挂载选项的情况。