网站建设中,中国大陆地区请使用VPN访问,欢迎提建议,关注LSKR Mastodon

Linux文件系统详解:常见文件系统概述与常见命令操作

概述了常见类别文件系统,以及描述了文件系统常见的命令,df磁盘使用率、du文件所占空间、ln创建链接、lsblk列出磁盘列表。
Estimated read time: 2 min

代表Linux的企鹅图标

概述

本文接着上一篇文章,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来管理所有的文件系统

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-sizeDF_BLOCK_SIZEBLOCK_SIZEBLOCKSIZE 环境变量中首先可用的 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-sizeDU_BLOCK_SIZEBLOCK_SIZEBLOCKSIZE 环境变量中首先可用的 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: 输出版本信息并退出。

备份后缀

备份后缀默认为 ~,除非使用 --suffixSIMPLE_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

具体的命令使用,请用用户参考实践用法。

发表评论

Cookie Consent
我们使用 Cookie 来了解您如何使用我们的网站并提升您的体验。这包括个性化内容和广告。
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.