Linux文件系统概述

Unix文件是以字节序列组成的信息载体(container),内核不解释文件的内容。

Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有系统的结构,所有Linux用户和程序看到的文件、目录、软链接及文件保护信息等都存储在其中。

Linux最早的文件系统是Minux,但是专门为Linux设计的文件系统---扩展文件系统第二版(EXT2)被设计 出来并添加到Linux中,这对Linux产生了重大影响。

Linux常用的文件系统

  • ext2:ext2的升级版本ext3是Linux默认的文件系统
  • swap:作为交换分区来使用,在安装Linux系统时必须要建立
  • vfat:兼容Windows操作系统,主要是FAT16、FAT32
  • NFS:网络文件系统,是Linux的独到之处,方便在局域网中实现文件的共享,可以实现多台主机共享一台主机的文件系统

硬链接和软链接

命令格式:

$ ln P1 P2

用来创建一个新的硬链接,即为由路径P1标识的文件创建一个路径名为P2的硬链接。

硬链接有两方面的限制

  • 不允许用户给目录创建硬链接。因为这可能把目录树变成环形树,从而就不可能通过名字定位一个文件。
  • 只有在同一文件系统中的文件之间才能创建链接。这带来比较大的限制,因为现代Unix系统中可能包含多种文件系统,这些文件系统位于不同的磁盘和/或分区,用户也无法知道它们之间的物理划分。

软链接(soft link)[也称符号链接(symbolic link)]

符号链接是短文件,这些文件包含有另一个文件的任意一个路径名。路径名可以指向位于任意一个文件系统的任意文件或目录,甚至可以指向一个不存在的文件。

命令格式:

$ ln -s P1 P2

创建一个路径名为P2的新软链接,P2指向路径名P1。

Linux目录结构

Linux的文件系统采用阶层式的树状目录结构,在该结构中的最上层是根目录“/”,然后再根目录下再建立其它的目录。

文件或目录名由除“/”和空字符“\0”之外的任意ASCII字符序列组成(一些操作系统允许以多种自负表示文件名,例如:Unicode)。大多数文件系统对文件名的长度都有限制,通常不能超过255个字符。

Linux中无论操作系统管理几个磁盘分区,这样的目录树只有一个。从结构上讲,个磁盘分区上的树型目录不一定是并列的。

常用目录的作用

  • / 根目录
  • /bin 命令保存目录(普通用户就可以读取的命令)
  • /boot 启动目录,启动相关文件
  • /dev 设备文件保存目录
  • /etc 配置文件保存目录
  • /home 普通用户的家目录
  • /lib 系统库保存目录
  • /mnt 系统挂载目录
  • /media 挂载目录
  • /root 超级用户的家目录
  • /tmp 临时目录
  • /sbin 命令保存目录(超级用户才能使用的目录)
  • /proc 直接写入内存的
  • /sys
  • /usr 系统软件资源目录

    /usr/bin 系统命令(普通用户)

    /usr/sbin 系统命令(超级用户)

    /usr/include:标准头文件

    /usr/src:内核源代码

  • /var 系统相关文档内容

根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令的。

proc和sys目录不能直接操作,这两个目录保存的是内存的过载点。

Linux文件类型

  • 普通文件:通常是流式文件。

    [[email protected] tmp]# ls -lh yan.test
    -rw-r--r-- 1 root root 13 Sep 22 15:05 yan.test
  • 目录文件:用于表示和管理系统中的全部文件
    [[email protected] tmp]# ls -lh
    drwxr-xr-x 2 root root 4.0K Sep 26 12:20 yanlei
  • 链接文件:用于不同目录下的文件的共享
    [[email protected] tmp]# ls -lh yan.softlink
    lrwxrwxrwx 1 root root 8 Sep 26 12:26 yan.softlink -> yan.test
  • 设备文件:包括块设备文件和字符设备文件

    b代表区块(block)设备,c代表字符(character)设备

    [[email protected] /]# ls -la /dev/tty
    crw-rw-rw- 1 root tty 5, 0 Sep 15 20:35 /dev/tty
  • 管道(pipe,FIFO)文件:提供进程间通信的一种方式
  • 套接字(socket)文件:该文件类型与网络通信有关
    [[email protected] /]# ls -lh /var/lib/mysql/mysql.sock
    srwxrwxrwx 1 mysql mysql 0 Sep 26 12:20 /var/lib/mysql/mysql.sock

文件描述符与索引节点

Unix对文件的内容和描述文件的信息给出了清楚的区分。除了设备文件和特殊文件系统文件外,每个文件都由字符序列组成。

文件系统处理文件需要的所有信息包含在一个名为索引节点(inode)的数据结构中。每个文件都有自己的索引节点,文件系统用索引节点来标识文件。

文件系统至少提供POSIX标准中指定的如下属性:

  • 文件类型
  • 与文件相关的硬链接个数
  • 以字节为单位的文件长度
  • 设备标识符
  • 在文件系统中表示文件的索引节点号
  • 文件拥有者的UID
  • 文件的用户组ID
  • 几个时间戳,表示索引节点状态的改变的时间、最后访问时间即最后修改时间
  • 访问权限和文件模式

访问权限和文件模式

文件的潜在用户分为三种类型

  • 作为文件所有者的用户
  • 同组用户,不包括所有者
  • 所有剩下的用户(其他)

有三种类型的访问权限---读、写、执行,每组用户都有这三种权限。

分区

在Windows操作系统中,是先将物理地址分开,再在分区上建立目录。在Windows操作系统中,所有路径都是从盘符开始,如C:\Program file。

