当前位置: 首页 > news >正文

Linux 文件系统核心概念

1. Linux 文件系统核心概念

1.1 什么是文件系统?

文件系统是操作系统用于 组织、存储和管理文件及目录 的机制,负责:

  • 文件的命名、存储位置和访问方式。

  • 数据的持久化存储和检索。

  • 权限控制和元数据(如创建时间、所有者等)管理。

1.2 Linux 文件系统特点

  • 一切皆文件:设备、管道、目录等均以文件形式抽象。

  • 树形结构:从根目录 / 开始,分层组织文件和目录。

  • 区分大小写File.txt 和 file.txt 是两个不同的文件。

  • 挂载机制:通过挂载(mount)将不同设备或分区接入文件树。


2. Linux 目录结构(FHS 标准)

Linux 遵循 Filesystem Hierarchy Standard (FHS),核心目录及其作用如下:

目录用途
/根目录,所有目录和文件的起点。
/bin存放基础命令(如 lscpbash),所有用户可用。
/sbin存放系统管理命令(如 fdiskiptables),需 root 权限。
/etc系统配置文件(如网络配置、用户账户)。
/home普通用户的家目录,每个用户拥有独立子目录(如 /home/alice)。
/rootroot 用户的家目录
/usr用户程序资源(如软件安装目录 /usr/bin, 库文件 /usr/lib)。
/var可变数据(如日志 /var/log, 邮件 /var/mail)。
/tmp临时文件,系统重启后可能清除。
/dev设备文件(如硬盘 /dev/sda, 终端 /dev/tty)。
/proc虚拟文件系统,提供进程和内核信息的接口(如 /proc/cpuinfo)。
/mnt临时挂载点(如手动挂载U盘或网络存储)。
/boot启动文件(如内核 vmlinuz, 引导加载程序 grub)。
/lib系统库文件(如动态链接库 .so 文件)。

3. Linux 文件类型

Linux 文件类型通过 ls -l 的第一个字符标识:

类型标识符示例说明
普通文件-file.txt文本、二进制、压缩包等。
目录d/home包含其他文件或目录。
符号链接llink -> /path/to/file指向另一个文件的快捷方式。
块设备b/dev/sda硬盘等块存储设备(按块读写)。
字符设备c/dev/tty终端等字符设备(按字节读写)。
管道pnamed_pipe进程间通信(FIFO)。
套接字s/var/run/docker.sock网络通信接口文件。

4. 文件权限与所有权

4.1 权限模型

  • 用户类别:所有者(u)、所属组(g)、其他用户(o)。

  • 权限类型:读(r)、写(w)、执行(x)。

通过 ls -l 查看权限:

-rwxr-xr-- 1 alice developers 4096 Jun 10 10:00 script.sh
  • -rwxr-xr--:所有者可读/写/执行,组可读/执行,其他用户仅可读。

  • alice:文件所有者。

  • developers:所属组。

4.2 修改权限

# 数字模式(755 = rwxr-xr-x)
chmod 755 script.sh# 符号模式(给所有者添加执行权限)
chmod u+x script.sh# 修改所有者
chown alice:developers script.sh

5. 文件系统存储机制

5.1 Inode 和 Block

  • Inode:存储文件的元数据(权限、大小、位置等),唯一标识一个文件。

  • Block:实际存储文件数据的磁盘块(通常 4KB)。

通过 stat 查看 Inode 信息:

stat file.txt

5.2 硬链接 vs 软链接

特性硬链接软链接(符号链接)
Inode与原文件相同新的 Inode
跨文件系统不支持支持
原文件删除后仍可访问失效(悬空链接)
创建命令ln file.txt hardlinkln -s file.txt softlink

6. 常用文件系统操作命令

6.1 查看磁盘和文件系统

# 查看磁盘空间
df -h# 查看目录占用空间
du -sh /path/to/dir# 列出挂载的文件系统
mount

6.2 文件查找与处理

# 按文件名查找
find / -name "*.log"# 按内容查找
grep "error" /var/log/syslog# 文件压缩与解压
tar -czvf archive.tar.gz /path/to/dir  # 压缩
tar -xzvf archive.tar.gz              # 解压

6.3 文件系统修复

# 检查并修复文件系统(需卸载)
fsck /dev/sda1

7. 主流文件系统类型

文件系统特点
ext4Linux 默认,日志式,支持大文件和分区。
XFS高性能,适合大文件(如数据库、视频)。
Btrfs支持写时复制(CoW)、快照、压缩等高级特性。
ZFS集成卷管理、数据校验、快照(需额外安装)。
NTFS/FATWindows 兼容(通过 ntfs-3g 驱动挂载)。

8. 关键场景示例

8.1 挂载新磁盘

# 查看磁盘列表
lsblk# 格式化磁盘为 ext4
mkfs.ext4 /dev/sdb1# 创建挂载点并挂载
mkdir /mnt/data
mount /dev/sdb1 /mnt/data# 开机自动挂载(编辑 /etc/fstab)
echo "/dev/sdb1 /mnt/data ext4 defaults 0 0" >> /etc/fstab

8.2 解决 "No space left on device"

  • 可能原因:Inode 耗尽(即使磁盘有空间)。

  • 检查命令

    df -i      # 查看 Inode 使用情况
    df -h      # 查看磁盘空间

掌握 Linux 文件系统是系统管理的核心基础,建议结合实际操作(如挂载磁盘、修改权限)加深理解。遇到具体问题时,可进一步查阅相关命令的手册(man command)。

http://www.xdnf.cn/news/1027081.html

相关文章:

  • Atlassian AI(Rovo)在不同场景中的实际应用:ITSM、HR服务、需求管理、配置管理
  • Git Switch 与 Git Restore 详解
  • yum查看历史操作
  • 高并发场景下接口安全实现方案:全方位构建防护体系
  • 重复的囚徒困境博弈中应该如何决策?--阿克塞尔罗德竞赛(Axelrod‘s Tournament)实验
  • Spring注解的深层含义
  • 人工智能 倒底是 智能 还是 智障?
  • OmoFun动漫官网,动漫共和国最新入口|网页版
  • java集合篇(七) ---- ArrayList 类
  • BeckHoff_FB --> F_SEQ_X3_TrigJob 函数
  • TCP客户端进程分割输入输出
  • 【Qt】工具介绍和信号与槽机制
  • SpringCloud2020-alibaba
  • DDD各种架构详细介绍
  • CLONE——面向长时任务的闭环全身遥操:其MoE架构可实现“蹲着走”,且通过LiDAR里程计和VR跟踪技术解决位置偏差问题
  • 【61 Pandas+Pyecharts | 基于Apriori算法及帕累托算法的超市销售数据分析可视化】
  • 力扣-279.完全平方数
  • 三维重建 —— 3. 单视几何
  • 国产用例管理工具评测:Gitee Test、禅道、蓝凌测试、TestOps 哪家更懂研发协同?
  • 全流程TOUGH系列软件实践技术应用
  • electron-builder打包配置(应用名、安装包、图标、快捷方式、自定义文件关联启动等)
  • Matlab的GUI编程之一
  • 【Android】EventBus详解
  • 基于Redis实现分布式锁
  • 安科瑞亮相2025 SNEC国际太阳能光伏与智慧能源展
  • 7N65-ASEMI智能照明领域专用7N65
  • onxxrunrime问题集锦
  • 黑色金属生产车间:DeviceNet到Modbus RTU网关的“无声桥梁”
  • 【DNS】在 Windows 下修改 `hosts` 文件
  • java哨兵底层原理