在linux中,“一切都是文件”是什么意思?

Linux和其他类似UNIX的操作系统的定义特性之一是“一切都是一个文件”。这是一个过于简单化的说法,但理解它的含义将有助于理解Linux的工作原理。...

在linux中,“一切都是文件”是什么意思?

Linux和其他类似UNIX的操作系统的定义特性之一是“一切都是一个文件”。这是一个过于简单化的说法,但理解它的含义将有助于理解Linux的工作原理。

Linux上的许多东西都出现在文件系统中,但它们实际上不是文件。它们是表示硬件设备、系统信息和其他内容(包括随机数生成器)的特殊文件。

这些特殊文件可能位于伪文件或虚拟文件系统中,例如/dev,其中包含表示设备的特殊文件,以及/proc,其中包含表示系统和进程信息的特殊文件。

/过程

例如,假设您想查找有关CPU的信息。/proc目录包含一个特殊文件–/proc/cpuinfo–其中包含此信息。

在linux中,“一切都是文件”是什么意思?

你不需要一个特殊的命令来告诉你你的CPU信息-你可以用任何标准的命令来读取这个文件的内容,这个命令可以处理纯文本文件。例如,您可以使用cat/proc/cpuinfo命令将此文件的内容打印到终端,将CPU信息打印到终端。您甚至可以在文本编辑器中打开/proc/cpuinfo来查看其内容。

请记住,/proc/cpuinfo实际上不是包含此信息的文本文件—Linux内核和proc文件系统将此信息作为一个文件公开给我们。这允许我们使用熟悉的工具来查看和处理信息。

在linux中,“一切都是文件”是什么意思?

/proc目录还包含其他类似的文件,例如:

  • /proc/uptime—公开Linux内核的正常运行时间—换句话说,就是系统在没有关闭的情况下运行了多长时间。
  • /proc/version–公开Linux内核的版本。

/开发

在/dev目录中,您将找到表示设备的文件,以及表示其他特殊事物的文件。例如,/dev/cdrom是您的CD-ROM驱动器。/dev/sda表示第一个硬盘驱动器,而/dev/sda1表示第一个硬盘驱动器上的第一个分区。

想装光盘吗?运行mount命令并指定/dev/cdrom作为要装载的设备。要对第一个硬盘分区吗?运行磁盘分区实用程序并指定/dev/sda作为要编辑的硬盘。要格式化第一个硬盘上的第一个分区吗?运行格式化命令并告诉它格式化/dev/sda1。

在linux中,“一切都是文件”是什么意思?

如您所见,将这些设备作为文件系统的一部分公开有其优点。文件系统提供了一个一致的“名称空间”,所有应用程序都可以使用它来寻址和访问设备。

/dev/null、/dev/random和/dev/zero

/dev文件系统不仅仅包含表示物理设备的文件。以下是其中最著名的三种特殊装置:

  • /dev/null—丢弃写入其中的所有数据—将其视为垃圾桶或黑洞。如果你看到一条评论告诉你将投诉发送到/dev/null,那是一种“把他们扔进垃圾箱”的古怪说法
  • /dev/random–使用环境噪声产生随机性。这是一个随机数发生器,你可以进入。
  • /dev/zero–生成零–一个恒定的零流。

如果你把这三个看作文件,你就看不到它们的用处了。相反,把它们当作工具。

例如,默认情况下,Linux命令会生成错误消息和其他输出,并打印到标准输出(通常是终端)上。如果您想运行一个命令而不关心它的输出,可以将该输出重定向到/dev/null。将命令的输出重定向到/dev/null会立即丢弃它。您可以将此方法用于任何命令,而不是让每个命令都实现自己的“安静模式”。

command > /dev/null

在linux中,“一切都是文件”是什么意思?

如果你想要一个随机性的来源,比如说,为了生成一个加密密钥,你不需要编写你自己的随机数生成器,你可以使用/dev/random。

要通过向硬盘写入0来擦除硬盘的内容,您不需要专用于归零驱动器的特殊实用程序—您可以使用标准实用程序和/dev/zero。例如,dd命令从一个位置读取数据,然后写入另一个位置。下面的命令将从/dev/zero读取零,并将它们直接写入系统上的第一个硬盘分区,从而完全擦除其内容。

(警告:如果运行此命令,它将删除第一个分区上的所有数据。仅当要销毁数据时才运行此命令。)

