mknod命令

mknod命令创建特殊文件 语法只能由 root 用户或系统组成员运行 mknodName b c MajorMinor 创建 FIFO 已命名的管道 mknodName p 描述 mknod 命令建立一个目录项和一个特殊文件的对应索引节点 第一

创建特殊文件。

语法

只能由 root 用户或系统组成员运行

mknod Name { b | c } Major Minor

创建 FIFO(已命名的管道)

mknod Name { p }

描述

mknod 命令建立一个目录项和一个特殊文件的对应索引节点。第一个参数是 Name 项设备的名称。选择一个描述性的设备名称。mknod 命令有两种形式,它们有不同的标志。

mknod 命令的第一种形式只能由 root 用户或系统组成员执行。在第一种形式中,使用了b 或 c 标志。b 标志表示这个特殊文件是面向块的设备(磁盘、软盘或磁带)。c 标志表示这个特殊文件是面向字符的设备(其他设备)。

第一种形式的最后两个参数是指定主设备的数目,它帮助 操作系统查找设备驱动程序代码,和指定次设备的数目,也就是单元驱动器或行号,它们是十进制或八进制的。一个设备的主要和次要编号由该设备的配置方法分配,它们保存在 ODM 中的 CuDvDr 类里。在这个对象类中定义了主要和次要编号以确保整个系统设备定义的一致性,这是很重要的。

在 mknod 命令的第二种形式中,使用了 p 标志来创建 FIFO(已命名的管道)。

标志

b 表示特殊文件是面向块的设备(磁盘、软盘或磁带)。
c 表示特殊文件是面向字符的设备(其他设备)。
p 创建 FIFO(已命名的管道)。

————————————————————————

c.创建虚拟设备(dev),日志记录的时候有的选项可能用到它们。在默认情况下,是使用/dev目录下的文件,但是由于我们需要把DNS限制到一个目录,所以必须完全把/dev下用到的文件(或者说设备)模拟过来才可以。

ls -lL /dev/zero /dev/null /dev/random

看到类似

crw-rw-rw- 1 root root 1, 3 2003-09-15 /dev/null

crw-r–r– 1 root root 1, 8 2003-09-15 /dev/random

crw-rw-rw- 1 root root 1, 5 2003-09-15 /dev/zero

这样的,将其中的1,3这样的数字记录下来,这表示主设备号和次设备号(一般来说主设备号用来区分设备的种类;次设备号则是为了作唯一性区分,标明不同属性——注意,在unix系统中是把设备也当作文件来对待的),在redhat 9下,ls加不加-L参数都无所谓,但是在Solaris下则一定要加上才可以显示。

mknod dev/null c 1 3

mknod dev/zero c 1 5

mknod dev/random c 1 8

============================================================================

mknod [options] name {bc} major minor

mknod [options] name p

GNU 选项(缩写):

[-m mode] [–help] [–version] [–]

描述

mknod 用指定名称产生一个FIFO(命名管道),字符专用或块专用文件。

文件系统中的一个专用文件存贮着三种信息( 布朗型、整型、整型)。布朗型在字符文件与块文件之间作出选择,两个整型是主、次设备号。

通常,一个专用文件并不在磁盘上占用空间,仅仅是为操作系统提供交流,而不是为数据存贮服务。一般地,专用文件会指向一个硬件设备(如:磁盘、磁带、打印机、 虚拟控制台)或者操作系统提供的服务(如:/dev/null, /dev/random)。

块文件通常类似于磁盘设备(在数据可以被访问的地方赋予一个块号,意味着同时设定了一个块缓存)。所有其他设备都是字符文件。(以前,两种文件类型间是有差别的。比如:字符文件I/O没有缓存,而块文件则有。)

mknod命令就是用来产生这种类型文件的。

以下参数指定了所产生文件的类型:

p

FIFO型

b

块文件

c

字符文件

GNU版本还允许使用u(’unbufferd’非缓冲化),以保持与C语言的一致。

当创建一个块文件或字符文件时,主、次设备号必须在文件类型参数后给出。(十进制或八进制以0开头;GNU 版本还允许使用以0x开头的十六进制)缺省地,所产生的文件模式为0666(’a+rw’)。

选项

-m mode, –mode=mode

为新建立的文件设定模式,就象应用命令chmod一样,以后仍然使用缺省模式建立新目录。

GNU 标准选项

–help

在标准输出上显示使用信息并顺利退出。

–version

在标准输出上显示版本信息并顺利退出

终端选项列表。

mknod命令详解

mknod [options] name {bc} major minor

mknod [options] name p

GNU 选项(缩写):

[-m mode] [–help] [–version] [–]

描述

mknod 用指定名称产生一个FIFO(命名管道),字符专用或块专用文件。

文件系统中的一个专用文件存贮着三种信息(布尔型、整型、整型)。布尔型在字符文件和块文件之间作出选择,两个整型是主、次设备号。

