当使用Linux命令对文件进行操作时,就可访问存储在一个结构化环境中的信息。所有这些信息都存放在一个分层的结构中,可以方便且有条不紊地管理数据。重要的是,不仅应学会如何访问这些数据,而且应学会如何控制对信息的访问。对文件与目录进行管理和维护可能是每个用户最经常做的工作。

文件系统概念磁盘上的文件系统是层次结构的,由若干目录和其子目录组成,最上层的目录称为根(root)目录,用"/"表示。

1. 文件与目录的定义

文件系统:它是磁盘上有特定格式的一片区域,操作系统通过文件系统可以方便地查询和访问其中所包含的磁盘块。

文件:是指文件系统中存储数据的一个命名的对象。一个文件可以是空文件(即没有包含用户数据),但是它仍然为操作系统提供了其他信息。

目录:其中包含许多文件项目的一类特殊文件。目录支持文件系统的层次结构。文件系统中的每个文件都登记在一个(或多个)目录中。

子目录:被包含在另一个目录中的目录。包含子目录的目录称为父目录。除了root目录以外,所有的目录都是子目录,并且有它们的父目录。root目录就作为自己的父目录。

文件名:用来标志文件的字符串,它保存在一个目录文件项中。

路径名:由斜线(/)字符结合在一起的一个或多个文件名的集合。路径名指定一个文件在分层树形结构(即文件系统)中的位置。查看文件系统要使用一个参考点目录,它就称为当前工作目录。

用15命令可以列出当前工作目录中包含的文件和子目录的名字,这是默认方式。

文件名按照ASCH码顺序列出:以数字开头的文件名列在前面,然后是以大写字母开头的文件名,最后是以小写字母开头的文件名。

2. 文件结构文件是Linux操作系统处理信息的基本单位。所有软件都组织成文件。

文件的成分:无论文件是一个程序、一个文档、一个数据库,还是一个目录,操作系统都会赋予它如下所示的同样的结构。

①索引节点:又称为I节点,是在文件系统结构中,包含相应文件信息的一个记录,这些信息包括文件权限、文件主、文件大小等。

②数据:文件的实际内容,它可以是空的,也可以非常大,并且有自己的结构。

命名文件:文件名保存在目录文件中。Linux的文件名几乎可以由ASCⅡ字符的任意组合构成,文件名最长可多达255个字符(某些较老的文件系统类型把文件名长度限制为14个字符)。下面的惯例会使你更加方便地管理文件。

①文件名应尽量简单,并且应反映出文件的内容。文件名几乎没有必要超过14个字符。

②除斜线(/)和空字符(AS口I字符\0)以外,文件名可以包含任意的ASCⅡ字符,因为那两个字符被核心当做表示路径名的特殊字符来解释。

③习惯上允许使用下线符(_)和句点(.)来区别文件的类型,使文件名更易读,但是应避免使用以下字符,因为对系统的shen来说,它们有特殊的含义。这些字符是:

