Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
linux档案是什么样的_创想鸟

linux档案是什么样的

linux档案就是目录(文件)。为了方便管理文件和目录,Linux系统将它们组织成一个以根目录“/”开始的倒置的树状结构。Linux中的目录和Windows系统中的文件夹类似,不同之处在于,Linux系统中的目录也被当做文件看待。

linux档案是什么样的

本教程操作环境:linux7.3系统、Dell G3电脑。

linux档案就是目录(文件)。

为了方便管理文件和目录,Linux 系统将它们组织成一个以根目录 / 开始的倒置的树状结构。Linux 中的目录,和 Windows 系统中的文件夹类似,不同之处在于,Linux 系统中的目录也被当做文件看待。

在 Linux 操作系统中,所有的文件和目录都被组织成以一个根节点“/”开始的倒置的树状结构,如图 1 所示。

1.gif
图 1 Linux 系统文件和目录组织示意图

其中,目录就相当于 Windows 中的文件夹,目录中存放的既可以是文件,也可以是其他的子目录,而文件中存储的是真正的信息。

文件系统的最顶层是由根目录开始的,系统使用“/”来表示根目录,在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含(子)目录或文件。如此反复就可以构成一个庞大的文件系统。

其实,使用这种树状、具有层次的文件结构主要目的是方便文件系统的管理和维护,想象一下,如果所有的文件都放在一个目录下,其文件系统的管理和维护将变成一场噩梦。

现实中也有许多类似的例子,例如在整个行政管理体制中,村民就相当于文件,他们住在一个村庄中,村庄就是存储村民的目录。许多村又组成了个乡,这个乡就相当于存储村的目录,依此类推,最终就构建出了一个庞大的行政区域管理结构图。

注意,目录名或文件名都是区分大小写的,如 dog、DOG 和 Dog 为 3 个不同的目录或文件。完整的目录或文件路径是由一连串的目录名所组成的,其中每一个目录由“/”来分隔。如 cat 的完整路径是 /home/cat。

在文件系统中,有两个特殊的目录,一个是用户所在的工作目录,即当前目录,可用一个点“.”表示;另一个是当前目录的上一层目录,也叫父目录,用两个点“..”表示。

如果一个目录或文件名是以一个点开始,就表示这个目录或文件是一个隐藏目录或文件。即以默认方式査找(后续会讲查找命令)时,不显示该目录或文件。

为了方便管理和维护,Linux 系统采用了文件系统层次标准,也称为 FHS 标准,它规定了根目录下各个目录应该存在哪些类型的文件(或子目录),比如说,在 /bin 和 /sbin 目录中存放的应该是可执行文件

linux档案系统(filesystem)

硬盘的物理组成

首先简单认识一下硬盘的物理结构,总体来说,硬盘结构包括: 盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等几个部份。 所有的盘片(一般硬盘里有多个盘片,盘片之间平行)都固定在一个主轴上。 在每个盘片的存储面上都有一个磁头,磁头与盘片之间的距离很小(所以剧烈震动容易损坏),磁头连在一个磁头控制器上,统一控制各个磁头的运动。 磁头沿盘片的半径方向动作,而盘片则按照指定方向高速旋转,这样磁头就可以到达盘片上的任意位置了。

一个磁盘由多个圆环组成,这些圆环就叫做磁道,而一个磁道又分为多个扇区(sector)一个一个扇区是512Byte,硬盘所有磁盘相同位置的圆环组成一个磁柱(Cylinder)。硬盘容量为:512Byte * 扇区数 * 磁柱数*磁头数

前面三个数都好理解,可能有人不理解乘以磁头数是干嘛,因为前面三个数相当于计算一个圆的存储量,而一个磁头读取一个圆,所以乘以磁头数量就相当于圆面积乘以圆数量。

磁盘的分割

磁盘分割的最小单位是磁柱(Cylinder)

