在linux中了解设备的特殊文件主次号
在linux中了解设备的特殊文件主次号,linux,file,device,Linux,File,Device,/dev中的所有文件都是特殊文件。。。它们代表计算机的设备。 它们是用mknodsyscall创建的。我的问题是:我怎样才能知道辅修和 用于创建此特殊文件的主要编号?该列表称为LANANA Linux设备列表,由Alan Cox管理 您可以在线()或在Linux源代码中找到。它在内核树中的文件名为 要查看在/dev中创建节点(或任何设备节点)的主要编号和次要编号,只需使用ls和-l选项: 22:26 jsmith@undertow% ls -l /dev/xvd? brw-rw---- 1 ro
/dev
中的所有文件都是特殊文件。。。它们代表计算机的设备。
它们是用mknod
syscall创建的。我的问题是:我怎样才能知道辅修和
用于创建此特殊文件的主要编号?该列表称为LANANA Linux设备列表,由Alan Cox管理 您可以在线()或在Linux源代码中找到。它在内核树中的文件名为 要查看在
/dev
中创建节点(或任何设备节点)的主要编号和次要编号,只需使用ls
和-l
选项:
22:26 jsmith@undertow% ls -l /dev/xvd?
brw-rw---- 1 root disk 202, 0 Nov 1 20:31 /dev/xvda
brw-rw---- 1 root disk 202, 16 Nov 1 20:31 /dev/xvdb
brw-rw---- 1 root disk 202, 32 Nov 1 20:31 /dev/xvdc
在此示例中,202
是三个设备的主要编号,0
、16
和32
是次要编号。左侧的b
表示节点是块设备。另一种选择是c
,一种字符设备:
crw-rw-rw- 1 root tty 5, 0 Nov 22 00:29 /dev/tty
例如,在这个系统上,/dev/mapper/control
将是c:10:57
,而/dev/mapper/*
的其余部分将是b:254:
,这可能会因启动周期的不同而有所不同,甚至在加载/卸载模块和添加/删除设备时也是如此
您可以在/sys
中进一步查看这些设备注册
$ readlink /sys/dev/block/2:0
../../devices/platform/floppy.0/block/fd0
$ cat /sys/devices/platform/floppy.0/block/fd0/dev
2:0
$ readlink /sys/dev/char/1:3
../../devices/virtual/mem/null
$ cat /sys/devices/virtual/mem/null/dev
1:3
$readlink/sys/dev/block/2:0
../../devices/platform/floppy.0/block/fd0
$cat/sys/devices/platform/floppy.0/block/fd0/dev
2:0
$readlink/sys/dev/char/1:3
../../devices/virtual/mem/null
$cat/sys/devices/virtual/mem/null/dev
1:3
你也可以使用stat
$ stat -c 'major: %t minor: %T' <file>
$stat-c'大调:%t小调:%t'
特别是对于块设备:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 90G 0 disk
├─sda1 8:1 0 4G 0 part [SWAP]
├─sda2 8:2 0 4G 0 part /
不依赖于统计数据的备选方案:
$ cat /sys/class/*/random/dev
1:8
嘿,谢谢!但我在问如何通过命令行做到这一点…:DDo通过命令行执行什么操作?除了
mknod
,您的问题没有提到任何关于命令行的内容。看起来lanana.org域已过期(“lanana.org已于2012年10月4日过期,正在等待续订或删除”)。我希望这会得到解决-看起来可能是一个反复出现的问题:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 90G 0 disk
├─sda1 8:1 0 4G 0 part [SWAP]
├─sda2 8:2 0 4G 0 part /
$ cat /sys/class/*/random/dev
1:8