如何在 BSD 上创建 /dev/null?

如何在 BSD 上创建 /dev/null?

/dev/null我的系统上删除了错误编写的脚本。我确实找到了答案这里并尝试了一下。但是一旦我向 new 写入内容/dev/null,系​​统就会崩溃。恐怕这个答案不适合 BSD。

有人可以帮忙吗?

这是 FreeBSD 10.3

答案1

在 FreeBSD 上:

mknod /dev/null c 15 0 root:wheel
chmod 0666 /dev/null

正如您所发现的,数字 15 和 0 不能移植到其他系统。

答案2

创建设备节点条目的命令是mknod几乎在所有 UNIX 系统上。设备编号完全取决于 UNIX 版本,因此您需要在文档中查找它们。在某些系统上,man 4 nullnull第 4 节“特殊文件”中的手册页)会告诉您设备号是什么。 (设备位于 BSD 和 Linux 上的第 4 节中,但其他 Unix 变体上的节号可能会有所不同,例如 Solaris 上的节号为第 7 节。)

如果手册页没有告诉您,请查找MAKEDEV命令,通常位于/dev.这通常是一个 shell 脚本,您可以在其中轻松找到设备编号,或将其作为cd /dev && ./MAKEDEV null.

一些现代 UNIX 系统不使用,MAKEDEV因为设备节点是自动创建的。在使用 udev 的 Linux 系统(某些嵌入式系统除外)上就是这种情况,在使用 udev 的 FreeBSD 上也是如此开发文件系统。如何重新创建通常自动创建的条目取决于自动设备创建系统。在 FreeBSD 上,您只需为命令指定设备名称即可mknodmknod /dev/null

相关内容