我刚刚开始使用 Ubuntu 作为我的主要操作系统,我想了解一些我不应该做的事情,并从人们过去做过的坏事中学习。我碰到这些关于 UNIX 和 Linux 系统管理员的恐怖故事的电子邮件当他们是新的时候,他们已经在自己的系统上完成了。其中许多涉及使用 mknod 命令来记录和修复问题。我以前从未听说过这个命令,Ubuntu 中的手册页也不是很有帮助。所以我的问题是,这个命令的用途是什么,以及它在日常使用中有用的一些示例是什么?
答案1
mknod
最初用于创建填充的字符和块设备/dev/
。如今,udev
当内核检测到相应的硬件时,诸如此类的软件会自动在虚拟文件系统上创建和删除设备节点,但最初/dev
只是/
在安装过程中填充的一个目录。
所以,是的,如果发生近乎彻底的灾难,导致/dev
虚拟文件系统无法加载和/或udev
严重失败,请使用mknod
煞费苦心地重新填充至少一个基本的设备树来获得某物备份是可以完成的...但是,是的,这是系统管理员的恐怖故事时间。就我个人而言,我推荐救援 USB 记忆棒或 CD。
除了创建命名管道之外,我想不出最终用户需要关心的单一可能的日常使用 - 即使这也扩展了“日常使用”的定义。
答案2
您可以用它创建一个命名管道。
我将它与一个程序一起使用来读取它,然后使用另一个程序来写入它。
使进程之间的通信更加容易。
否则,您可以为不存在的设备创建设备文件。
答案3
作为在原始设备上工作以创建 Oracle ASM 磁盘组的 Oracle DBA,我们经常使用mknod
链接设备。
上面的回复对我非常有帮助,因为我们不是系统管理员。我只是想指出,从存储管理员的角度来看,它可能很少使用,mknod
但从 Oracle ASM 的角度来看,它是一种常见的用途。 (也许有人可以为我们想出更好的方法?)
答案4
命令“mknod”由 AT&T 向 Unix(tm) Version 4 的被许可人发布。我建议你们花时间和金钱去获得一份副本是值得的
贝尔系统技术期刊,57:6。1978 年 7 月至 8 月,第 1905-1929 页。 UNIX 分时系统。 (里奇,DM;汤普森,K。)
该期,特别是那篇文章,将引导您了解几个基本概念,这些概念允许构建 Unix(tm)) 那样的优雅、紧凑、快速、稳定、安全和多功能的操作系统。现在可用的各种系统仍然非常通用;-)
我将尝试在这里提及其中的一些。
1) setuid 和 setgid 位以及如何使用所述位将用户分为受信任和不受信任的权限域。跳跃永恒的是,受信任的用户将不太可能命令系统“#cd /;” rm -rf * .o”,注意权限的不当使用和“破坏空间”。另请注意,带有引用短语的句子的结尾决定了句号和右引号的顺序。英语语法很糟糕(fm)。 dmr和ken将semnal专利捐赠给公众,祝福他们。
2) 通过与文件相同的命名空间来访问设备。在这里,一个小工具的简单优雅与其他简单工具相结合来执行创始人没有想到的活动变得强大。
3)数据空间中的文件是一个字符串。结构是由程序空间中的程序强加的,并且与复杂的瑞士军刀程序没有紧密的联系。 Apple(R)、Microsoft(R) 和 IBM(R) 如果有更多人阅读 BSTJ,可能会有更好的产品。
4) 标准输入、标准输出、标准错误。
5) shell,解释性命令处理器,能够轻松组合简单的工具。
6)只优化内部循环中的代码,将有限的时间和金钱花在重要的地方。
7) 不要在语言翻译处理器中嵌入 i/o 语法。
C.<FORTRAN
8)亲吻。
9) “设计和实现一个好的实时系统的多用户分时 ayaeem 系统扩展比反过来更容易,”我,RSX-11D 的分时扩展,使用小工具实现,用 MACRO 编写11 当不可避免时,否则更高级别的语言 pr 脚本非常好,16 个用户使用 248k 字节 PDP-11//45(其余核心为 16k 固态内存)。使用 LAB-11 和创造性的定制 A/D 接口,使用 FOCAL、BASIC、FORTRAN IV、C、MACRO-11 进行并行程序开发、链接编辑、程序执行、批处理、交互以及多个科学实验的控制/数据采集, D/A、高分辨率时钟、...
使用 9600 波特 CRT 或 120cps 打印机 30cps DECwriters 没有明显的令人恼火的延迟编辑。使用 300 lpm 打印机时有点不稳定。用于 RJE 的 UT200 和 2780。程序开发速度比 RSX-11M、RSX-11M+、IAS 和早期版本的 VMS 更快。
一个非常简单的分时调度程序,使用作为出队实现的优先级链接 ATL 的良好特性,实现为实时任务。
如今,Unix 品种快如闪电,但这只是因为 CPU 可以在三秒内完成无限循环。 TFC。