我的编程空间,编程开发者的网络收藏夹
学习永远不晚

linux dev中常见特殊设备有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

linux dev中常见特殊设备有哪些

本篇内容介绍了“linux dev中常见特殊设备有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

linux是文件型系统,所有硬件如软件都会在对于的目录下面有相应的文件表示。对于dev这个目录,我们知道它下面的文件,表示的是linux的设备。在windows系统中,设备大家很好理解,象硬盘,磁盘指的是实实在在硬件。而在文件系统的linux下面,都有对于文件与这些设备关联的。访问它们就可以放到实际硬件,想想还是linux灵活了。变成文件,操作该多简单了。不用调用以前com,prt等接口了。直接读文件,写文件就可以向设备发送读或者写操作了。 按照读写存储数据方式,我们可以把设备分为以下几种:字符型设备,块设备,伪设备。

一、设备分类

字符型设备

字符设备是指每次与系统传输1个字符的设备。这些设备节点通常为传真、虚拟终端和串口调制解调器、键盘之类设备提供流通信服务,它通常不支持随机存取数据。 字符设备在实现时,大多不使用缓存器。系统直接从设备读取/写入每一个字符。例如,键盘这种设备提供的就是一个数据流,当你敲入“cnblogs”这个字符串时,键盘驱动程序会按照和输入完全相同的顺序返回这个由七个字符组成的数据流。它们是顺序的,先返回c,最后是s。

块设备

块设备是指与系统间用块的方式移动数据的设备。这些设备节点通常代表可寻址设备,如硬盘、CD-ROM和内存区域。

块设备通常支持随机存取和寻址,并使用缓存器。操作系统为输入输出分配了缓存以存储一块数据。当程序向设备发送了读取或者写入数据的请求时,系统把数据中的每一个字符存储在适当的缓存中。当缓存被填满时,会采取适当的操作(把数据传走),而后系统清空缓存。它与字符设备不同之处就是,是否支持随机存储。字符型是流形式,逐一存储。

伪设备

在类Unix操作系统中,设备节点并不一定要对应物理设备。没有这种对应关系的设备是伪设备。操作系统运用了它们提供的多种功能。部份经常使用到的伪设备包括: null,zero,full,loop,random,urandom

二、特殊设备及使用

这里说到特殊设备除了硬盘主板等,只是它在linux shell命令里面,有特殊的作用,因此把它们单独拿出来。这些设备分别是:

/dev/stdin
/dev/stdout
/dev/stderr
/dev/null
/dev/zero
/dev/full
/dev/random,urandom
/dev/fd
/dev/tcp|upd
/dev/loop

标准输出输入设备

还记得上次说的,linux重定向吗?可以看下:linux shell数据重定向(输入重定向与输出重定向)详细分析 。它们就是与几个特殊文件描述符对应,fd0,fd1,fd2 (stdin,stdout,stderr)

如:

[chengmo@centos5 shell]$ cat>teststdin</dev/stdintest#ctrl+D#cat从/dev/stdin获得数据,然后将标准输出,输入的到teststdin文件[chengmo@centos5 shell]$ cat teststdin test [chengmo@centos5 shell]$ cat>teststdintest#ctrl+D#不指定输入,默认输入设备就是/dev/stdinn

/dev/stdin指的就是键盘设备

[chengmo@centos5 shell]$ cat test.sh >/dev/stdout |grep 'echo'echo "very good!";echo "good!";echo "pass!";echo "no pass!"#/dev/stdout指向就是标准输出,因此重定向给它的数据,最终发送到屏幕上(fd1)     [chengmo@centos5 shell]$ cat test.sh  |grep 'echo'           echo "very good!";echo "good!";echo "pass!";echo "no pass!";      [chengmo@centos5 shell]$ cat test.sh >/dev/stderr |grep 'echo'  #!/bin/sh scores=40;if [[ $scores -gt 90 ]]; then    echo "very good!";elif [[ $scores -gt 80 ]]; then    echo "good!";elif [[ $scores -gt 60 ]]; then    echo "pass!";else    echo "no pass!";fi;#/dev/stderr 指是错误输出,默认也是输出到屏幕上面,但是它的内容不能通过管道传递给grep,管道只能传递标准输出

/dev/null设备

