返回顶部
首页 > 资讯 > 操作系统 >怎么在Linux中管理设备
  • 171
分享到

怎么在Linux中管理设备

2023-06-16 14:06:54 171人浏览 泡泡鱼
摘要

这篇文章主要介绍了怎么在linux中管理设备,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。设备文件设备文件也称为设备特定文件。设备文件用来为操作系统和用户提供它们代表的设备接

这篇文章主要介绍了怎么在linux中管理设备,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

设备文件

设备文件也称为设备特定文件。设备文件用来为操作系统和用户提供它们代表的设备接口。所有的 Linux 设备文件均位于 /dev 目录下,是根 (/)  文件系统的一个组成部分,因为这些设备文件在操作系统启动过程中必须可以使用。

关于这些设备文件,要记住的一件重要的事情,就是它们大多不是设备驱动程序。更准确地描述来说,它们是设备驱动程序的门户。数据从应用程序或操作系统传递到设备文件,然后设备文件将它传递给设备驱动程序,驱动程序再将它发给物理设备。反向的数据通道也可以用,从物理设备通过设备驱动程序,再到设备文件,***到达应用程序或其他设备。

让我们以一个典型命令的数据流程来直观地看看。

怎么在Linux中管理设备
图 1:一个典型命令的简单数据流程。

在上面的图 1 中,显示一个简单命令的简化数据流程。从一个 GUI 终端仿真器,例如 Konsole 或 xterm 中发出 cat  /etc/resolv.conf 命令,它会从磁盘中读取 resolv.conf  文件,磁盘设备驱动程序处理设备的具体功能,例如在硬盘驱动器上定位文件并读取它。数据通过设备文件传递,然后从命令到设备文件,然后到 6  号伪终端的设备驱动,然后在终端会话中显示。

当然, cat 命令的输出可以以下面的方式被重定向到一个文件, cat /etc/resolv.conf > /etc/resolv.bak  ,这样会创建该文件的备份。在这种情况下,图 1 左侧的数据流量将保持不变,而右边的数据流量将通过 /dev/sda2  设备文件、硬盘设备驱动程序,然后到硬盘驱动器本身。

这些设备文件使得使用标准流 (STD/io) 和重定向访问 Linux 或 Unix  计算机上的任何一个设备非常容易。只需将数据流定向到设备文件,即可将数据发送到该设备。

设备文件类别

设备文件至少可以按两种方式划分。***种也是最常用的分类是根据与设备相关联的数据流进行划分。比如,tty (teletype)  和串行设备被认为是基于字符的,因为数据流的传送和处理是以一次一个字符或字节进行的;而块类型设备(如硬盘驱动器)是以块为单位传输数据,通常为 256  个字节的倍数。

您可以在终端上以一个非 root 用户,改变当前工作目录(PWD)到 /dev ,并显示长目录列表。 这将显示设备文件列表、文件权限及其主、次设备号。  例如,下面的设备文件只是我的 Fedora 24 工作站上 /dev 目录中的几个文件。 它们表示磁盘和 tty 设备类型。 注意输出中每行的最左边的字符。 b  代表是块类型设备,c 代表字符设备。

brw-rw---- 1 root disk 8, 0 Nov 7 07:06 sda  brw-rw---- 1 root disk 8, 1 Nov 7 07:06 sda1  brw-rw---- 1 root disk 8, 16 Nov 7 07:06 sdb  brw-rw---- 1 root disk 8, 17 Nov 7 07:06 sdb1  brw-rw---- 1 root disk 8, 18 Nov 7 07:06 sdb2  crw--w---- 1 root tty 4, 0 Nov 7 07:06 tty0  crw--w---- 1 root tty 4, 1 Nov 7 07:07 tty1  crw--w---- 1 root tty 4, 10 Nov 7 07:06 tty10  crw--w---- 1 root tty 4, 11 Nov 7 07:06 tty11

识别设备文件更详细和更明确的方法是使用设备主要以及次要号。 磁盘设备主设备号为 8,将它们指定为 SCSI 块设备。请注意,所有 PATA 和 SATA  硬盘驱动器都由 SCSI 子系统管理,因为旧的 ATA 子系统多年前就由于代码质量糟糕而被认为不可维护。造成的结果就是,以前被称为 “hd[a-z]”  的硬盘驱动器现在被称为 “sd[a-z]”。

你大概可以从上面的示例中推出磁盘驱动器次设备号的模式。次设备号 0、 16、 32 等等,直到 240,是整个磁盘的号。所以主/次 8/16 表示整个磁盘  /dev/sdb , 8/17 是***个分区的设备文件,/dev/sdb1。数字 8/34 代表 /dev/sdc2。

在上面列表中的 tty 设备文件编号更简单一些,从 tty0 到 tty63 。

