分类: LINUX
2010-07-22 19:27:10
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
[功能]
创建块/字符设备特殊文件。
[举例]
*建立一个新的名叫 coffee',主设备号为12和从设备号为2的设备文件:
$mknod /dev/coffee c 12 2
你并不是必须将设备文件放在目录 /dev中,这只是一个传统。
*创建一个管道文件:
#mknod pipeFile p
这样,生成一个pipeFile文件.用echo "good">pipeFile之后阻塞,再用cat pipeFile会打印出"good";用cat pipeFile会阻塞,再用echo "good",这样cat处会打印pipeFile.
[描述]
创建指定TYPE的特殊文件NAME.
文件系统中的一个专用文件存贮着三种信息(布朗型、整型、整型)。布朗型在字符文件与块文件之间作出选择,两个整型是主、次设备号。
通常,一个专用文件并不在磁盘上占用空间,仅仅是为操作系统提供交流,而不是为数据存贮服务。一般地,专用文件会指向一个硬件设备(如:磁盘、磁带、打印机、虚拟控制台)或者操作系统提供的服务(如:/dev/null, /dev/random)。
块文件通常类似于磁盘设备(在数据可以被访问的地方赋予一个块号,意味着同时设定了一个块缓存)。所有其他设备都是字符文件。(以前,两种文件类型间是有差别的。比如:字符文件I/O没有缓存,而块文件则有。)
mknod命令就是用来产生这种类型文件的。
选项:
-Z, --context=CTX 设置SELinux安全环境为CTX(什么意思?).
-m, --mode=MODE 设置文件的权限为MODE,不是a=rw-umask
--help 帮助信息
--version 版本信息
当TYPE是b,c,或者u的时候,必须指定MAJOR和MINOR,如果TYPE是p则可以忽略.如果MAJOR或MINOR以0x或者0X开头的时候,被解释为16进制;如果以0开头,被解释为八进制;否则就是十进制。
TYPE可能的取值是:
b 创建一个块(有缓存的)特殊设备文件。
c, u 创建一个字符(无缓存的)特殊设备文件。
GNU版本还允许使用u('unbufferd'非缓冲化),以保持与C语言的一致。
p 创建FIFO文件。
一般来说主设备号用来区分设备的种类;次设备号则是为了作唯一性区分,标明不同属性.
[其他]
一些创建设备文件的命令例子:
#mknod dev/null c 1 3
#mknod dev/zero c 1 5
#mknod dev/random c 1 8