当前位置: 首页 > 开发知识 >

linux一切都是文件的思想

作者:游戏app开发公司 阅读: 发布时间:2024-08-20 11:00

摘要:当他们讨论基于UNIX的系统的时候,为了简单话理解,我们就说一切都只是一个文件,当然这么理解有一定的偏颇,但是对于我们理解操作系统却有着非常大的...

介绍

文件就是操作系统记录和保持信息的通用结构体。与其他操作系统不同,类似 UNIX 的操作系统将一切视为通用文件。这意味着,不仅分区作为文件装载,而且特定设备(如 RAM、智能手机、外部磁盘和光盘)的目录都是文件。除了这些,套接字和管道也是文件!

此外,每个 TTY 终端(使用CTRL ALT F1打开的终端)都是系统眼中的"文件"。

目录 /dev

如果浏览 /dev 目录,您将看到相对于其他媒体对应系统装载的所有文件。就好像你把手机插入电脑,一个外部硬盘驱动器,甚至一个U盘,都变成了操作系统的"文件"。

系统分区是在 /dev 文件夹中使用"sd"启动的文件。在同一文件夹中,TY 是远程打字机设备,由"CTRL +ALT+F1"命令访问的外壳终端。光学媒体系统(DVD、CD 等)使用的程序集块也在此文件夹中,所有文件都在这里列出。

linuxs文件类型_文件类型linux_

特殊设备

在文件夹/dev中有4个特殊的文件目录:full,zero,random和null。 它们的共同之处在于它们是"特殊档案",而不仅仅是目录。

null 设备(设备 null)通常用于丢弃由于某种原因结果无关紧要的进程的输出流。它还可用作一个空的便利文件。通常,此操作通过系统控制台上的重定向命令执行。发送到设备"/dev/null"的任何文件都将因操作方式而永久消失,并立即丢弃数据。

它就像一个大黑洞,一个永远也不填满的垃圾堆。

程序员因为这种特殊性而对/dev/null开很多玩笑。

请尝试以下命令:$echo "hello world" ,你会会看到"hello world"作为命令输出。

现在尝试:$ echo "hello world"> /dev/null将返回空输出。

也就是说,什么都不会发生。因为命令输出"hello world"被丢弃了,它被黑洞吞没了。/dev/null 基于 UNIX 的系统的工作方式类似于黑洞:那里发送的东西不会回来!基本上,所有的命令输出没有存储,它是直接丢弃,就好像它从未生成过一样。

在 Linux 上,/dev/full是一个特殊的文件,在访问时始终返回相同的错误代码:ENOSPC -这意味着"设备上没有可用空间"。此外,它还有另一个函数:因为它始终已满,因此它为以读取形式访问它的任何进程提供无限数量的空字符 (NULL)。此设备通常用于测试程序在遇到由于内存磁盘而出错时的行为!

请尝试以下命令:$echo "hello world">/dev/full它将给这个设备完全错误,模仿一个拥挤的硬盘!bash:echo:write error:No space left on device

在类似 Unix 的操作系统上,/dev/zero 是一个特殊的文件,它提供从其中读取的空字符数 — ASCII 表的 NULL,0x00;而不是"零位"、"0"字符,其值为 0x30*。例如,此设备生成的空字符流可用于覆盖磁盘上的信息(以清理它)或生成大小为 X 到无穷大的干净文件。BSD 系统通过 mmap 函数实现共享内存,该函数将 /dev /zero 映射到 RAM 来使用它。

创建称为"test"的大型空文件:$ dd if=/dev/zero of=/home/ $user/test count=1000 bs=1000

文件类型linux__linuxs文件类型

如果不对命令施加限制,则获取为"dd if=/dev/zero=/home/$user/test",您将看到一个文件,该文件将无限制增长直到磁盘写满,它才会停止增长,从而导致"无磁盘空间可用"错误。当您要恢复分区表已损坏且无法恢复的笔驱动器时,此命令很有趣。

dd命令强制写入,和 /dev /zero 将填充每个存储块,zero。它将处于新制造状态,要求您稍后使用程序(如磁盘或 Gparted)来重建分区表!请注意此命令,如果输出为 of=/dev/sda1,则对整个 sda1 磁盘(用零填充)归零,从而使文件无法恢复。

它的工作原理和使用 of=/dev/zero 相同的逻辑,填充磁盘,使用随机值创建大小 n 的文件,这些文件由计算机处理生成、收集 GPU 信息字符、RAM 内存等。/dev/random 适用于需要高质量随机数(如 SSH 和其他共享网络的一次性键盘或公钥生成)的用途。

如果我们将 /dev/zero的内容发送到 /dev/null会发生什么事情。

$ sudo dd if=/dev/zero of=/dev/null

此命令将生成一个趋向于无穷大的文件,该文件将记录在无限空间设备中 – 我们的黑洞!实际上,它不会损坏硬件磁盘,因为实际上不会生成数据并将其写入磁盘。但是,在内核的角度来看,有数据传输:它将产生高CPU消耗,这将选择其中一个内核来占用100%cpu。这种类型的命令用于性能测试,例如,检查计算机在 CPU 中 100% 的性能表现。

挂载分区

1. 使用 DD 命令创建充满zero的 4Gb 文件。

$ dd if=/dev/zero of=~/test bs= 1M count=40962

现在,让我们格式化此文件,选择具有 EXT4 格式!

$mkfs.ext4 -m .005 ~/test

命令中的 -m 标志会导致我们默认将 EXT4 设置为 05 的"根"空间。这对于安装系统和防止 EXT4 在默认情况下占用大量磁盘空间甚至很有用。现在你有一个4GB的文件类型"unkown"的"test"在你的/home目录下。把它装成分区!

$ sudo mkdir /media/test

$ sudo mount -rw ~/test/media/test/

这样我们就创建好了一个EXT4 格式文件,并且创建了一个 EXT4 分区,我们可以在这里面创建其它文件或者写入东西。

我们可以针对任何文件格式执行相同的过程:EXT2、FAT32、NTFS 等。一切都只取决于我们的需求!但是,不要认为您可以在其上安装 Windows,因为它是分区内的分区,在 EXT4(或 btrfs 或 xfs)下管理它,具体取决于您的系统)。将其作为分区安装在 Windows 上也比较棘手,因为系统不作为基于 UNIX的设备运行,将块设备读取为文件,而是以不同的方式对待它们。

一切都是一个文件

也就是说,文件夹、目录、分区(即存储事物的东西)都不过是定义在磁盘或 SSD 扇区中的"索引文件"。

文件类型linux_linuxs文件类型_

当他们讨论基于UNIX的系统的时候,为了简单话理解,我们就说一切都只是一个文件,当然这么理解有一定的偏颇,但是对于我们理解操作系统却有着非常大的帮助。

  • 原标题:linux一切都是文件的思想

  • 本文由游戏app开发公司小编,整理排版发布,转载请注明出处。部分文章图片来源于网络,如有侵权,请与迪集网络联系删除。
  • 微信二维码

    CLWL6868

    长按复制微信号,添加好友

    微信联系

    在线咨询

    点击这里给我发消息QQ客服专员

    点击这里给我发消息电话客服专员

    在线咨询

    免费通话


    24h咨询☎️:132-5572-7217


    🔺🔺 24小时客服热线电话 🔺🔺

    免费通话
    返回顶部