Linux磁盘管理之设备文件详解04
Linux一切接文件,除了普通文件和目录文件,还包括一些其它的特殊文件:块设备文件、字符设备文件、套接字文件、链接文件等。今天这里主要说一下常见的块设备文件和字符设备文件,这2类是最常见的设备文件类。
设备常见有鼠标、键盘、显示器、硬盘等等。其中硬盘是块设备,鼠标、键盘、终端等是属于字符设备。这些设备在linux中也是以文件形式存在,存在于目录/dev/中,这些设备文件不占磁盘块空间,只用一个inode来表示即可,主要记录设备文件的一些信息,包括主设备号和次设备号等信息。主设备号指的是设备主类型,比如是硬盘还是串口,标示一类设备,这些设备用一个驱动程序就行;次设备号标示同类设备中的不同设备个体,比如有3个串口,每个串口的主设备号一样,此设备号分别不同用于区分不同的串口。
一、字符设备文件
举例说明,例如终端。
linux有终端的概念,其实就可以简单理解为显示器,当然这样理解有些不准确。如果连接的是真实的显示器,就是物理终端,设备文件名称就为tty*;如果用远程ssh工具连接过来的终端被称为虚拟终端,设备文件名为pts*。
物理终端设备文件名称:
[root@iNeedle~]# ls /dev/tty*
/dev/tty/dev/tty12/dev/tty17/dev/tty21/dev/tty26/dev/tty30/dev/tty35/dev/tty4/dev/tty44/dev/tty49/dev/tty53/dev/tty58/dev/tty62/dev/ttyS0
/dev/tty0/dev/tty13/dev/tty18/dev/tty22/dev/tty27/dev/tty31/dev/tty36/dev/tty40/dev/tty45/dev/tty5/dev/tty54/dev/tty59/dev/tty63/dev/ttyS1
/dev/tty1/dev/tty14/dev/tty19/dev/tty23/dev/tty28/dev/tty32/dev/tty37/dev/tty41/dev/tty46/dev/tty50/dev/tty55/dev/tty6/dev/tty7/dev/ttyS2
/dev/tty10/dev/tty15/dev/tty2/dev/tty24/dev/tty29/dev/tty33/dev/tty38/dev/tty42/dev/tty47/dev/tty51/dev/tty56/dev/tty60/dev/tty8/dev/ttyS3
/dev/tty11/dev/tty16/dev/tty20/dev/tty25/dev/tty3/dev/tty34/dev/tty39/dev/tty43/dev/tty48/dev/tty52/dev/tty57/dev/tty61/dev/tty9
虚拟终端设备文件名称:
[root@iNeedle~]# ls /dev/pts*
01ptmx
查看当前有哪些终端在登陆可以使用以下命令:
[root@iNeedle~]# who
roottty12015--:
rootpts/--:(172.16.1.20)
rootpts/--:(222.128.159.250)
查看当前我正在使用的终端:
[root@iNeedle~]# who am i
rootpts/--:(222.128.159.250)
简单测试举例,向终端发消息:
[root@iNeedle~]# echo "Hello World" > /dev/pts/
HelloWorld
这一块的知识点感觉比较少,只需要简单了解即可。如果后续有内容再补充吧。
二、块设备文件
举例说明,典型的是硬盘。硬盘是我们最常用的设备之一,也是计算机必备的物理设备,主要作用是存储数据。在linux系统看来硬盘也是个设备,块设备,块设备读取不同于字符设备,它可以随机访问非连续的数据块,不像字符设备是字符流的形式,只能连续读取和写入。
硬盘在linux中的存储设备文件查看:
[root@iNeedle~]# ls /dev/sd*
/dev/sda/dev/sda1/dev/sda2
sda表示第一块硬盘,sda1表示第一块硬盘的第一个分区,sda2表示第一块硬盘的第二个分区。如果有第二个硬盘的话,名称为sdb,第二块硬盘的第一个分区为sdb1,依次类推。
其实也可以像刚才那样向硬盘中写入数据,但是这种方式非常规写法,对硬盘数据造成不可预料的破坏,这类操作只可在虚拟机上做实验,切不可在物理机上,否则系统在下次重启的时候就启动不了了。
[root@iNeedle~]# ls /dev/sd*
/dev/sda/dev/sda1/dev/sda2
这样做相当于把把这些信息填充到了sda硬盘的MBR中,如果下次启动系统就会找不到MBR信息,导致系统启动不了,所以说最好在虚拟机上做,然后恢复快照就行了。可以看出如果想毁掉一个系统是多么的简单,只需要执行这个命令,系统就再也起不了了,除非你有MBR数据的备份,这也在提示我们在真实的物理服务器上要最好MBR的备份,防止被破坏。
Linux磁盘管理之设备文件详解04的更多相关文章
- LINUX用户管理——/etc/passwd文件详解
输入vi /etc/passwd 可以查看此文件的内容 .本机内容如下: [root@localhost ~]# vi /etc/passwdroot:x:0:0:root:/root:/bin/ ...
- Linux中/proc目录下文件详解
转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...
- Linux中/proc目录下文件详解(转贴)
转载:http://www.sudu.cn/info/index.php?op=article&id=302529 Linux中/proc目录下文件详解(一) 声明:可以自由转载本文, ...
- linux yum的配置文件 repo文件详解
linux yum的配置文件 repo文件详解 什么是repo文件?repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪 ...
- linux环境下/etc/hosts文件详解
linux环境下/etc/hosts文件详解 就没一个昵称能用关注 0.0632017.09.12 17:04:28字数 623阅读 27,096 介绍 hosts文件是linux系统中负责ip地址与 ...
- 手把手教Linux驱动3-之字符设备架构详解,有这篇就够了
一.Linux设备分类 Linux系统为了管理方便,将设备分成三种基本类型: 字符设备 块设备 网络设备 字符设备: 字符(char)设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程 ...
- Linux—账号管理及命令使用详解
关注微信公众号:CodingTechWork,一起学习进步. 引言 在Linux系统中,我们常常会看到目录或文件的所属关系: [root@linux01 ~]# ll -d test.sh -rw ...
- 每天一个linux命令(32)--/etc/group文件详解
Linux /etc/group 文件与 /etc/passwd 和/etc/shadow 文件都是有关于系统管理员对用户和用户组管理时相关的文件.Linux /etc/group 文件是有关于系统管 ...
- Linux日志管理高级进阶:实例详解syslog
syslog已被许多日志函数采纳,它用在许多保护措施中,任何程序都可以通过syslog记录事件.syslog可以记录系统事件,可以写到一个文件或设备中,或给用户发送一个信息.它能记录本地事件或通过网络 ...
随机推荐
- poj-1611-The Suspects
The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 34284 Accepted: 16642 De ...
- Atitit.提升语言可读性原理与实践
Atitit.提升语言可读性原理与实践 表1-1 语言评价标准和影响它们的语言特性1 1.3.1.2 正交性2 1.3.2.2 对抽象的支持3 1.3.2.3 表达性3 .6 语言设计中的权 ...
- php取默认值以及类的继承
(1)对于php的默认值的使用和C++有点类似,都是在函数的输入中填写默认值,以下是php方法中对于默认值的应用: <?phpfunction makecoffee($types = array ...
- Android 4.0.3 CTS 测试
Android-CTS 4.0.3测试基本配置 1. Download CTS CTS的获取方式有两种: 1.1.由Google提供 1.1.1.打开浏览器输入连接: http://source.an ...
- 【小贴士】zepto find元素以及ios弹出键盘可能让你很头疼
前言 在此,我不得不说移动端的兼容问题很多,并且很令人头疼,这不,这个星期又有两个让我逮着了,一个是使用zepto过程中出现的问题,一个是ios虚拟键盘的问题 我这里做一次记录,以免以后忘了,同时希望 ...
- requirejs:让人迷惑的路径解析
接触过requirejs的童鞋可能都知道,无论是通过define来定义模块,还是通过require来加载模块,模块依赖声明都是很重要的一步.而其中涉及到的模块路径解析,对于新手来说,有的时候会让人觉得 ...
- 在Sharepoint 2013中,使用JS判断当前用户是否在某个组里面
使用Sharepoint客户端对象模型,判断当前用户是否在某个组里面. 在View 和 Edit List Item的时候使用,使用户编辑修改List Item的时候有权限的区分. 在Edit 页面加 ...
- Sharepoint学习笔记—习题系列--70-576习题解析 -(Q84-Q87)
Question 84You are designing a Web Part for SharePoint 2010 that must be able to be used on any sit ...
- 根据键盘调整textField(多个)位置使其不会被键盘挡住
当一个界面上有个textField时,键盘出现时需要保证textField不会被键盘挡住. 一般的做法是,监听 UIKeyboardWillShowNotification和 UIKeyboardWi ...
- 初学HTML 常见的标签(一) 文本标签
最近做iOS开发的过程中, 发现要涉及到JS和原生OC(Swift)的交互, 作为一个Developer, 本着克服一切问题的原则, 开始学习HTML, 在这里记录下自己的学习笔记, 方便以后的复习, ...