Kernel.org 上的 Linux  下的已分配设备文件是设备类型和主次编号分配的正式注册表。它可以帮助您了解所有当前定义的设备的主要/次要号码。

趣味设备文件

让我们花几分钟时间,执行几个有趣的实验,演示 Linux 设备文件的强大和灵活性。 大多数 Linux 发行版都有 1 到 7 个虚拟控制台,可用于使用  shell 接口登录到本地控制台会话。 可以使用 Ctrl-Alt-F1(控制台 1),Ctrl-Alt-F2(控制台 2)等键盘组合键来访问。

请按 Ctrl-Alt-F2 切换到控制台 2。在某些发行版,登录显示的信息包括了与此控制台关联的 tty 设备,但大多不包括。它应该是  tty2,因为你是在控制台 2 中。

以非 root 用户身份登录。 然后你可以使用 who am i 命令 — 是的,就是这个命令,带空格 — 来确定哪个 tty  设备连接到这个控制台。

在我们实际执行此实验之前,看看 /dev 中的 tty2 和 tty3 的设备列表。

ls -l /dev/tty[23]

有大量的 tty 设备,但我们不关心他们中的大多数,只注意 tty2 和 tty3 设备。  作为设备文件,它们没什么特别之处。它们都只是字符类型设备。我们将使用这些设备进行此实验。 tty2 设备连接到虚拟控制台 2,tty3 设备连接到虚拟控制台  3。

按 Ctrl-Alt-F3 切换到控制台 3。再次以同一非 root 用户身份登录。 现在在控制台 3 上输入以下命令。

echo "Hello world" > /dev/tty2

按 Ctrl-Alt-f2 键以返回到控制台 2。字符串 “Hello world”(没有引号)将显示在控制台 2。

该实验也可以使用 GUI 桌面上的终端仿真器来执行。 桌面上的终端会话使用 /dev 中的伪终端设备,如 /dev/pts/1。 使用 Konsole 或  Xterm 打开两个终端会话。 确定它们连接到哪些伪终端,并使用一个向另一个发送消息。

现在继续实验,使用 cat 命令,试试在不同的终端上显示 /etc/fstab 文件。

另一个有趣的实验是使用 cat 命令将文件直接打印到打印机。 假设您的打印机设备是 /dev/usb/lp0,并且您的打印机可以直接打印 pdf  文件,以下命令将在您的打印机上打印 test.pdf 文件。

cat test.pdf > /dev/usb/lp0

/dev 目录包含一些非常有趣的设备文件,这些文件是硬件的入口,人们通常不认为这是硬盘驱动器或显示器之类的设备。 例如,系统存储器 RAM  不是通常被认为是“设备”的东西,而 /dev/mem 是通过其可以实现对存储器的直接访问的入口。 下面的例子有一些有趣的结果。

dd if=/dev/mem bs=2048 count=100

上面的 dd 命令提供比简单地使用 cat 命令 dump 所有系统的内存提供了更多的控制。 它提供了指定从 /dev/mem  读取多少数据的能力,还允许指定从存储器哪里开始读取数据。虽然读取了一些内存,但内核响应了以下错误,在 /var/log/messages 中可以看到。

Nov 14 14:37:31 david kernel: usercopy: kernel memory exposure attempt detected from ffff9f78c0010000 (dma-kmalloc-512) (2048 bytes)

这个错误意味着内核正在通过保护属于其他进程的内存来完成它的工作,这正是它应该工作的方式。 所以,虽然可以使用 /dev/mem 来显示存储在 RAM  内存中的数据,但是访问的大多数内存空间是受保护的并且会导致错误。 只可以访问由内核内存管理器分配给运行 dd 命令的 BASH shell  的虚拟内存,而不会导致错误。 抱歉,但你不能窥视不属于你的内存,除非你发现了一个可利用的漏洞。

/dev 中还有一些非常有趣的设备文件。 设备文件 null,zero,random 和 urandom 不与任何物理设备相关联。

例如,空设备 /dev/null 可以用作来自 shell 命令或程序的输出重定向的目标,以便它们不显示在终端上。 我经常在我的 BASH  脚本中使用这个,以防止向用户展示可能会让他们感到困惑的输出。 /dev/null 设备可用于产生一个空字符串。 使用如下所示的 dd 命令查看  /dev/null 设备文件的一些输出。

# dd if=/dev/null bs=512 count=500 | od -c  0+0 records in  0+0 records out0 bytes copied, 1.5885e-05 s, 0.0 kB/s  0000000

注意,因为空字符什么也没有所以确实没有可见的输出。 注意看看字节数。