是个黑洞设备,它丢弃一切写入其中数据,空设备通常被用于丢弃不需要的输出流。记得当年用windows时候,有个类似的设备:NUL ,跟这个功能一样。任何写入该设备数据都会被丢弃掉。从这个里面读取数据返回是空。将一些不用内容经常发送给这个设备,丢弃不需要的数据。

如:

[chengmo@centos5 shell]$ cat /dev/null[chengmo@centos5 shell]$ cat test.sh >/dev/null#读该设备为空,写入该设备数据都丢弃了

/dev/zero设备

在类UNIX 操作系统中, /dev/zero 是一个特殊的文件,当你读它的时候,它会提供无限的空字符(NULL, ASCII NUL, 0x00)。其中的一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件。

如:

[chengmo@centos5 shell]$ dd if=/dev/zero of=testzero count=1024 bs=10241024+0 records in1024+0 records out1048576 bytes (1.0 MB) copied, 0.0107194 seconds, 97.8 MB/s#创建一个大小为1M文件,该文件一个块是1024字节,一共是1024块(刚好1M),用/dev/zero文件内容填充它。输出创建到:testzero文件  [chengmo@centos5 shell]$dd if=/dev/zero of=/dev/磁盘分区#这个命令一定不要随便用,有点象windows里面的粉碎文件工具。不过它是用\0x00填充整个分区。这样做数据是不可以恢复的了。 [chengmo@centos5 shell]$cat /dev/zero>testinputzero#这个命令也不能随便使用咯,/dev/zero设备一个特效是,如果你读取的话,是一个死循环会输出无穷的\x00,这样你将创建一个用\x00填充的文件。如果你没有限制该用户磁盘配额。它将耗尽整个磁盘空间。

在linux资源配额限制里面,如果没有现在普通用户的磁盘空间利用,或内存使用。一个普通用户就可以通过上面方法一会就塞满整个磁盘。也可以通过while(true) {fork……}类程序,启动无限线程,耗尽整个系统内存。

/dev/full设备

类Unix系统中,/dev/full(常满设备)是一个特殊设备文件,总是在向其写入时返回设备无剩余空间(错误码为ENOSPC),读取时则与/dev/zero相似,返回无限的空字符(NULL, ASCII NUL, 0x00)。这个设备通常被用来测试程序在遇到磁盘无剩余空间错误时的行为。

如:

[chengmo@centos5 shell]$ echo 'chengmo' >/dev/full-bash: echo: write error: 设备上没有空间[chengmo@centos5 shell]$ echo $?1#命令执行返回错误

/dev/random[urandom]

在类UNIX操作系统中,/dev/random是一个特殊的设备文件,可以用作随机数发生器或伪随机数发生器。它允许程序访问来自设备驱动程序或其它来源的背景噪声。常用作随机数发生器。具体参考:linux shell实现随机数多种方法(date,random,uuid)

/dev/fd

记录用户打开的文件描述符

[chengmo@centos5 shell]$ ls /dev/fd/
0 1 2 3

详细参考:

linux shell数据重定向(输入重定向与输出重定向)详细分析 文件描述符介绍。

/dev/tcp[udp]/host/port

读取该类形式设备,将会创建一个连接host主机port端口的tcp[upd]连接。打开一个socket通讯接口。

详细使用可以参考:

linux shell 脚本实现tcp/upd协议通讯(重定向应用)

/dev/loop

在类UNIX操作系统中,Loop设备 可以把loop 文件,作为块设备挂载使用。

如:

[chengmo@centos5 shell]$mount -o loop example.img /home/chengmo/img

#将img镜像文件挂载到/home/chengmo/img目录下面,有了这个设备,我们不需要通过虚拟光驱就可以读虚拟磁盘格式的文件。

说了很多linux 特殊设备,其它象cpu,内存,磁盘,网络,键盘,终端设备。跟我们windows里面常见差不多。

“linux dev中常见特殊设备有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

linux dev中常见特殊设备有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

linux dev中常见特殊设备有哪些

本篇内容介绍了“linux dev中常见特殊设备有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!linux是文件型系统,所有硬件如软件都
2023-06-09

linux dev 常见特殊设备介绍与应用(loop,null,zero,full,random)

