在Linux环境中,设备文件都在/dev目录下,这些设备文件并不占用磁盘块来存储数据,因此设备文件没有大小,只是在inode表上标识一下元数据。元数据存有设备的设备号。
设备号分为主设备好、次设备号,主设备号表示设备类型。设备文件分块设备文件(b)、字符设备文件(c)。
块设备 按块为单位 随机访问设备
字符设备 以字符为单位 线性访问
b 硬盘
c 键盘
主设备号 major number 用于标识设备类型
次设备号 ninor number 用于标识同一类型的不同设备
块设备
[[email protected] ~]# ll -h /dev/ | grep sd lrwxrwxrwx. 1 root root 4 Jun 7 17:21 root -> sda2 brw-rw----. 1 root disk 8, 0 Jun 7 17:21 sda brw-rw----. 1 root disk 8, 1 Jun 7 17:21 sda1 brw-rw----. 1 root disk 8, 2 Jun 7 17:21 sda2 brw-rw----. 1 root disk 8, 3 Jun 7 17:21 sda3 brw-rw----. 1 root disk 8, 4 Jun 7 17:21 sda4 brw-rw----. 1 root disk 8, 5 Jun 7 17:21 sda5 brw-rw----. 1 root disk 8, 6 Jun 7 17:21 sda6
主设备号都是8,0~6标识不同分区
字符设备——虚拟终端
ll -h /dev/ | grep tty[[:digit:]]*$ --color lrwxrwxrwx. 1 root root 4 Jun 7 17:21 systty -> tty0 crw-rw-rw-. 1 root tty 5, 0 Jun 7 17:21 tty crw--w----. 1 root tty 4, 0 Jun 7 17:21 tty0 crw-------. 1 root root 4, 1 Jun 7 17:21 tty1 crw--w----. 1 root tty 4, 10 Jun 7 17:21 tty10 crw--w----. 1 root tty 4, 11 Jun 7 17:21 tty11
字符设备——模拟终端
[[email protected] ~]# ll -h /dev/ | grep pts[[:digit:]]*$ --color drwxr-xr-x. 2 root root 0 Jun 7 17:21 pts
命令who查看当前有多少人链接Linux。我使用XShell链接Linux,XShell开了2个窗口。此时VMWare Workstation中Redhat只是开机还没有登陆。
命令who am i查看我当前用的哪个终端
[[email protected] ~]# who root pts/0 2018-06-07 17:22 (192.168.80.1) root pts/1 2018-06-07 18:06 (192.168.80.1) [[email protected] ~]# who am i root pts/0 2018-06-07 17:22 (192.168.80.1)
VMWare Workstation中Redhat登陆在执行上诉命令
[[email protected] ~]# who root tty1 2018-06-07 18:08 root pts/0 2018-06-07 17:22 (192.168.80.1) root pts/1 2018-06-07 18:06 (192.168.80.1) [[email protected] ~]# who am i root pts/0 2018-06-07 17:22 (192.168.80.1)
创建一个字符设备文件,指定主设备号66,次设备号0
[[email protected] ~]# mknod /dev/zq c 66 0 [[email protected] ~]# ll /dev/zq crw-r--r--. 1 root root 66, 0 Jun 7 18:12 /dev/zq
实际上环境中设备文件不需要人工创建,只要接上了这个设备,Linux在启动的时候就会自动给设备分配主次设备号。通常不应该给设备直接发送数据,很危险。下面演示给设备文件发消息
下面介绍一个危险的命令
搞坏磁盘第一个分区
[[email protected] ~]# echo "执行这条命令你的Linux系统在重启后或者关机下次开机后就不能正常启动了">>/dev/sda [[email protected] ~]# reboot
搞坏整个磁盘
[[email protected] ~]# echo "执行这条命令你的Linux系统在重启后或者关机下次开机后就不能正常启动了">>/dev/sda [[email protected] ~]# reboot
由于向磁盘sda写数据,直接覆盖了MBR,导致MBR收到破坏。执行完后只要不重启,系统啥事没有。一旦重启系统就再也进不去了。
原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9149351.html
时间: 2024-10-09 20:27:56