it-swarm.cn

mknod命令的作用是什么?

我刚开始使用Ubuntu作为主要操作系统,我想学习一些我不应该做的事情,并了解人们过去所做的坏事情。我碰到了 这些有关UNIX和Linux系统管理员的恐怖故事的电子邮件 是在新系统上在他们自己的系统上完成的。其中许多涉及使用mknod命令来发现和解决问题。我以前从未听说过此命令,而Ubuntu中的手册页不是很有帮助。所以我的问题是,此命令用于什么用途,在日常使用中有哪些有用的示例?

52
Mark Tomlin

mknod最初用于创建字符并阻止填充/dev/的设备。如今,当内核检测到相应的硬件时,诸如udev之类的软件会自动在虚拟文件系统上创建并删除设备节点,但最初/dev只是/中的一个目录,该目录已在安装。

因此,是的,如果发生几乎完全的灾难,导致/dev虚拟文件系统无法加载和/或udev严重失败,请使用mknod精心地重新填充至少一个基本的设备树得到某物可以完成备份...但是,是的,这是sysadmin恐怖的故事时间。就个人而言,我建议使用应急USB记忆棒或CD。

除了创建命名管道外,我无法想到最终用户需要担心的单个日常使用-甚至扩展了“日常使用”的定义。

47
Shadur

您可以使用它来创建命名管道。

我将其与一个程序一起使用来读取,而另一个程序则将其写入。

使流程之间的通信更加容易。

否则,您可以为不存在的设备创建设备文件。

另外: http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds3/mknod.htm

7
polemon

当Oracle DBA在原始设备上创建Oracle ASM磁盘组时,我们经常使用mknod链接设备。

上面的回复对我非常有帮助,因为我们不是系统管理员。我只是想指出,从存储管理员的角度来看,使用mknod可能很少见,但从Oracle ASM的角度来看,它是一种普遍的用法。 (也许有人可以为我们提供更好的方法?)

5
Jay Jee

恕我直言,即使是用于创建命名管道,mkfifo命令也比mknod更好。第一,它的名称具有自我描述性,第二,它允许-m选项覆盖umask设置。

3
Tom