linux是文件型系统,所有硬件如软件都会在对于的目录下面有相应的文件表示。对于dev这个目录,我们知道它下面的文件,表示的是linux的设备。在windows系统中,设备大家很好理解,象硬盘,磁盘指的是实实在在硬件。而在文件系统的linu
2022-06-04

shell脚本中常见的一些特殊符号和作用有哪些

这篇文章主要讲解了“shell脚本中常见的一些特殊符号和作用有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell脚本中常见的一些特殊符号和作用有哪些”吧!1、{} 大括号:用法一:
2023-06-09

linux shell中的特殊字符有哪些

这篇文章主要介绍“linux shell中的特殊字符有哪些”,在日常操作中,相信很多人在linux shell中的特殊字符有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux shell中的特殊字符
2023-06-16

Linux中ping命令有哪些特殊用法

这篇文章主要介绍了Linux中ping命令有哪些特殊用法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。不管在windows平台,还是在linux平台,ping都是非常常用的网
2023-06-27

linux Shell中特殊字符的用法有哪些

这篇文章给大家分享的是有关linux Shell中特殊字符的用法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。特殊符号在shell中常用的特殊符号罗列如下:# ; ;; . , / \\ string| !
2023-06-16

android连接设备常见问题有哪些

1. 设备无法被识别:可能是由于USB驱动未安装或者设备未启用USB调试模式。2. USB连接断开:可能是由于USB线松动或者设备电量不足。3. 设备无法连接互联网:可能是由于网络设置错误或者无线网络信号强度不稳定。4. 设备无法进行文件传
2023-09-04

Linux中有哪些常见的问题

这篇文章主要介绍了Linux中有哪些常见的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、 文档文档及其不足是今年最大的痛点之一。尽管开源的方式产生了优秀的代码,但是制
2023-06-10

Linux中mv命令的特殊使用方法有哪些

这篇文章主要介绍“Linux中mv命令的特殊使用方法有哪些”,在日常操作中,相信很多人在Linux中mv命令的特殊使用方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux中mv命令的特殊使用方法
2023-06-27

Linux中的常见文件类型有哪些

Linux中存在多种文件类型,具有各自的特点:可执行文件:.bin、.exe、.sh文本文件:.txt、.doc、.odt代码文件:.c、.cpp、.py、.java配置文件:.conf、.ini、.xml媒体文件:.mp3、.mp4、.avi、.jpg、.png存档文件:.zip、.tar、.gz、.bz2特殊文件:指向设备、信息或虚拟文件系统的文件其他文件类型:.so、.dll、.jar、.dat
Linux中的常见文件类型有哪些
2024-04-02

Linux中有哪些常见的文件类型

这篇文章将为大家详细讲解有关Linux中有哪些常见的文件类型,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。系统文件文件扩展名说明.conf一种配置文件。配置文件有时也使用 .cfg.lock
2023-06-16

Linux中常见的引导程序有哪些

这篇文章主要为大家展示了“Linux中常见的引导程序有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中常见的引导程序有哪些”这篇文章吧。引导是计算机开始输入时常采用的一种手段。计算
2023-06-27

Linux中常见的故障问题有哪些

小编给大家分享一下Linux中常见的故障问题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源
2023-06-27

Linux中常见的系统进程有哪些

本篇内容主要讲解“Linux中常见的系统进程有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux中常见的系统进程有哪些”吧!kswapd0系统每过一定时间就会唤醒kswapd,看看内存
2023-06-27

Linux中常见的包管理器有哪些

这篇文章给大家分享的是有关Linux中常见的包管理器有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。简单来说,Linux软件包管理工具是一组命令的集合,其作用是提供在操作系统中安装,升级,卸载需要的软件的方法
2023-06-27

网页设计中常见的错误有哪些

本篇内容主要讲解“网页设计中常见的错误有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“网页设计中常见的错误有哪些”吧!  网页结构上的瑕疵   很多设计师把握不好承载信息的空间与留白之间的平
2023-06-08

Linux中常见的ssh终端工具有哪些

本篇内容介绍了“Linux中常见的ssh终端工具有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!工具/原料puttysecureCRTx
2023-06-28

linux系统中设备类型有哪些

本文小编为大家详细介绍“linux系统中设备类型有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux系统中设备类型有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。linux系统中设备分为3类:1、
2023-07-04

编程热搜

目录