Linux文件系统的一些基本概念

Linux 文件系统简介

在 Linux 操作系统中,一切被操作系统管理的资源,如磁盘驱动器、打印机、普通文件或目录等,都被视为文件进行管理和访问。在Linux 系统中,“一切都是文件”。

Linux 系统可以通过统一的文件接口来管理和操作不同类型的资源。Linux可以使用类似于读写文件的方式来对待网络接口、磁盘驱动器等,使得操作和管理这些资源更加统一和简便

这种文件为中心的设计理念为 Linux 系统带来了灵活性和可扩展性

Linux中的存储单位

硬盘的最小存储单位是扇区(Sector),块(block)由多个扇区组成。文件数据存储在块中。块的最常见的大小是 4kb,约为 8 个连续的扇区组成(每个扇区存储 512 字节)。

为什么使用inode (索引节点:i(index)+node)

inode 是 Linux 文件系统的基础。

一个文件可能会占用多个块,但是一个块只能存放一个文件。我们将文件存储在了块(block)中后,每一块的地址,创建时间,权限等信息都需要被存储。所以还需要空间来存储文件的 元信息 metadata存储文件元信息的区域就叫 inode
每个文件都有一个唯一的 inode,存储文件的元信息。

inode的一些性质

inode 是一种固定大小的数据结构,它的大小在文件系统创建时就会确定,并且在文件的生命周期内保持不变

inode 的数量是有限的,每个文件系统只能包含固定数量的 inode。当文件系统中的 inode 用尽后,无法再创建新的文件,尽管磁盘可能还有空间。因此,在创建文件系统时,需要合理分配 inode 的数量

可以使用 stat 命令可以查看文件的 inode 信息,包括文件的 inode 号码、文件类型、权限、所有者、文件大小、修改时间。

使用inode的优点和缺点

优点:
安全性。即使文件名被修改或删除,文件的 inode 号码不会改变,从而可以避免一些因文件被移动或删除导致的错误。
性能高。因为 inode 的访问速度非常快,可以直接通过 inode号码定位到文件的元数据信息,无需遍历整个文件系统
缺点:
使用更加复杂。使用 inode 号码也使得文件系统在用户和应用程序层面更加抽象和复杂,需要通过系统命令或文件系统接口来访问和管理文件的 inode 信息。

硬链接和软链接

在Linux系统中,文件链接(File Link)是一种特殊的文件类型,可以在文件系统中指向另一个文件(文件链接也是文件)。常见的文件链接类型有两种:
硬链接(Hard Link)
在 Linux文件系统中,每个文件和目录都有一个唯一的索引节点(inode)号,用来标识该文件或目录。硬链接通过 inode节点号建立连接,硬链接和源文件的 inode节点号相同。删除其中任何一个对另外一个没有影响,可以通过给文件设置硬链接文件来防止重要文件被误删
只有删除了源文件和所有对应的硬链接文件,该文件才会被真正删除。

硬链接的一些限制:
不能对目录以及不存在的文件创建硬链接
硬链接也不能跨越文件系统

软链接(Symbolic Link)(软链接又名符号链接)

软链接和源文件的 inode 节点号不同,而是指向一个文件路径。
源文件删除后,软链接依然存在,但是指向的是一个无效的文件路径。(软连接类似于 Windows 系统中的快捷方式)

软链接与硬链接不同,他可以对目录或者不存在的文件创建,并且,软链接可以跨越文件系统。

如何创建软/硬链接

ln命令用于创建硬/软链接
ln [选项] <源文件> <硬链接/软链接文件>:创建硬链接/软链接。例如:ln -s file.txt file_link,创建名为 file_link 的软链接,指向 file.txt 文件。-s 选项代表创建软链接。s 即 symbolic 。

硬链接为什么不能跨文件系统?

硬链接是通过 inode 节点号建立连接的
然而,每个文件系统都有自己的独立 inode 表。如果在不同的文件系统之间创建硬链接,可能会导致 inode 节点号冲突的问题,即目标文件的 inode 节点号已经在该文件系统中被使用。

Linux 文件类型

Linux 支持很多文件类型: 普通文件目录文件链接文件设备文件管道文件Socket 套接字文件 等。

  • 普通文件(-):用于存储信息和数据。 Linux 用户可以根据访问权限对普通文件进行查看、更改和删除。例如:图片、PDF、text、视频、源代码等。
  • 目录文件(d,directory file):目录用于表示和管理系统中的文件,目录文件中包含一些文件名和子目录名。
  • 符号链接文件(l,symbolic link):保留了指向文件的地址而不是文件本身。
  • 字符设备(c,char):用来访问字符设备比如键盘。
  • 设备文件(b,block):用来访问块设备比如硬盘、软盘。
  • 管道文件(p,pipe) : 用于进程之间的通信
  • 套接字文件(s,socket):用于进程间的网络通信,也可以用于本机之间的非网络通信

常见目录以及说明

  • /bin: 存放二进制可执行文件(ls、cat、mkdir 等),常用命令一般都在这里;
  • /etc: 存放系统管理和配置文件;
  • /home: 存放所有用户文件的根目录,是用户主目录的基点,比如用户 user 的主目录就是/home/user,可以用~user 表示;
  • /usr: 用于存放系统级应用程序;
  • /opt: 额外安装的可选应用程序包所放置的位置。一般情况下,可以把 tomcat 等都安装到这里
  • /proc: 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息;
  • /root: 超级用户(系统管理员)的主目录;
  • /sbin: 存放二进制可执行文件,只有 root 才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如 ifconfig 等;
  • /dev: 用于存放设备文件;
  • /mnt: 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;
  • /boot: 存放用于系统引导时使用的各种文件;
  • /lib 和/lib64: 存放着和系统运行相关的库文件 ;
  • /tmp: 用于存放各种临时文件,是公用的临时文件存储点;
  • /var: 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件;
  • /lost+found:存放系统非正常关机后残存的文件。
  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值