通常,一个专用文件并不在磁盘上占用空间,仅仅是为操作系统提供交流,而不是为数据存贮服务。一般地,专用文件会指向一个硬件设备(如:磁盘、磁带、打印机、虚拟控制台)或操作系统提供的服务(如:/dev/null, /dev/random)。

块文件通常类似于磁盘设备(在数据能够被访问的地方赋予一个块号,意味着同时设定了一个块缓存)。任何其他设备都是字符文件。(以前,两种文档类型间是有差别的。比如:字符文档I/O没有缓存,而块文档则有。)

mknod命令就是用来产生这种类型文件的。

以下参数指定了所产生文件的类型:

b create a block (buffered) special file

c, u create a character (unbuffered) special file

p create a FIFO

GNU版本还允许使用u(’unbufferd’非缓冲化),以保持和C语言的一致。

当创建一个块文件或字符文件时,主、次设备号必须在文件类型参数后给出。但当指定一个p(FIFO)类型时,主次设备号必须省略。(设备号默认是以十进制表示;八进制以0开头;GNU 版本还允许使用以0x开头的十六进制)

选项

-m mode, –mode=mode

为新建立的文档设定模式,就象应用命令chmod相同,以后仍然使用缺省模式建立新目录。 缺省地,所产生的文档模式为0666(’a+rw’)

GNU 标准选项

–help

在标准输出上显示使用信息并顺利退出。

–version

在标准输出上显示版本信息并顺利退出

主、次设备号可在内核 源代码的./Documentation/devices.txt里查到,mknod 可为这些指定的设备创建节点,当然节点的位置不是一定要在/dev下,但是为了便于管理一般都是指定/dev。驱动程序是根据主、次设备号定位的,但是你的 应用程序open一个设备时,一定要是你指定的节点位置。例如:

mknod /dev/input/mouse0 c 13 32

也可以

mknod /tmp/mymouse c 13 32

//

下面是某个网友利用mknod成功解决找不到swap分区的问题。

开了一个大程序,用free看看内存是用,却显示如下

linuxman:~ # free

total used free shared buffers cached

Mem: 4580 0 2928 53344

-/+ buffers/cache: 60852

Swap: 0 0 0

怪了,swap怎么是零? 用#swapon -a,却说是没有这个文件/dev/hda7!

关于swap,我的fstab文件中有一行是这样的:

/dev/hda7 swap swap pri=42 0 0

于是:#ls /dev/hda*,果然没有hda7这个block设备!那就创建一个!

我就用#mknod /dev/hda7 b 3 7,再chmod 和 chgrp 一下就可以了!

这样#ls /dev/hda7就显示这样了:

brw-rw—- 1 root disk 3, 7 2005-04-12 07:00 /dev/hda7

然后再#swapon -a就可以了;#free显示

total used free shared buffers cached

Mem: 6012 0 5596 55304

-/+ buffers/cache: 66912

Swap: 0

转载于:https://my.oschina.net/u//blog/36776

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229237.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午5:09
下一篇 2026年3月16日 下午5:09


相关推荐

  • 最新Claude注册攻略详解,快速入门必看技巧

    最新Claude注册攻略详解,快速入门必看技巧

    2026年3月15日
    2
  • pandas fillna详解

    pandas fillna详解pandas中补全nan具体的参数Series.fillna(self,value=None,method=None,axis=None,inplace=False,limit=None,downcast=None,**kwargs)[source]参数: value:scalar,dict,Series,orDataFrameValuetouset…

    2022年8月12日
    16
  • mask scoring rcnn_faster rcnn详解

    mask scoring rcnn_faster rcnn详解1.M,对应着图像中的CNN部分,其对输入进来的图片有尺寸要求,需要可以整除2的6次方。在进行特征提取后,利用长宽压缩了两次、三次、四次、五次的特征层来进行特征金字塔结构的构造。ask-RCNN使用Resnet101作为主干特征提取网络2.ResNet101有两个基本的块,分别名为ConvBlock和IdentityBlock,其中ConvBlock输入和输出的维度是不一样的,所以不能连续串联,它的作用是改变网络的维度;IdentityBlock输入维度和输出维度相同,可以串联,用于加深网络的。

    2026年4月17日
    5
  • NumPy 安装

    NumPy 安装NumPy 安装

    2026年3月17日
    2
  • 怎么用浏览器在线打开pdf文件_PDF文件怎么编辑

    怎么用浏览器在线打开pdf文件_PDF文件怎么编辑在web开发当中我们经常需要进行需要在线浏览PDf内容,在线嵌入动态pdf,传统的解决方法安装客户端PDF阅读器,如果是在谷歌是可以在线浏览的,因为他自身就带了一些插件,以前遇到这样的问题往往是费时又

    2022年8月2日
    11
  • navicat 激活码[免费获取][通俗易懂]

    (navicat 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月20日
    426

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号