Linux正好相反,是先有目录,再将物理地址映射到目录中。在Linux操作系统中,所有路径都是从根目录开始。Linux默认分为3个分区,分别是boot分区、swap分区和根分区。

挂载

Linux下的分区需要挂载到目录后才能使用,挂载的意义就是把磁盘分区的内容放在某个目录下。这个把目录和分区对应的过程叫做挂载(Mount)而这个挂载在文件树中的位置就是挂载点。

当要使用某个设备时,例如要读取硬盘中的一个格式化好的分区、光盘或软件等设备时,必须先把这些设备对应到某个目录上,而这个目录就称为“挂载点(mount point)”,这样才可以读取这些设备,将物理分区细节屏蔽掉,用户只有统一的逻辑概念,所有的东西都是文件。

参考资料:

深入理解Linux内核                Daniel P.Bovet & Marco Cesati

时间: 2024-10-11 10:24:18

Linux文件系统概述的相关文章

文件系统概述和EXT2文件系统

文件系统概述和EXT2文件系统 文件系统概述 常用的文件系统有windows98前的FAT.windows2000后的NTFS.linux的Ext2/3/4.SGI的XFS文件系统等 对于传统的文件系统而言,一个分区槽只能格式化为一个文件系统,但是目前由于LVM与软件磁盘阵列技术的出现,使一个分区可以对应多个文件系统,故以下关于文件系统的讨论都不表示针对一个分区了,只是介绍文件系统的特性. linux操作系统会将文件权限.文件属性存在inode中,一个文件对应一个inode,而文件的实际数据会被

Linux 文件权限总结

在 Linux 中最基本的任务之一就是设置文件权限.理解它们是如何实现的是你进入 Linux 世界的第一步.如您所料,这一基本操作在类 UNIX 操作系统中大同小异.实际上,Linux 文件权限系统就直接取自于 UNIX 文件权限(www.lampbrother.net). 但不要以为理解文件权限需要长时间的学习.事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们. 基础概念 你要明白的第一件事是文件权限可以用来干什么.当你设置一个分组的权限时发生了什么?让我们将其展开来说,这个

备忘-linux文件系统结构

用apache的时候总是要进入/var/www, 用久了开始好奇这些个目录都是派什么用处的,简单整理了一下 /bin 存放二进制命令文件,这个目录下面不允许存在子目录/boot bootloader的静态文件,当然OS的文件也必须在这里/dev 设备文件,MAKEDEV命令可以创建设备/etc 特定主机的配置文件,必须是静态文件,非可执行文件: opt, X11, sgml, xml/home 用户目录 /lib 存放主要的共享库和核心模块/media 可移除媒体的挂载点: floppy, cd

linux文件层级、目录、文件基本操作介绍

1.文件层级FHS介绍: Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件. FHS定义了系统中每个区域的用途.所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理. /:linux文件系统根目录 /bin:供所有用户使用的基本命令文件 /sbin:供系统管理员使用的工具程序文件 /lib:供/bin和/sbin程序调用的库文件程序,及系

Linux文件查找之find&locate

Linux文件查找之find&locate 一.概述 Linux系统核心的思想之一"一切皆文件",对于这么多的文件,如何快速查找过滤呢?下面我们就看看系统提供的文件查找命令find和locat,熟练使用find命令是运维人员的必经之路 二.find的用法及示例 1.find特点 查找速度略慢 精确查找 实时查找 只能搜索有读取和执行权限的目录 2.find用法 用法:find  [options]  [查找路径]  [ 查找条件]  [处理动作] 查找条件: 根据文件类型查找

(转)剖析Linux文件编码的查看及修改

Linux文件编码的查看和修改都有不止一种做法,如果你需要在Linux中操作windows下的文件,那么很可能会经常遇到文件编码转换的问题,如何进行这项工作,也应该是经常工作在双系统下的操作者的必须掌握的知识. Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8.下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换. 查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileen

Linux文件权限与目录管理

Linux文件系统的三种身份 文件所有者 同组用户 同一个用户组的用户可以访问该用户组的文件: 每个账号可以加入多个用户组. 在同一个用户组的文件也可以设置不同的权限,可以不让本组用户查看. 其他人 除了文件主.同组用户以外的人就是其他人. PS: /etc/passwd 记录所有用户的账号 /etc/shadow 记录所有用户的密码 /etc/group 记录所有的组名 文件属性 ls -al 显示所有的文件名和相关属性(包括以.开头的隐藏文件) total 72 drwxr-xr-x+ 28

linux 文件夹的颜色代表什么意思

linux 文件夹的颜色代表什么意思 绿色 蓝色 黑色代表什么意思 蓝色表示目录: 绿色表示可执行文件: 红色表示压缩文件: 浅蓝色表示链接文件: 灰色表示其它文件: 红色闪烁表示链接的文件有问题了: 黄色是设备文件,包括block, char, fifo. 用dircolors -p看到缺省的颜色设置,包括各种颜色和“粗体”,下划线,闪烁等定义. 在环境变量$LS_COLORS上修改就行

Linux文件与目录的权限(chown、chmod)

chown,即为change owner 如下图: hadoop-1.2.1.tar.gz原来的拥有者为hadoop用户,现将其拥有者修改为root: ======================================================================== chmod,即为change mode Linux文件或者目录共有10个属性: 首先是第一个属性,“横线”代表文件,“d”代表目录 剩余九个属性,分为三组,每组三个属性:读(r),写(w),执行(x).