Linux文件系统

Posted chenying66

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件系统相关的知识,希望对你有一定的参考价值。

本章节为《Linux操作系统基本原理与应用》的笔记。

  1. linux系统中所有的程序、语言库、系统文件和用户文件都是存放在文件系统之上的,可靠性和安全性是文件系统的重要因素。
  2. 文件系统:OS在硬盘或者分区上保持文件信息的方法和数据结构,即文件在硬盘或分区上的组织结构方式,也指用于存储文件的磁盘、分区或文件系统种类。
  3. Linux使用单一的根目录结构,所有的分区都mount到单一的“/”目录上。此时"/"根目录必须使用ext文件系统。若还有其他分区,必须mount到根目录下的某个位置。
  4. 常见的Linux系统目录
/Linux系统根目录,包含Linux系统的所有目录和文件
/etc有关系统设备与管理的配置文件
/sbin存放系统启动时所需的运行程序
/bin该目录中含有常用的命令文件,不能包含子目录
/bootOS启动时的核心文件
/usr/local存放用户后期安装的应用程序文件
/root超级用户主目录
/dev接口设备文件目录,保存外围设备代号
/mnt设备文件的挂接点,默认有/mnt/cdrom和/mnt/floppy两个目录,分别用于挂载光驱和软驱
/home用户的宿主目录,通常将其设置在独立的分区
  1. 文件时OS用来存储信息的基本结构,是存储在某种介质上的一组信息的集合,通常通过文件名来标识文件。在Linux OS中必须区分文件类型。
  2. Linux中常用的文件类型:普通文件、目录文件、设备文件、管道文件和链接文件。
    a) 普通文件,使用ls -lh查看文件的属性。包括文件的类型与权限、链接数、文件的属主、文件属组、文件的大小、文件建立或修改的时间、文件名等信息。可以使用file命令查看文件的类型
    b) 目录文件:只允许系统管理员对其进行修改,用户进程可以读取目录文件,但不能对他们进行修改。使用ls -ln查看某个目录文件详细信息。
    c) 设备文件,用于向I/O设备提供连接的一种文件,分为字符设备和块设备,前者以一个字符为单位,后者以字符块为单位。每一种I/O设备对应一个设备文件,存放在/dev目录中。使用ls -la /dev/tty来查看文件。
    d) 管道文件:多用于进程间的通信方面,使用ls -lh查看时,文件类型与权限的第一个字符为p时,则代表该文件为管道文件。
    e) 链接文件:符号链接(软连接)、硬链接。文件类型与权限的第一个字符为l,则代表该文件为链接文件。建立符号链接文件后,如果删除原文件,则符号链接文件将指向一个空文件,符号链接也就失效了。硬链接则不同,他要求链接文件和目标文件在同一个文件系统(即同一分区),且不允许连接至目录,它是对源文件数据块的直接引用,建立硬连接后及时删除原文件硬链接也会保留原文件的所有信息。
    在这里插入图片描述
    其中,文件信息的具体内容为
    在这里插入图片描述
  3. 查看文件内容的命令:head,从文件头部查看文件,默认情况下只能阅读文件的前十行。
    在这里插入图片描述
    tail命令,查看文件结尾内容,默认显示组后十行,这有助于查看日志文件的最后十行来阅读重要的系统消息,还可以使用tail来观察日志文件被更新的过程。在这里插入图片描述
  4. cat命令可以用来查看文件内容,也可以用于即合并文件,还可以利用cat命令从键盘读取数据。cat命令后面可以接多个文件名,依次将其内容显示出来还可以使用重定向符">"将多个文件合并输出到另一个文件中。如果输出的文件原先存在,它本身的内容将被覆盖,其中的内容是合并后的内容。
    在这里插入图片描述
  5. more命令。在文件过长无法显示在一个屏幕上显示时,如果使用cat命令来查看其内容,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令。more命令每次只显示一页,按下空格键可以显示下一页,按q推出,按h可以获取帮助。
    在这里插入图片描述
  6. less同more,可用于浏览文本文件的内容。不同的是,less命令允许用户使用光标键反复浏览文本,且less可以不读入整个文本文件,因此在读取大型文件时速度较快,less命令比more命令的功能更加强大。
    在这里插入图片描述
  7. Linux中对于文件的搜索工具包括:find、locate等,也包括根据给定的字符串搜索文件内容的grep工具。
    grep命令:在指定文件中搜索特定的字符内容了,并将含有这些字符内容的行以一定格式输出。
    在这里插入图片描述
    locate命令:通过文件名或扩展名搜索文件。locate命令是利用事先在系统中建立系统文件索引资料库,然后再检查资料库的方式工作的。为了提高locate索引的准确率,在使用该命令前必须拥有最新的资料数据库,使用命令updatedb
    在这里插入图片描述
    find命令:通常用来在特定的目录下搜索符合条件的文件,也可用来搜索特定用户属主的文件
    find [路径] [参数]
    在这里插入图片描述
  8. 创建文件。Linux中可以使用touch命令来创建文件,并可使用touch修改文件的存取和修改日期。
    touch [参数] 文件名
    在这里插入图片描述
  9. 删除文件rm:可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下的所有文件及子目录均删除。删除链接文件时,只是断开了链接,源文件保持不变
    rm [参数] 文件名
    rm删除文件后不可恢复,-i是交互式删除方式,逐个确认要删除的文件。若确认删除,则输入y,否则输入其他任何字符均视为房企删除。
    在这里插入图片描述
  10. 复制文件:cp命令将给出的文件或目录复制到另一个文件或目录中,该命令可以同时复制多个源文件到目标目录中,在进行文件复制的同时,可以指定目标文件的名称。
    cp [参数] 源文件或目录 目标文件或目录
    为了防止用户在不经意的情况下用cp命令破坏另一个文件,建议在使用cp命令复制文件时,使用i选项
    在这里插入图片描述
  11. 移动或重命名文件。mv命令来移动文件或目录,也可以给文件或目录重命名。
    mv [参数] 源文件或目录 目标文件或目录
    其中mv命令是移动还是重命名,根据源文件和目标文件的类型而定。
    使用mv命令跨文件系统移动文件时,先复制文件,再将原有文件删除,而链接至该文件的链接将丢失。
  12. diff命令,采用逐行比较的方式比较两个文件之间的差异
    diff [参数] 文件1 文件2
    在这里插入图片描述

以上是关于Linux文件系统的主要内容,如果未能解决你的问题,请参考以下文章

Linux 文件系统管理

linux文件系统类型

linux系统中对文件系统的原理进行分析

Linux文件系统操作命令

linux kernel 文件系统编程接口

linux下啥文件系统支持超个4G的单个(重点)文件?