一 、linux文件结构
文件结构是文件存放在磁盘等存贮设备上的组织方法。主要体现在对文件和目录的组织上。
目录提供了管理文件的一个方便而有效的途径。
linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。
/根目录
┃
┏━━━━┳━━━━━┳━━━━━┳━━━━━╋━━━━━┳━━━━━┳━━━━━┳━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
bin home dev etc lib sbin tmp usr var
┃ ┃
┏━┻━┓ ┏━━━━┳━━━┳━━━┳━┻━┳━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
rc.d cron.d X11R6 src lib local man bin
┃ ┃ ┃
┏━━━┳━━━┳━┻━┳━━━━┓ ┃ ┏━━━╋━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
init.d rc0.d rc1.d rc2.d …… linux bin lib src
linux 采用的是树型结构。最上层是根目录,其他的所有目录都是从根目录出发而生成的。微软的DOS和windows也是采用树型结构,但是在DOS和 windows中这样的树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,他们之间的关系是并列的。但是在linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个。从结构上讲,各个磁盘分区上的树型目录不一定是并列的。
如果这样讲不好理解的话,我来举个例子:
有一块硬盘,分成了4个分区,分别是/;/boot;/usr和windows下的fat
对于/和/boot或者/和/usr,它们是从属关系;对于/boot和/usr,它们是并列关系。
如果我把windows下的fat分区挂载到/mnt/winc下,(挂载??哦,别急,呵呵,一会就讲,一会就讲。)那么对于/mnt/winc和/usr或/mnt/winc和/boot来说,它们是从属于目录树上没有任何关系的两个分支。
因为linux是一个多用户系统,制定一个固定的目录规划有助于对系统文件和不同的用户文件进行统一管理。但就是这一点让很多从windows转到linux的初学者感到头疼。下面列出了linux下一些主要目录的功用。
/bin 二进制可执行命令
/dev 设备特殊文件
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/sbin 系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp 公用的临时文件存储点
/root 系统管理员的主目录(呵呵,特权阶级)
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
/lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
/proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var 某些大文件的溢出区,比方说各种服务的日志文件
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包含:
/usr/X11R6 存放X window的目录
/usr/bin 众多的应用程序
/usr/sbin 超级用户的一些管理程序
/usr/doc linux文档
/usr/include linux下开发和编译应用程序所需要的头文件
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/man 帮助文档
/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的库
二 、linux文件系统
文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。一个操作系统的运行离不开对文件的操作,因此必然要拥有并维护自己的文件系统。
linux文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。
索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。
linux文件系统将文件索引节点号和文件名同时保存在目录中。所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。
对于一个文件来说有唯一的索引节点号与之对应,对于一个索引节点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问它。
可以用ln命令对一个已经存在的文件再建立一个新的连接,而不复制文件的内容。
连接有软连接和硬连接之分,软连接又叫符号连接。它们各自的特点是:
硬连接:原文件名和连接文件名都指向相同的物理地址。
目录不能有硬连接;硬连接不能跨越文件系统(不能跨越不同的分区)
文件在磁盘中只有一个拷贝,节省硬盘空间;
由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。
符号连接:用ln -s命令建立文件的符号连接
符号连接是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名。类似windows下的快捷方式。
可以删除原有的文件而保存连接文件,没有防止误删除功能。
这一段的的内容过于抽象,又是节点又是数组的,我已经尽量通俗再通俗了,又不好加例子作演示。大家如果还是云里雾里的话,我也没有什么办法了,只有先记住,日后在实际应用中慢慢体会、理解了。这也是我学习的一个方法吧。
三 、挂载文件系统
由上一节知道,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。这里所说的“按一定方式”就是指的挂载。
将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该子目录称为挂载点。
举个例子吧:
根分区:
/根目录
┃
┏━━━━┳━━━━━┳━━━━━┳━━━━━╋━━━━━┳━━━━━┳━━━━━┳━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
bin home dev etc lib sbin tmp usr var
┃
┏━┻━┓
┃ ┃
rc.d cron.d
┃
┏━━━┳━━━┳━┻━┳━━━━┓
┃ ┃ ┃ ┃ ┃
init.d rc0.d rc1.d rc2.d ……
/usr分区 :
usr
┃
┏━━━━┳━━━╋━━━┳━━━┳━━━┓
┃ ┃ ┃ ┃ ┃ ┃
X11R6 src lib local man bin
┃ ┃
┃ ┏━━━╋━━━┓
┃ ┃ ┃ ┃
linux bin lib src
分享到:
相关推荐
本书将详细解析C语言标准库中的各种函数,如输入/输出操作、字符串处理、内存管理、错误处理等,并且涵盖了Linux特有的系统调用,如文件操作、进程控制、网络编程等。 在书中,作者首先介绍了C语言的基础知识,包括...
Linux 文件系统详解及常用命令 Linux 文件系统是 Linux 操作系统的核心组件之一,它提供了文件存储和管理的机制。Linux 文件系统的结构是一个树状结构,以根目录(root)为中心,其他目录都是从根目录下派生出来的...
"Linux系统结构详解" Linux系统结构可以分为四个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。 一、Linux...
Linux系统结构详解 Linux系统是基于自由开源的Unix-like操作系统,它的核心组成部分包括内核、shell、文件系统和应用程序。这些组件共同构建了一个强大的、灵活的平台,供用户执行任务、管理文件和交互。 1. Linux...
本文将围绕“Linux内核结构详解教程”这一主题,深入探讨Linux内核的关键组成部分、各子系统的工作原理及其相互依赖关系,旨在为读者提供一份全面而详尽的Linux内核知识指南。 ### Linux内核——操作系统的心脏与...
- **UNIX/Linux文件系统简介**:概述文件系统的组织结构和文件管理机制。 - **流和标准I/O库**:讲解标准输入输出流的概念及其使用方法。 - **进程**:详细介绍进程的基本概念、创建和运行过程,以及进程间的通信...
内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所示。 1. linux内核 内核是操作系统的核心,具有很多基本功能,它负责管理系统...
总的来说,"Linux编程技术详解"这份资料将引导读者全面了解Linux环境下的C编程,包括系统调用、文件I/O、进程线程管理、网络编程、内存管理和调试技巧等,是Linux开发者必备的学习资源。通过深入学习和实践,开发者...
Linux 文件系统详解 Linux 文件系统是 Linux 操作系统的核心组件之一,负责管理和组织存储在磁盘等存储设备上的文件。Linux 文件系统的核心是树状目录结构,目录提供了管理文件的一个方便而有效的途径。Linux 使用...
《Linux设备驱动开发详解》是一本深度探讨Linux内核驱动程序开发的专业书籍,它以Linux 4.0内核为背景,为驱动工程师提供了一条深入理解与实践Linux设备驱动的路径。这本书涵盖了许多关键的知识点,对于想要在Linux...
第3篇 介绍ARM体系结构及开发实例、深入Bootloader、解析Linux内核、嵌入式Linux启动流程、Linux文件系统、建立交叉编译工具链、命令系统BusyBox、Linux内核移植,以及内核和应用程序调试技术; 第4篇 结合5个案例...
该开发详解详尽介绍如何嵌入式Linux应用程序,由14个pdf文件组成: arm体系结构 目录 第一章-LinuxBasic 第二章t-LinuxApp02-LinuxCommand 第三章-LinuxApp03-C 第四章-LinuxApp04-EmbededSystem 第五章-LinuxApp05-...
了解Linux内核的结构对于系统管理员、软件开发者以及任何希望深入理解操作系统工作原理的人来说至关重要。下面将对Linux内核的主要结构进行详尽的阐述。 1. **进程管理**:在Linux内核中,进程被视为系统资源分配的...
《ARM嵌入式LINUX系统开发详解-第2版》是一部深入探讨ARM架构下...书中的"ARM嵌入式LINUX系统开发详解-第2版-弓.pdf"文件应该是该书的PDF版本,包含了详细的章节内容和实例代码,是学习ARM Linux开发的重要参考资料。
本文将深入探讨“Linux命令大全详解”这一主题,帮助读者掌握Linux操作系统的精髓,提升日常工作效率。 首先,Linux命令行是Linux系统中最基础且强大的工具。它允许用户通过输入命令来执行各种任务,如文件管理、...
本章节主要讲解了Linux内核移植到ARM嵌入式Linux系统的开发详解,涵盖了Linux内核移植的要点、内核体系结构框架、从现有代码移植内核等方面的知识。 Linux内核移植要点: 1. 目标平台:了解目标平台的处理器和周围...
本书“Linux C函数详解”深入剖析了C语言在Linux环境中的应用,是开发者掌握Linux C编程的重要参考资料。下面将详细讨论C语言在Linux中的关键知识点。 1. **C语言基础知识**: - 变量:C语言中的数据类型,如int、...
4. **文件系统和I/O操作**:Linux下文件是所有资源的基本抽象,理解文件系统结构和I/O模型对于编程至关重要。可能包含文件打开、关闭、读取、写入、追加、定位等操作。 5. **进程和线程**:在Linux中,进程是程序的...