/dev/random 和 /dev/urandom 设备也很有趣。 正如它们的名字所暗示的,它们都产生随机输出,不仅仅是数字,而是任何字节组合。  /dev/urandom 设备产生的是确定性的随机输出,并且非常快。 这意味着输出由算法确定,并使用种子字符串作为起点。  结果,如果原始种子是已知的,则黑客可以再现输出,尽管非常困难,但这是有可能的。 使用命令 cat /dev/urandom 可以查看典型的输出,使用  Ctrl-c 退出。

/dev/random 设备文件生成非确定性的随机输出,但它产生的输出更慢一些。  该输出不是由依赖于先前数字的算法确定的,而是由击键动作和鼠标移动而产生的。 这种方法使得复制特定系列的随机数要困难得多。使用 cat 命令去查看一些来自  /dev/random 设备文件输出。尝试移动鼠标以查看它如何影响输出。

正如其名字所暗示的,/dev/zero 设备文件产生一个无止境的零作为输出。 注意,这些是八进制零,而不是ASCII字符零(0)。 使用如下所示的 dd  查看 /dev/zero 设备文件中的一些输出

# dd if=/dev/zero bs=512 count=500 | od -c  0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0  *  500+0 records in  500+0 records out  256000 bytes (256 kB, 250 KiB) copied, 0.00126996 s, 202 MB/s  0764000

请注意,此命令的字节数不为零。

创建设备文件

在过去,在 /dev 中的设备文件都是在安装时创建的,导致一个目录中有几乎所有的设备文件,尽管大多数文件永远不会用到。  在不常发生的情况,例如需要新的设备文件,或意外删除后需要重新创建设备文件,可以使用 mknod 程序手动创建设备文件。  前提是你必须知道设备的主要和次要号码。

Centos 和 RHEL 6、7,以及 Fedora 的所有版本——可以追溯到至少 Fedora 15,使用较新的创建设备文件的方法。  所有设备文件都是在引导时创建的。 这是因为 udev 设备管理器在设备添加和删除发生时会进行检测。这可实现在主机启动和运行时的真正的动态即插即用功能。  它还在引导时执行相同的任务,通过在引导过程的很早的时期检测系统上安装的所有设备。 Linux.com 上有一篇很棒的对 udev 的描述。

回到 /dev 中的文件列表,注意文件的日期和时间。 所有文件都是在上次启动时创建的。 您可以使用 uptime 或者 last  命令来验证这一点。在上面我的设备列表中,所有这些文件都是在 11 月 7 日上午 7:06 创建的,这是我***一次启动系统。

当然, mknod 命令仍然可用, 但新的 MAKEDEV (是的,所有字母大写,在我看来是违背 Linux 使用小写命令名的原则的)  命令提供了一个创建设备文件的更容易的界面。 在当前版本的 Fedora 或 CentOS 7 中,默认情况下不安装 MAKEDEV 命令;它安装在 CentOS  6。您可以使用 YUM 或 DNF 来安装 MAKEDEV 包。

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么在Linux中管理设备”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网操作系统频道,更多相关知识等着你来学习!

--结束END--

本文标题: 怎么在Linux中管理设备

