概述
本文接着上一篇文章,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/filesystems
Linux 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
列出文件所占空间
du
du
命令用于递归地统计文件(或目录)的磁盘空间使用情况。
使用方式
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等参数
blkid
UUID 全局唯一的标识符
列出分区表类型和分区信息
parted -l # 打印分区表信息
通知内核分区表被更改
partprobe
当我们更改分区表后,都需要重启,但是使用此命令会通知内核,重新加载分区表。
查看内核分区表信息
cat /etc/partitions
其他命令工具
创建分区和创建文件系统工具
MBR:fdisk
来创建文件系统
GPT:gfisk
来创建分区
或者使用parted进行分区
使用的mkfs
系列命令来创建文件系统
系统的挂载和卸载:mount /umount
启动挂载
自动挂载方式
我们使用的mount挂载命令,实际上修改的mtab
和/proc/mounts
这两个文件中,但是当文件重启以后,我们会发现文件系统没有被自动挂载
修改fstab 配置启动配置文件,使得文件系统被自动挂载
这里也很简单,我们修改对饮的fstab
表 即可!
cat /etc/fstab
具体的命令使用,请用用户参考实践用法。
0 评论