dd if=/dev/zero of=/dev/sda1

这里我们将dd用于特殊文件(/dev/zero和/dev/sda1),但是我们也可以使用dd来读取和写入实际文件。同一命令既适用于直接操作设备,也适用于处理文件。

澄清

实际上,说“一切都是字节流”比说“一切都是文件”更准确,/dev/random不是文件,但它肯定是字节流。而且,虽然从技术上讲,这些东西不是文件,但它们在文件系统中是可以访问的——文件系统是一个通用的“名称空间”,所有东西都可以访问。要访问随机数生成器还是直接从设备读取?您可以在文件系统中找到这两者;不需要其他形式的寻址。

当然,有些东西实际上并不是文件——系统上运行的进程并不是文件系统的一部分。“每件事都是一个文件”是不准确的,但很多事情确实表现为文件。

  • 发表于 2021-04-09 02:15
  • 阅读 ( 137 )
  • 分类:互联网

你可能感兴趣的文章

2021年面向开发者、云工程师和devops的5大linux课程

... 上面列出的课程都是精心挑选的,通常给初学者和有经验的专业人士提供全面的知识布局。你所需要的只是学习的意愿、毅力,以及几乎所有可用的免费Linux操作系统。 ...

  • 发布于 2021-03-11 10:29
  • 阅读 ( 248 )

忘记linux:坚持使用windows的10个理由

... 如果你看重Windows的“一切正常”一面,就不要切换。 ...

  • 发布于 2021-03-13 06:23
  • 阅读 ( 224 )

为什么几乎没有人把linux称为“gnu/linux”

...司为了发财而开始对软件进行版权保护之前,大多数软件都是由研究人员和学者使用的。计算机代码被公开共享,人们可以自由地用程序做任何他们想做的事情。现在限制已经到位,继续做过去的事情变得违法了。 ...

  • 发布于 2021-03-13 20:45
  • 阅读 ( 170 )

什么是提高办公效率的最佳linux云服务?

... 编写和编辑文档(文件类型,如电子表格的ODS、文档的ODT等,无所谓), 在云端。 ...

  • 发布于 2021-03-15 02:43
  • 阅读 ( 210 )

人们真的用这个吗?15个奇怪的linux操作系统名称

... 有数百个Linux发行版。它们中的绝大多数都是在相对默默无闻的环境中游荡,而且很多都是为少数人的个人娱乐而**的,你可以打赌,其中有相当一部分的名字听起来很搞笑。所以名单绝不止于此。 ...

  • 发布于 2021-03-16 08:51
  • 阅读 ( 244 )

ubuntu和基于ubuntu的发行版有什么区别?

LinuxMint和初级操作系统都是Ubuntu的流行替代品,但它们也是基于Ubuntu的。如果您是Linux新手,这可能会让人困惑。让我们试着弄清楚这意味着什么以及为什么它对你很重要。 ...

  • 发布于 2021-03-20 08:58
  • 阅读 ( 400 )

解释了chmod命令和linux文件权限

...我们全面的Ubuntu和Linux初学者指南,它会教你入门所需的一切知识,熟悉到让你感到舒服。 ...

  • 发布于 2021-03-25 12:15
  • 阅读 ( 171 )

启动linux的9个基本命令

... 下面您将发现的基本Linux命令对于几乎所有Linux发行版都是通用的,从Ubuntu命令行到Kali Linux。您的终端可能与下面图片中的不同,但请放心,这些将对您有用。 ...

  • 发布于 2021-03-26 18:33
  • 阅读 ( 227 )

在linux中,“bash”是什么意思?

...终端仿真器绝对是两个不同的应用程序。那么Bash到底是什么呢?在这篇短文中,我们将探讨Bash是什么,它做什么,以及如何开始使用它。 ...

  • 发布于 2021-03-28 13:14
  • 阅读 ( 452 )

windows vs.mac vs.linux:游戏的最佳操作系统是什么?

... Linux拥有不同的操作系统,都是基于Linux内核的。我们不建议初学者使用它,因为它的复杂性和缺乏软件兼容性。但是如果你是一个技术爱好者,你会喜欢Linux强大的特性和灵活性。 ...

  • 发布于 2021-03-29 04:43
  • 阅读 ( 532 )
sorrybat
sorrybat

0 篇文章

相关推荐