开始学的时候这一块有点子懵,不是特别熟悉,还是做个笔录方便以后随时复习和理解。
一、各硬件设备在Linux中的文件名
在 Linux 系统中,每个设备都被当成一个文件来对待。下面是一些常见设备与其在 Linux 当中的文件名(这玩意儿就跟身份码差不多):
设备 | 设备在Linux内的文件名 |
---|---|
SCSI/SATA/USB硬盘机 | /dev/sd[a-p] (括号内的字母为a-p当中的任意一个) |
USB闪存盘 | /dev/sd[a-p] (与SATA相同) |
VirtI/O界面 | /dev/vd[a-p] (用于虚拟机内) |
软盘机 | /dev/fd[0-7] |
打印机 | /dev/lp[0-2] (25针打印机) /dev/usb/lp[0-15] (USB接口) |
鼠标 | /dev/input/mouse[0-15] (通用) /dev/psaux(PS/2界面)/dev/mouse(当前鼠标) |
CDROM/DVDROM | /dev/scd[0-1] (通用) /dev/sr[0-1](通用,常见于CentOS)/dev/cdrom(当前CDROM) |
磁带机 | /dev/ht0 (IDE界面) /dev/st0(SATA/SCSI界面) /dev/tape(当前磁带) |
IDE硬盘机 | /dev/hd[a-d] (旧式系统才有) |
IDE 界面的磁盘机几乎已经被淘汰,因此现在 IDE 界面的磁盘文件名已经都被仿真成 /dev/sd[a-p]了。
二、Linux磁盘分区(MSDOS/MBR格式)
- 磁盘中前几个扇区一般会用来作为主要开机记录区(Master Boot Record,MBR)和分区表。开机记录区就是安装开机管理程序的地方,有 446Bytes;分区表则是记录整块硬盘分区的状态,有 64Bytes。
- 所谓的“分区”只是针对分区表进行设置而已。
- 系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区进行数据处理。
- 硬盘默认的分区表仅能写入四组分区信息,这四组分区信息称为主要(Primary)分区或延伸(Extended)分区。
- 主要分区与延伸分区的数量总和最多可以有四笔,但是延伸分区最多只能有一个(操作系统限制)。
- 延伸分区的目的是使用额外的扇区来记录分区信息,其本身并不能被格式化。
- 逻辑分区是延伸分区持续切割出来的分区,它可以被格式化,和主要分区一起作为数据存取的分区被使用。
- 主分区和主分区之间和以进行整合,逻辑分区之间也可以进行整合,但是主分区和逻辑分区之间不可以。
以自己电脑的磁盘分区为例:
这里只接入了一个 232.9 GB 的 SSD 固态硬盘,可以看到它在 Ubuntu 下的设备名为 /dev/sda。博主在硬盘上装 Ubuntu 的时候没有进行分区,所以磁盘空间基本全部都给了 P1(Primary)。这里在硬盘前面还自动(指装系统时使用默认设置)留了个 976M 的 E2(Extended,扩展)用来创建 SWAP 分区,P3、P4无记录,而又没有对 E2 进行进一步划分,因此这一整块就是一个逻辑分区 L1(SWAP) 了。当然,E2 和 L1 的大小并不完全相等,E2 还是需要留一点位置来记录逻辑分区的分区信息的。这些分区在Ubuntu中的设备文件名分别如下:
- P1:/dev/sda1
- E2:/dev/sda2
- P3:/dev/sda3(无记录,因此实际上不存在)
- P4:/dev/sda4(无记录,因此实际上不存在)
- L1:/dev/sda5
PS:除MBR格式外,还有一种GPT格式的磁盘分区。但目前所用硬盘分区格式为MBR,故目前GPT不进行展开,仅记录其存在性。
三、Ubuntu文件系统目录配置(FHS)
这玩意儿乍一看还挺头疼,应该是要靠使用频率来记忆一些常用目录的大致功能的。
目录 | 放置的文件内容 |
---|---|
/bin | 存放二进制可执行文件,这些命令在单用户模式下也能够使用。可以被 root 和一般账户使用。 |
/boot | Ubuntu内核和启动文件,如 vmlinuz-xxx 、gurb 引导装载程序。 |
/dev | 系统上所有设备与周边设备都会以文件的型态存在于此目录下。 |
/etc | 存放一些系统配置文件,如用户账号密码文件,各种服务的起始地址。 |
/home | 系统默认的用户主文件夹,一般创建用户账户的时候,默认的用户主文件夹都会放到此目录下。 |
/lib | 存放库文件。 |
/media | 此目录下放置可插拔设备,如 SD 卡,或者 U 盘的挂载位置。 |
/mnt | 用户可使用的挂载点,如果要挂载一些额外的设备,就可以挂载到这个位置。 |
/opt | 可选的文件和程序存放目录,给第三方软件放置的目录。 |
/root | root 用户目录,也就是系统管理员目录。 |
/sbin | 和 /bin 目录类似,也是存放一些二进制可执行文件。 /sbin 目录下的一般是系统开机过程中需要用到的命令。 |
/srv | 服务相关目录,比如网络服务。 |
/sys | 记录内核信息,虚拟文件系统。 |
/tmp | 临时目录。 |
/var | 存放一些变化的文件,比如一些日志文件。 |
/usr | 存放与系统用户有关的文件,会占用很大的内存空间。注意 usr 不是 user 的缩写,而是 Unix Software Resource 的缩写。 |
/proc | 虚拟文件系统,数据放置到内存中,存放系统运行信息。本身不占用任何硬盘空间。 |