本文链接: https://lsjlt.com/news/284046.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在Linux中管理设备
    这篇文章主要介绍了怎么在Linux中管理设备,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。设备文件设备文件也称为设备特定文件。设备文件用来为操作系统和用户提供它们代表的设备接...
    99+
    2023-06-16
  • 在Linux中怎么使用Attic管理备份数据
    本篇内容介绍了“在Linux中怎么使用Attic管理备份数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Attic是一个Python写的删...
    99+
    2023-06-13
  • Win8.1设备管理器在哪怎么打开?
    设备管理器是一种Windows管理工具,通过“设备管理器”可以查看和更改设备属性、检查或更新设备驱动程序等,日常电脑维护中经常会用到。由于最新的Win8.1系统界面有所改变,导致不少网友不知道Wi...
    99+
    2023-06-04
    Win8.1 设备管理器
  • windows8系统怎么在设备管理器中禁用某一设备实现步骤
    Win8在设备管理器中禁用某一设备的方法如下: 1、在系统下同时按住键盘上“Windows 徽标” 键和“X” 键,在系统工具快捷入口打开“设备管...
    99+
    2022-06-04
    设备管理 步骤 器中
  • win10怎么打开设备管理器
    这篇文章主要介绍“win10怎么打开设备管理器”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win10怎么打开设备管理器”文章能帮助大家解决问题。方法一、在“计算机管理”中打开找到Win10系统桌面...
    99+
    2023-06-27
  • Win11怎么查看设备管理器
    在Windows 11中,您可以按照以下步骤查看设备管理器:1. 点击任务栏上的"开始"按钮,或者按下键盘上的Windows徽标键来...
    99+
    2023-08-21
    Win11
  • windows10设备管理器在哪儿windows10设备管理器部位详细介绍
    设备管理器在系统软件中是个可以检查现阶段联接到操作系统的机器设备一览的作用管理器,在这儿可以随时见到全部接入的机器设备,而且还能够查验现阶段机器设备的情况和禁止使用机器设备,那麼windows10设备管理器在哪儿呢,有的客户尽管了解这一管理...
    99+
    2023-07-19
  • winXP系统怎么在设备管理器中更新扫描端口?
    XP系统在设备管理器中更新扫描端口的方法 通过WIA扫描提示不能复印当前照片,通过Twain扫描提示成像设备无法初始化动电脑扫描正常问题解决 更新图像处理设备一体机驱动的方法: 1、选择Imaging devices选项...
    99+
    2023-06-12
    winXP 设备管理器 扫描端口 扫描 端口 系统
  • Win7系统设备管理器在哪里?怎么打开?
      在win7系统中,大家对设备管理器了解吗其实设备管理器是Win7自带的管理工具之一,可以用它查看和更改设备属性、更新设备驱动程序、配置设备设置和卸载设备。来看看随缘小编如何打开设备管理器吧!   下面介绍打开设备管理...
    99+
    2023-06-14
    Win7系统 设备管理器 打开方法 设备 管理器 Win7
  • 如何在Linux中进行硬件设备的识别和驱动管理
    在Linux中进行硬件设备的识别和驱动管理通常是通过以下几种方式来实现: 使用命令行工具: lspci:用于显示系统的PCI设...
    99+
    2024-04-02
  • win8设备管理器怎么打开?windows8打开设备管理器方法汇总
    新装的win8 相对应winxp win7操作起来还是有些不同的,有时我们需要打开设备管理器来进行一些操作,可是如何打开呢,下面给大家介绍些方法: 工具/原料 windows8 win8操作系统 方法一 1...
    99+
    2022-06-04
    设备管理器 方法
  • win7怎么通过设备管理器禁用指定设备
    本篇内容介绍了“win7怎么通过设备管理器禁用指定设备”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、点击键盘上面的 “Windows ”...
    99+
    2023-06-28
  • 计算机中设备管理是什么
    这篇文章主要介绍了计算机中设备管理是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。设备管理是指对计算机系统所有的外部设备的管理。设备管理是以设备为研究对象,追求设备综合效...
    99+
    2023-06-20
  • Golang技术在移动设备管理中的优势
    go 语言在 mdm 解决方案中表现出色,具备并行性、高性能和跨平台能力。并行性通过 goroutine 提升性能,高性能确保高效处理大量设备,跨平台能力简化了异构设备环境管理。实战案例...
    99+
    2024-05-09
    golang 移动设备管理 linux macos
  • 云服务器怎么做主备设备管理的
    云服务器主备设备管理是指,当一台云服务器出现故障时,其他云服务器可以接替其工作,保证业务的持续稳定运行。主备设备管理需要考虑到主设备和备份设备之间的通信、备份数据的同步、数据的备份恢复等问题。 云服务器的主备设备管理主要有以下几个方面: ...
    99+
    2023-10-27
    设备管理 服务器
  • Win8.1设备管理器在哪里 Win8.1系统打开设备管理器方法教程
    设备管理器是一种Windows管理工具,通过“设备管理器”可以查看和更改设备属性、检查或更新设备驱动程序等,日常电脑维护中经常会用到。由于最新的Win8.1系统界面有所改变,导致不少网友不知道Wi...
    99+
    2023-06-04
    Win8.1 设备管理器 方法 系统 教程
  • Win10设备管理器在哪里?Win10系统设备管理器打开方法图解
    Win10预览版发布已经有一些时间了,已经有不少电脑爱好者抢先安装体验了Win10,不过不少用户不知道Win10设备管理器在哪打开。设备管理器相信大家都不 Win10设备管理器在哪? 很简单,只需简单两步骤,就可以找到W...
    99+
    2023-06-08
    Win10 设备管理器 系统 设备 管理器
  • 怎么在linux中创建和管理LVM卷
    这篇文章主要介绍了怎么在linux中创建和管理LVM卷的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么在linux中创建和管理LVM卷文章都会有所收获,下面我们一起来看看吧。LVM(Logical Volum...
    99+
    2023-06-27
  • 怎么在Linux上管理字体
    小编给大家分享一下怎么在Linux上管理字体,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!添加新字体在相当长的一段时间里,我都是一个字体收藏家,甚至有些人会说我有...
    99+
    2023-06-16
  • win8.1设备管理器在哪里打开?Win8.1打开设备管理器的三种方法
      win8.1设备管理器在哪里打开?自从Win8.1系统的发布到投入使用,有一部分用户升级到Win8.1系统。一个新的系统,用起来自然不是那么的习惯的,毕竟是新的,还需要一段时间去适应。有一些用户还不知道...
    99+
    2022-06-04
    设备管理器 三种 方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作