磁盘的分割其实就是记录一个分割区(partition)的起始磁柱与结束磁柱,而这些被记录的信息都存放在主要开机扇区( Master Boot Recorder, MBR )。事实上, MBR 就是在一块硬盘的第零轨上面,这也是计算机开机之后要去利用该硬盘时, 必须要读取的第一个区域。

思考一个问题:MBR的大小是不是固定的?

我们这么想,数据的存储顺序为 : MBR + 其他数据 。如果MBR的大小不固定,比如原来MBR中存放了3个partition的信息,现在我们要新增一个partition,会出现什么后果?后果就是所有的“其他数据”都要顺序的向后移动一个partition信息的距离。是不是想到了数组的增删了。所以我们希望将MBR固定,事实也是如此MBR被固定为只能存放4个partition的信息。这样似乎好多了,但是只有四个partition,够用吗?设计者当然也想到了这个问题,所以将partition分为Primary和Extended两类(E最多只能有一个)。其中P是可以直接使用的,而E不能直接使用,E相当于一个指针,指向扩展的partition的位置信息存储处。

壁纸样机神器 壁纸样机神器

免费壁纸样机生成

壁纸样机神器 0 查看详情 壁纸样机神器

filesystem

filesystem也即文件系统,每个oartition都可以由自己的filesystem,例如fat32,ntfs之类的

不同的partuition虽然filesystem不一样,但是都是用来存储数据的。前面我们介绍了硬盘的最小存储单元为sector(扇区,一般为512Byte),但是filesystem的最小存储单元却不是sector而是block。block是sector的2的次方倍数,磁头一次读取一个block的数据。所以如果block过小,则读取一个文件时磁头需要读取较多数量的block,这样效率很低,但是block也不能过大,应为一个block中只能存在一个档案,例如block大小为100M,那么如果有一个100.1M的文件,则需要占用两个block,浪费了大量空间。

superblock

每个filesystem中的第一个block称为superblock。superblock的作用是存储filesystem的大小,空的和填满的区块以及其他的总书和诸如此类的信息。也就是说如果你要使用一个filesystem的时候,第一个要经过的就是superblock这个块了,如果superblock坏了,这个partition大概也回天乏术了。

linux的EXT2文件系统

我们既然是学习linux,自然要学习linux的filessystem,我们以linux最标准的EXT2做说明。

EXT2中的filesystem分为inode区和block区,其中 inode存储文件的相关属性等信息,而block区存储文件的内容,每个inode都充当指针pointer的作用,它能描述文件的相关属性并指向该文件所在block的位置。blocks与inodes的数量在一开始格式化的时候就已经固定了。

整个filesystem示意图:

2.png

SuperBlock:如前所述, Superblock 是记录整个 filesystem 相关信息的地方, 没有 Superblock ,就没有这个 filesystem 了。他记录的信息主要有:block 与 inode 的总量;未使用与已使用的 inode / block 数量;一个 block 与一个 inode 的大小;filesystem 的挂载时间、最近一次写入数据的时间、最近一次检验磁盘 (fsck) 的时间等档案系统的相关信息;一个 valid bit 数值,若此档案系统已被挂载,则 valid bit 为 0 ,若未被挂载,则 valid bit 为 1 。Group Description:纪录此 block 由由何处开始记录;Block bitmap:此处记录那个 block 有没有被使用;Inode bitmap:此处记录那个 inode 有没有被使用;Inode table:为每个 inode 数据存放区;Data Blocks:为每个 block 数据存放区。

linux档案系统的运作

我们知道硬盘的存取速度相对于内存来说是很慢的,linux为了提高整体的速度,采用异步处理的方式。

什么是异步呢?举例来说:『当系统读取了某一个档案, 则该档案所在的区块数据会被加载到内存当中,所以该磁盘区块就会被放置在主存储器的缓冲快取区中, 若这些区块的数据被改变时,刚开始数据仅有主存储器的区块数据会被改变, 而且在缓冲区当中的区块数据会被标记为『 Dirty 』,这个时候磁盘实体区块尚未被修正! 所以亦即表示,这些『 Dirty 』区块的数据必需回写到磁盘当中, 以维持磁盘实体区块上的数据与主存储器中的区块数据的一致性。』