; | < > ` “ ‘ $ ! % & * ? \ ( ) [ ]

此外,文件名应避免使用空格、制表符或其他控制字符。

④同类文件应使用同样的后缀或扩展名。

⑤Linux系统区分文件名的大小写,如名为letter的文件与名为Letter的文件不是同一个文件。

⑥以圆点(.)开头的文件名是隐含文件,在默认方式下,使用15命令并不能把它们在屏幕上显示出来。

文件类型操作系统支持以下文件类型:普通文件、目录文件、设备文件及符号链接文件。

普通文件

普通文件也称为常规文件,包含各种长度的字符串。核心对这些数据没有进行结构化,只是作为有序的字符序列把它提交给应用程序。应用程序自己组织和解释这些数据,通常把它们归并为下述类型之一。

文本文件:它由ASCⅡ字符构成。例如,信件、报告和称为脚本(script)的命令文本文件,后者由shell解释执行。

数据文件:它由来自应用程序的数字型和文本型数据构成。例如,电子表格、数据库及字处理文档。

可执行的二进制程序:它由机器指令和数据构成,例如,已经学过的系统命令。命令文本文件也是可执行的。

可以使用file命令来确定指定文件的类型。该命令可以将任意多个文件名当做参数,其一般使用格式是:

file文件名【文件名…】

目录文件目录文件是一种特别文件,利用它可以构成文件系统的分层树状结构。如同普通文件那样,目录文件也包含数据,但目录文件与普通文件的差别是:核心对这些数据进行结构化处理,即它是由成对的“Ⅰ节点号/文件名”构成的列表。

(1)Ⅰ节点号是检索I节点表的下标,Ⅰ节点中存放有文件的状态信息。

(2)文件名是给一个文件分配的文本形式的字符串,用来标记该文件。在一个指定的目录中,任何两项都不能有同样的名字。

每个目录的第一项都表示目录本身,并以“点(.)”作为它的文件名。每个目录的第二项的名字是“点点(..)",表示该目录的父目录。

应记住,以“.”开头的文件名表示隐含文件,使用带-a选项的ls命令可以列出它们。

当把文件添加到一个目录中时,该目录的尺寸会增大,以便容纳新文件名。当删除文件时,目录的尺寸并不减小,而是核心对该目录项做上特殊标记,以便下次添加一个文件时重新使用它。ls命令不会列出这些未被使用的项。

例如,利用以一F命令可以显示当前目录的内容:

# ls -ai

应注意,所列出的前两项分别表示当前目录和其父目录。请查看是否有其他的隐含文件。如果使用不带-a选项的ls命令,则隐含文件不再被显示出来。如果使用不带 –i 选项的ls命令,则文件的I节点号不再出现。

使用ls –d 命令,则只能看到当前目录下的各子目录名。

设备文件设备文件是一种特别文件,除了在其文件Ⅰ节点中存放有属性信息外,它们不包含任何数据。系统利用它们来标记各个设备驱动器,核心使用它们与硬件设备通信。有两类特别设备文件,它们对应不同类型的设备驱动器。

(1)字符设备—最常用的设备类型,允许I/O传送任意大小的数据,取决于设备本身的容量。使用这种接口的设备包括终端、打印机及鼠标。

(2)块设备—这类设备利用核心缓冲区的自动缓存机制。缓冲区进行I/O传送总是以KB为单位。使用这种接口的设备包括硬盘、软盘和RAM盘。

设备文件的一个示例是当前正在使用的终端文件。tty命令可以显示出这个文件名,例如:

# tty

/dev/tty01

通常,设备文件存放在/dev目录之下。

符号链接文件符号链接文件是一种特殊文件,提供对其他文件的参照。它们存放的数据是文件系统中通向文件的路径。当使用符号链接文件时,核心自动访问所保存的这个路径。

linux系统文件分类,Linux系统文件概念和文件类型相关推荐

  1. Linux操作系统下以不同颜色命名的文件类型

    蓝色文件----------目录 白色文件----------一般性文件,如文本文件,配置文件,源码文件等 浅蓝色文件----------链接文件,主要是使用ln命令建立的文件 绿色文件------- ...

  2. linux基础命令大全(一)——文件类型和常用目录

    前言 Linux不像windows那样一切操作都有图形界面.Linux中一切皆为文件,在Linux中做的操作就是对文件的操作,这就需要使用命令来对文件进行操作.但是在学习基础命令之前我认为理清linu ...

  3. Linux的文件类型分类

    Linux文件一般是用一些相关的应用程序创建,比如图像工具.文档工具.归档工具... .... 或 cp工具等.linux文件的删除方式是用rm 命令. Linux文件类型: Linux文件类型和Li ...

  4. Linux学习:Linux 的文件权限与目录配置

    引用:<鸟哥的Linux私房菜基础篇第三版> Linux最优秀的地方之一就在于他的多人多任务环境.而为了让各个使用者具有较保密的文件数据,因此文件的权限管理就变的很重要了. Linux一般 ...

  5. 嵌入式 Linux 入门(二、Linux 文件系统、文件类型及权限管理)

    嵌入式 Linux入 门第二课, linux 文件系统.文件类型及权限管理. ...... 矜辰所致 目录 前言 一.Linux 文件属性 1.1 Linux 文件类型 1.2 Linux 文件权限及 ...

  6. linux ls 中文乱码_每天一个linux命令:Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  7. 每天一个linux命令(目录文件操作):【转载】Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  8. Linux文件类型与扩展名

    Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...

  9. linux怎样自动检查link文件_怎样理解和识别 Linux 中的文件类型 | Linux 中国

    众所周知,在 Linux 中一切皆为文件,包括硬盘和显卡等.在 Linux 中导航时,大部分的文件都是普通文件和目录文件.但是也有其他的类型,对应于 5 类不同的作用.因此,理解 Linux 中的文件 ...

最新文章

  1. ASP.NET虚拟主机的重大安全隐患
  2. ad怎么批量改元器件封装_Altium Designer 批量修改元件封装的方法(修正)
  3. 谈一谈自己对依赖、关联、聚合和组合之间区别的理解
  4. 学成在线案例——黑马程序员pink老师\思路讲解\完整源代码
  5. php如何上传文件,PHP上传文件
  6. automaticallyAdjustsScrollViewInsets 标签栏不正常显示
  7. 蓝桥杯省赛2014年Java组B组
  8. 有人还原出了历史上的皇帝,朱元璋居然还挺帅?
  9. 蓝桥杯第十届省赛 NE555测方波
  10. 同时虚拟多个3D桌面
  11. c语言weak void,浅尝辄止5-C语言-weak symbol
  12. php采集一言代码_php抓取一言数据
  13. 计算机运行库,VC2010运行库
  14. 冒泡排序 (Java)
  15. 在Winform中上传文件的工具类-ResourceMgr
  16. 嵌入式开发笔记——CPLD与MCU模拟SPI通信
  17. 怎么将计算机桌面全部变成英文翻译,Word2010怎样将英文翻译成中文
  18. 激情开麦!AI 2023发展预测;AI生成个性化助眠音乐;Meta发布高效自监督学习Data2vec 2.0算法;Obsidian发布AI助手… | ShowMeAI资讯日报
  19. Windows窗体应用c#制作屏保
  20. 用python写了个共享单车租借系统!

热门文章

  1. docker 删除镜像报错 image is referenced in multiple repositories
  2. 找到合适的方案记录服务端日志
  3. UML 类图. 对象图. 接口图. 用例图 .包,参与者. 依赖关系. 泛化/继承关系. 关联关系 .聚合/聚集关系. 实现关系 组合关系。
  4. java 多条件比较_Java 多条件复杂排序小结
  5. python数组操作加法_Numpy数组索引和/或加法似乎是
  6. qt 分辨率问题 安卓_Windows下基于Qt开发Android应用
  7. 今日头条的面试题(部分)
  8. Java登陆页面经常出现的问题,问一下关于登陆页面的有关问题
  9. mysql 8.0.21 安装配置方法图文教程
  10. nc361t支持的服务器,Windows Server 2008 R2通过IP安全策略阻止某个IP