概述
本文接着上一篇文章,ext2文件系统的分析,概述了其他类别文件系统,以及描述了文件系统常见的命令。
其他文件系统
传统文件系统:ext2、minix、FAT等
日志类文件系统:ext3/4、NTFS(windows)、JFS(IBM)、 XFS(SGI)、ZFS
网络文件系统:NFS、SMBFS
查看Linux 支持的文件系统
Linux 支持的文件系统
ls -l /lib/modules/$(uname -r)/kernel/fs/Linux 加载到内存的文件系统
cat /proc/filesystemsLinux VFS
Linux 中使用VFS来管理所有的文件系统
文件系统的操作
列出磁盘使用率
df 这是 df 命令的帮助信息,它描述了 df 命令的用法和选项。根据这些选项,它提供有关文件系统的信息。
df 命令用于显示每个文件所在文件系统的磁盘空间使用情况,或默认情况下显示所有文件系统的空间信息。
df 命令的选项包括:
-a, --all: 包括虚拟文件系统
-B, --block-size=SIZE: 按 SIZE 缩放大小后显示。例如,-BM 以 1,048,576 字节为单位显示大小。
-h, --human-readable: 以人类可读的格式显示大小(如 1K、234M、2G)
-H, --si: 同样显示大小,但使用 1000 的幂而不是 1024
-i, --inodes: 列出 inode 信息而不是块使用情况
-k: 等同于 --block-size=1K
-l, --local: 限制列表到本地文件系统
--no-sync: 获取使用信息之前不调用同步(默认)
--output[=FIELD_LIST]: 使用由 FIELD_LIST 定义的输出格式,如果省略 FIELD_LIST,则打印所有字段
-P, --portability: 使用 POSIX 输出格式
--sync: 获取使用信息之前调用同步
--total: 省略对可用空间无关的所有条目,并生成总计
-t, --type=TYPE: 限制列表到指定类型的文件系统
-T, --print-type: 打印文件系统类型
-x, --exclude-type=TYPE: 限制列表到非指定类型的文件系统
--help: 显示帮助信息并退出
--version: 输出版本信息并退出
显示的值采用 --block-size、DF_BLOCK_SIZE、BLOCK_SIZE 和 BLOCKSIZE 环境变量中首先可用的 SIZE 为单位。如果这些环境变量都没有设置,则默认单位为 1024 字节(如果设置了 POSIXLY_CORRECT,则为 512 字节)。
SIZE 是一个整数,可选的单位(例如:10M 表示 1010241024)。单位包括 K、M、G、T、P、E、Z、Y(1024 的幂)或 KB、MB 等(1000 的幂)。
FIELD_LIST 是一个逗号分隔的列列表,用于包含在输出中。有效的字段名包括:'source'、'fstype'、'itotal'、'iused'、'iavail'、'ipcent'、'size'、'used'、'avail'、'pcent' 和 'target'。
如果需要更多详细信息,可以运行命令 info coreutils 'df invocation' 查看完整文档。报告 df 的错误可以发送至 bug-coreutils@gnu.org,或访问 GNU coreutils 主页获取更多帮助:http://www.gnu.org/software/coreutils/
常见用法
df -ah 列出文件所占空间
dudu 命令用于递归地统计文件(或目录)的磁盘空间使用情况。
使用方式
du [OPTION]... [FILE]...: 统计每个文件的磁盘空间使用情况,对目录进行递归处理。
选项
-0, --null: 每行末尾以 0 字节而不是换行符结束。
-a, --all: 显示所有文件的计数,而不仅仅是目录。
--apparent-size: 打印表面大小而不是磁盘使用情况;虽然表面大小通常更小,但可能由于文件中的空洞、内部碎片、间接块等而更大。
-B, --block-size=SIZE: 在打印之前按 SIZE 缩放大小。例如,-BM 以 1,048,576 字节为单位显示大小。
-b, --bytes: 等同于 --apparent-size --block-size=1。
-c, --total: 显示总计。
-D, --dereference-args: 仅解引用列出在命令行上的符号链接。
-d, --max-depth=N: 仅在目录的 N 级或更少级别下显示总计;--max-depth=0 与 --summarize 相同。
--files0-from=F: 对文件 F 中指定的以 NUL 结尾的文件名进行磁盘使用情况汇总。
-H: 等同于 --dereference-args (-D)。
-h, --human-readable: 以人类可读的格式显示大小(例如,1K、234M、2G)。
-k: 等同于 --block-size=1K。
-L, --dereference: 解引用所有符号链接。
-l, --count-links: 如果硬链接,则多次计算大小。
-m: 等同于 --block-size=1M。
-P, --no-dereference: 不跟随任何符号链接(默认)。
-S, --separate-dirs: 不包括子目录的大小。
--si: 类似于 -h,但使用 1000 的幂而不是 1024。
-s, --summarize: 仅显示每个参数的总计。
-t, --threshold=SIZE: 排除小于正数 SIZE 的条目,或大于负数 SIZE 的条目。
--time: 显示目录中任何文件的最后修改时间,或其子目录中任何文件的最后修改时间。
--time=WORD: 以 WORD 而不是修改时间显示时间:atime、access、use、ctime 或 status。
--time-style=STYLE: 使用 STYLE 显示时间:full-iso、long-iso、iso、+FORMAT(FORMAT 解释类似于 'date')。
-X, --exclude-from=FILE: 排除与 FILE 中的任何模式匹配的文件。
--exclude=PATTERN: 排除与模式 PATTERN 匹配的文件。
-x, --one-file-system: 跳过位于不同文件系统上的目录。
--help: 显示帮助信息并退出。
--version: 输出版本信息并退出。
单位显示
显示的值采用 --block-size、DU_BLOCK_SIZE、BLOCK_SIZE 和 BLOCKSIZE 环境变量中首先可用的 SIZE 为单位。如果这些环境变量都没有设置,则默认单位为 1024 字节(如果设置了 POSIXLY_CORRECT,则为 512 字节)。
SIZE 是一个整数,可选的单位(例如:10M 表示 1010241024)。单位包括 K、M、G、T、P、E、Z、Y(1024 的幂)或 KB、MB 等(1000 的幂)。
报告问题
报告 du 的问题至 bug-coreutils@gnu.org,或访问 GNU coreutils 主页获取帮助:http://www.gnu.org/software/coreutils/。若需完整文档,运行命令 info coreutils 'du invocation'。
du -ah|sort -rh |head -n N # 按照文件大小展示N行
du -sh # 展示当前文件的总和链接
ln硬链接:硬链接的本质是在目录下添加一个文件名,链接到已有的inode号码。因此:不能链接目录
软链接: 建立新文件,文件内容指向已有的文件名(注意不是iNode)
ln 命令用于创建链接到文件或目录的连接。以下是 ln 命令的用法和选项:
使用方式
ln [OPTION]... [-T] TARGET LINK_NAME: 创建名为 LINK_NAME 的链接到 TARGET。
ln [OPTION]... TARGET: 在当前目录创建名为 TARGET 的链接。
ln [OPTION]... TARGET... DIRECTORY: 在 DIRECTORY 中为每个 TARGET 创建链接。
ln [OPTION]... -t DIRECTORY TARGET...: 在 DIRECTORY 中为每个 TARGET 创建链接。
选项
--backup[=CONTROL]: 对每个现有目标文件创建备份。
-b: 类似于 --backup,但不接受参数。
-d, -F, --directory: 允许超级用户尝试硬链接目录。
-f, --force: 移除现有目标文件。
-i, --interactive: 提示是否移除目标。
-L, --logical: 解引用作为符号链接的 TARGET。
-n, --no-dereference: 如果 LINK_NAME 是指向目录的符号链接,则将其视为普通文件。
-P, --physical: 直接创建指向符号链接的硬链接。
-r, --relative: 相对于链接位置创建符号链接。
-s, --symbolic: 创建符号链接而不是硬链接。
-S, --suffix=SUFFIX: 覆盖通常的备份后缀。
-t DIRECTORY, --target-directory=DIRECTORY: 指定创建链接的目录。
-T, --no-target-directory: 将 LINK_NAME 视为始终是一个普通文件。
-v, --verbose: 打印每个链接文件的名称。
--help: 显示帮助信息并退出。
--version: 输出版本信息并退出。
备份后缀
备份后缀默认为 ~,除非使用 --suffix 或 SIMPLE_BACKUP_SUFFIX 进行设置。可以通过 --backup 选项或 VERSION_CONTROL 环境变量来选择版本控制方法。
值
none, off: 从不进行备份(即使给出了 --backup)。
numbered, t: 进行编号备份。
existing, nil: 如果存在编号备份,则进行编号备份,否则进行简单备份。
simple, never: 总是进行简单备份。
使用 -s 会忽略 -L 和 -P。否则,指定的最后一个选项控制了当 TARGET 是符号链接时的行为,默认为 -P。
报告问题
报告 ln 的问题至 bug-coreutils@gnu.org,或访问 GNU coreutils 主页获取帮助:http://www.gnu.org/software/coreutils/。若需完整文档,运行命令 info coreutils 'ln invocation'。
常见用法
ln -sf [target] [目标文件] # 创建软连接,硬连接直接没有的s 即可,f表示force 连接如果存在则删除,重新创建列出所有磁盘列表
lsblk -a #输出基本信息
lsblk -o NAME,UUID,LABEL# 更具定制输出多行信息列出UUID等参数
blkidUUID 全局唯一的标识符
列出分区表类型和分区信息
parted -l # 打印分区表信息通知内核分区表被更改
partprobe当我们更改分区表后,都需要重启,但是使用此命令会通知内核,重新加载分区表。
查看内核分区表信息
cat /etc/partitions其他命令工具
创建分区和创建文件系统工具
MBR:fdisk 来创建文件系统
GPT:gfisk来创建分区
或者使用parted进行分区
使用的mkfs系列命令来创建文件系统
系统的挂载和卸载:mount /umount启动挂载
自动挂载方式
我们使用的mount挂载命令,实际上修改的mtab和/proc/mounts这两个文件中,但是当文件重启以后,我们会发现文件系统没有被自动挂载
修改fstab 配置启动配置文件,使得文件系统被自动挂载
这里也很简单,我们修改对饮的fstab 表 即可!
cat /etc/fstab具体的命令使用,请用用户参考实践用法。
Ahmedabad.webp)