所以linux的关机真的要注意,否则可能会造成文件的丢失甚至是磁盘的损毁!!!

mount point

所以linux的关机真的要注意,否则可能会造成文件的丢失甚至是磁盘的损毁!!!

mount point

我们上面提到的都是关于档案系统 (filesystem),但是要能够让我们的 Linux 使用的话, 非得『挂载 (mount)』上我们的 Linux 系统才行啊! 刚刚我们上面提到了目录可以记录文件名与 inode 的相关信息,此外, 目录也是让我们得以跟 filesystem 产生对应的入口点。因此,我们称那个入口点目录为『 挂载点 (mount point) 』

相关推荐:《Linux视频教程》

以上就是linux档案是什么样的的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/253500.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Java实现分布式ID生成器的多种方案
上一篇 2025年11月4日 06:25:48
零一万物联创戴宗宏离职创业,获得创新工场投资
下一篇 2025年11月4日 06:25:51

相关推荐

  • Linux文件系统mv命令使用详解

    mv命令用于移动或重命名文件和目录,若目标不存在则重命名,存在且为目录则移动,为文件则覆盖;常用选项包括-i(交互确认)、-f(强制覆盖)、-u(更新移动)、-v(显示过程);可重命名如mv oldname.txt newname.txt,或移动如mv file.txt /dir/;建议使用alia…

    2026年9月21日
    000
  • VSCode怎么手动保存代码_VSCode禁用自动保存与手动保存设置教程

    手动保存代码只需按Ctrl + S(Windows/Linux)或Cmd + S(macOS),可通过设置将“files.autoSave”设为“off”来禁用自动保存,并结合版本控制保障代码安全。 VSCode手动保存代码其实很简单,默认情况下,按下 Ctrl + S (Windows/Linux…

    2026年9月21日
    100
  • 如何解决Linux软件包冲突 依赖问题处理方案

    如何解决Linux软件包冲突 依赖问题处理方案如何解决Linux软件包冲突 依赖问题处理方案如何解决Linux软件包冲突 依赖问题处理方案如何解决Linux软件包冲突 依赖问题处理方案

    遇到linux系统中软件包冲突或依赖问题时,应首先理解依赖关系并使用合适工具解决。1. 使用apt或yum的自动修复功能,如debian/ubuntu可用sudo apt –fix-broken install,centos/fedora可用sudo dnf install @syste…

    2026年9月21日 • 用户投稿
    700
  • MySQL数据备份自动化实施_MySQL定时任务与脚本管理

    MySQL数据备份自动化实施_MySQL定时任务与脚本管理MySQL数据备份自动化实施_MySQL定时任务与脚本管理MySQL数据备份自动化实施_MySQL定时任务与脚本管理MySQL数据备份自动化实施_MySQL定时任务与脚本管理

    mysql数据备份的自动化实施核心在于结合mysqldump等工具与操作系统的定时任务(如linux的cron或windows的task scheduler),通过编写和管理脚本实现定期执行备份。1. 使用mysqldump作为基础工具,编写包含数据库连接信息、时间戳文件名、日志记录、压缩清理等功能…

    2026年9月21日 • 用户投稿
    100
  • 如何设置Linux软件包更新排除 yum exclude和apt-mark hold

    如何设置Linux软件包更新排除 yum exclude和apt-mark hold如何设置Linux软件包更新排除 yum exclude和apt-mark hold如何设置Linux软件包更新排除 yum exclude和apt-mark hold如何设置Linux软件包更新排除 yum exclude和apt-mark hold

    要阻止linux系统中特定软件包更新,可针对不同发行版使用相应方法。对于rhel/centos系系统,可通过在/etc/yum.conf或.repo文件中添加exclude=包名来排除升级;对于debian/ubuntu系系统,则使用sudo apt-mark hold 包名命令锁定版本。这两种方式…

    2026年9月21日 • 用户投稿
    400
  • VSCode怎么看效果_VSCode实时预览和调试代码运行效果教程

    VSCode通过实时预览扩展和内置调试器实现代码效果查看。使用Live Server可实时预览前端页面,保存即刷新;Markdown文件支持侧边预览。调试功能需配置launch.json,支持Node.js、Python、浏览器端JavaScript等,通过断点、变量监视、调用堆栈等深入分析代码执行…

    2026年9月21日
    000
  • 如何检测Linux网络接口DMA状态 硬件加速功能验证

    如何检测Linux网络接口DMA状态 硬件加速功能验证如何检测Linux网络接口DMA状态 硬件加速功能验证如何检测Linux网络接口DMA状态 硬件加速功能验证如何检测Linux网络接口DMA状态 硬件加速功能验证

    可通过以下方法检测linux系统中网络接口dma状态和硬件加速是否启用:1.使用 ethtool -i eth0 和 ethtool -k eth0 查看驱动信息及sg、tso、ufo、gso功能是否启用;2.通过 cat /proc/interrupts 和 cat /proc/slabinfo …

    2026年9月21日 • 用户投稿
    800
  • VSCode整个项目怎么导出_VSCode项目打包与导出为压缩文件的完整教程

    答案:导出VSCode项目可通过手动压缩、终端命令、插件或Git克隆实现,推荐使用终端命令排除node_modules并选择zip格式以兼顾兼容性与效率。 将VSCode整个项目导出,实际上就是将项目文件夹打包成一个压缩文件,方便备份、分享或迁移。下面介绍几种常见的打包导出方法。 解决方案: 手动压…

    2026年9月21日
    000
  • SpringBoot的定时任务

    SpringBoot的定时任务SpringBoot的定时任务SpringBoot的定时任务SpringBoot的定时任务

    大家好,我是你们的老朋友全栈君。我们又见面了。 一、基于注解(@Scheduled)的定时任务 使用SpringBoot的@Scheduled注解来创建定时任务非常简单,只需几行代码就能实现。然而,@Scheduled默认是单线程运行,这意味着当启动多个任务时,一个任务的执行时间可能会影响到下一个任…

    2026年9月21日 • 用户投稿
    400
  • 使用 EMQ 搭建 MQTT 服务器

    本教程详细介绍了如何使用 emq 搭建 mqtt 服务,适用于设备联网的 mqtt 协议。 预备条件: 一台 Ubuntu 服务器或在虚拟机中安装 Ubuntu 系统emqx-ubuntu18.04-4.3.1-amd64.deb 安装包(安装包链接见文末) 安装步骤: 使用 dpkg 安装 EMQ…

    2026年9月21日
    000
  • 实时即未来:Apache Flink实践(二)

    俗话说,工欲善其事,必先利其器!这句话确实很有道理。因此,今天我们将讨论如何在版本较低的windows电脑上学习 apache flink 知识。 Windows子系统简介:Windows内置了Ubuntu子系统,这是由Microsoft官方发布的,不是虚拟机。其安装方法也非常简单。 微软官方文档对…

    2026年9月21日
    500
  • PHPComposer怎么安装_PHPComposer依赖管理工具安装与使用指南

    PHPComposer是PHP的依赖管理工具,类似npm或pip。需先安装PHP,再下载并验证composer-setup.php,执行安装生成composer.phar,推荐全局安装至/usr/local/bin/composer,运行composer –version验证。使用com…

    2026年9月21日
    000
  • 开源 串口调试助手 BaoYuanSerial 使用教程「建议收藏」

    大家好,很高兴再次与大家见面,我是你们的老朋友全栈君。 简介:本软件采用.Net5与Avalonia技术实现跨平台解决方案,适用于Linux Ubuntu和Windows系统,并已在Ubuntu20.04及Win10 Professional 20H2上成功测试。 官方下载地址: GitHub项目地…

    2026年9月21日
    100
  • 为“架构”再建个模:如何用代码描述软件架构?

    在 archguard 平台中,为了实现对架构的治理,我们需要通过代码和模型来描述所需处理的内容和数据。因此,archguard 引入了代码模型、依赖模型、变更模型等,而架构模型和架构治理模型则是两个核心的部分。其它如构建模型等,将会在后续逐步引入到系统中。 PS:本文中的架构展开是基于自动化分析需…

    2026年9月21日
    000
  • SystemTap

    SystemTap 简介 systemtap 是一款用于诊断 linux 系统性能或功能问题的开源工具。它使得对运行中的 linux 系统进行诊断和调试变得更加便捷和高效。有了 systemtap,开发者和调试人员无需重新编译内核、安装新内核或重启系统等繁琐步骤。为了解决系统问题或提升性能,开发者只…

    2026年9月21日
    100
  • vim 学习笔记(一)—— vim模式与创建、编辑文件

    vim 学习笔记(一)—— vim模式与创建、编辑文件vim 学习笔记(一)—— vim模式与创建、编辑文件vim 学习笔记(一)—— vim模式与创建、编辑文件vim 学习笔记(一)—— vim模式与创建、编辑文件

    vim 是基于linux开发的一款强大文本编辑器,源自vi并进行了扩展,具有跨平台和广泛工具支持的特性。据说,vim的高手能够以思想的速度在键盘上操作文本,因此我决定加入学习的行列。学习资料是b站上的生肉教程【公开课】完美的vim课程【生肉】,该教程侧重于讲解vim的思想和精髓,而非具体命令的详细介…

    2026年9月21日 • 用户投稿
    100
  • Xdebug配置与故障排除:解决PHP调试连接导致的网页超时问题

    本文旨在解决Xdebug在IDE未监听调试连接时可能导致的网页加载缓慢或超时问题。我们将深入探讨Xdebug的工作原理、关键配置参数,并提供一套系统的故障排除方法,包括如何启用详细日志记录以及检查多重配置文件的影响,以确保Xdebug仅在需要时激活,避免不必要的性能开销。 1. 理解Xdebug的工…

    2026年9月21日
    100
  • Win10与Ubuntu 18.04双系统安装。(Win10引导Linux)[通俗易懂]

    Win10与Ubuntu 18.04双系统安装。(Win10引导Linux)[通俗易懂]Win10与Ubuntu 18.04双系统安装。(Win10引导Linux)[通俗易懂]Win10与Ubuntu 18.04双系统安装。(Win10引导Linux)[通俗易懂]Win10与Ubuntu 18.04双系统安装。(Win10引导Linux)[通俗易懂]

    大家好,很高兴再次与大家见面,我是你们的老朋友全栈君。 作为一个初学者,为了满足自己的求知欲,我按照几位大神写的教程尝试了一遍安装过程,现在来和大家分享一下。 1、Win10安装(如果已经安装,请跳过) 1)制作系统U盘(参考微信公众号“软件安装管家”): https://www.php.cn/li…

    2026年9月21日 • 用户投稿
    400
  • VSCode怎么改环境_VSCode切换Python/Node等多版本环境教程

    切换VSCode环境需先安装对应语言扩展,再通过命令面板选择解释器或使用nvm切换Node版本,配合虚拟环境或launch.json配置确保运行和调试时使用正确版本,可通过终端命令验证环境,若失效可检查缓存、扩展冲突或权限问题。 VSCode改环境,其实就是让VSCode知道你想用哪个版本的Pyth…

    2026年9月21日
    100
  • Linux中如何安装Redis_Linux安装Redis服务的完整教程

    安装编译环境和依赖:Ubuntu/Debian用apt安装build-essential tcl wget,CentOS/RHEL用yum安装Development Tools和tcl wget。2. 下载Redis 7.2.4源码包并%ignore_a_1%,进入目录后执行make编译,可选mak…

    2026年9月21日
    000

发表回复

登录后才能评论
关注微信