✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Java案例分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:Linux文件系统及磁盘命名
文章目录
- Linux文件系统
- 文件类型
- 扩展名
- 一棵倒置的树
- ext4文件系统格式
- 磁盘在Linux系统里的命名
Linux文件系统
文件系统(File System)是文件在逻辑上的组织形式,它以一种更加清晰的方式来存放各个文件。
在 Linux 系统中一切皆为文件(其中包括计算机的各种软硬件信息)。Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux用户看到的文件、目录、软链接及文件保护信息等都存储在其中。
在Linux ext2/ext3格式的文件系统下,针对文件的文件名长度限制可分为:
1. 单一文件或目录的文件名的最大长度为255个字符。
2. 包含完整路径名称及目录在内的完整的文件名长度为4096个字符。
Linux一般对组成文件名的字符没有限制,但最好可以避免一些特殊的字符,如* ? <> ;@![]|“‘{}等。
文件类型
Linux的文件类型大致可分为5类。利用ls –l命令查看文件信息的第1列显示的10个字符中的第1个字符即为文件的类型。常见的一般文件为[-],目录文件为[d],在/dev目录下执行ls –l命令可以看到第1列的第1个字符出现了[ c ]、[ b ]、[ l ]等,如下所示。
(1) 普通文件第1个字符为[ - ]
文本文件(ASCII):采用ASCII编码方式,可编辑,可修改。
(2) 目录文件(directory)第1个字符为[ d ]
存放的内容是目录中的文件名和子目录名,第一属性为[ d ]。
(3) 设备文件(device)
用于用户访问物理设备所用,分为块设备和字符设备文件。与系统外设及存储等相关的文件,通常都集中在/dev目录下。块设备第1个属性为[ d ],字符设备第1个属性为[ c ]。
(4) 链接文件(link)第1个字符为[ l ]
软链接文件:目标文件和链接文件可以跨越索引点,相当于文件的快捷方式,第1个属性为[ l ]。对于软链接删除了源文件,则符号链接文件失去意义,删除符号链接文件,不影响源文件。
硬链接文件:链接同一索引点中的文件,相当于文件的副本。两个文件指向同一存储区,内容、长度相同,删除一个文件不影响其他文件。
(5) 管道文件(FIFO,pipe)第1个字符为[ p ]
FIFO也是一种文件类型,它主要的目的是解决多个程序同时访问一个文件所造成的错误。缓存队列,第1个属性为[ p ]。
扩展名
在windows中区分文件类型依据的是文件的扩展名,比如whb.txt、zj.exe、qianru.doc、dianshang.mp4、wangluo.rar等。
在Linux系统中一个文件是否能被执行,和其扩展名没有太大的关系,主要与文件的属性有关。Linux下的文件扩展名不是给机器看的,而是给人看的,因此我们创建一些文件时,最好还是加扩展名,这样不但在应用时很方便,而且可以根据扩展名了解关于此文件的更多信息。
Linux系统中常用的一些扩展名如下:
.sh:脚本或者批处理文件(scripts);
.Z、.tar、.tar.gz、.zip、.tar.bz2:经过打包的压缩文件;
.html、.php:网页相关文件;
file.so:这类是库文件;
file.doc、file.obt:这是OpenOffice能打开的文件。
用一些工具创建的文件,其后缀也不相同,就看我们用什么工具了,比如Gimp、Gedit、OpenOffice等工具,创建出来的文件后缀名也是不一样的。
一棵倒置的树
在Linux操作系统下面,所有的文件与目录都是由根目录“/”开始的,这是所有文件与目录的源头。然后逐渐扩展出枝干,就像一棵倒置的树,所有的文件和外部设备都以文件的形式挂结在这个文件树上,包括硬盘、U盘、光驱、调制解调器等,也正因如此习惯上将Linux的这种目录配置方式称作“目录树”。Linux系统中的这棵树具有以下特点:
- 这棵树的树根是根目录(/,root);
- 每个目录既可以是本地的文件系统,也可以是网络上的文件系统。
- 每个文件在目录树中的文件名,如果连路径都算到一起的话是唯一的,即在同一目录下,文件不能重名。
Linux系统采用虚拟文件系统技术(VFS),结构采用倒立树状、VFS使Linux支持以下文件系统所支持的的文件类型(其中常用的为ext2,ext3)。
ext2:二次扩展;
ext3:三次扩展;
SWAP:交换文件系统;
FAT、FAT32:Windows分区格式;
NTFS:默认不支持,需要特定的模块;
VFAT:虚拟FAT;
SYSV:UNIX的文件系统;
HPFS:OS/2的文件系统;
ISO9660:光盘文件系统;
NFS:网络文件系统。
根目录下用ls -l命令来查看这棵树中的所有枝干
(1)/bin
bin是binary的缩写。这个目录是对UNIX系统习惯的沿袭。用于存放引导启动Linux系统所需的命令或普通用户可能用的命令(可能在引导启动后)
(2)/boot
启动Linux操作系统所必须的文件,其中包括Linux内核所依赖的配置文件。
(3)/dev
在Linux中,任何设备与接口都是以文件的形式存储在这个目录中。如果想访问某个设备,只能通过访问该目录下的某个文件来实现对设备的访问。
(4)/etc
该目录下存储着几乎所有Linux系统下的主要配置文件。例如:用户的账号密码文件。
(5)/home
系统默认的用户主目录(home directory),只要启动了创建主目录的功能,在每次创建账号的时候都会在该目录下为创建的账号新建一个主目录。
(6)/lib
开机时用到的函数库。
(7)/lost+found
当文件发生错误时,将一些丢失的文件碎片放到该目录下。
(8)/media
放置的是可以卸载的设备,如:光盘、U盘等。
(9)/root
root用户的根目录。
(10)/sbin
类似bin,但不给普通用户使用,在必须且允许时可以使用。
(11)/selinux
存放的是内存中的信息,不会占用任何硬盘空间,是SELinux的执行目录。
(12)/tmp
该目录存放一些临时文件,任何人都能访问。
(13)/mnt
/mnt目录通常包含一些子目录,每个子目录是某种特定设备类型的一个挂载点。
ext4文件系统格式
一块磁盘只有通过分区和格式化的操作之后才可以挂载并使用。
不同的操作系统使用的文件系统类型是不一样的,Windows系统里,默认支持使用的文件系统格式为FAT32和NTFS;Linux系统里,最常用的文件系统格式为ext4(The Fourth Extended File System),同时也向下兼容ext2和ext3的文件系统。
ext4文件系统具有如下优点:
① 支持更大的文件系统和文件:ext4可以支持1EB(1 048 576TB,1EB=1024PB,1PB=1024TB)的文件系统,以及单个最大16TB的文件;支持无限数量的子目录。(ext3支持32 000个子目录)。
② 更快的速度:ext4引入的Extends技术和优化技术,使得ext4文件系统在进行大文件的操作、数据分配以及执行fsck命令时的速度都提高了很多。
③ 更大的inode:在ext4文件系统中,默认inode大小为256B,扩展了inode中存放的文件属性(纳秒时间戳和inode版本等)。
一块磁盘的MBR分区表中最多只能包括4个分区的记录(主分区或者扩展分区的记录),如果需要更多的分区,则需要建立一个扩展分区,然后在该扩展分区上建立逻辑分区,一个扩展分区可以包括最多23个逻辑分区,每个逻辑分区上有一个逻辑磁盘驱动器。
在操作系统中,是看不到扩展分区的,因为扩展分区是不能直接使用的,是没有盘符的,只有在扩展分区里面再划分逻辑分区后才会有盘符,才可以使用。
虽然硬盘分区为分为“主分区”、“扩展分区”、“逻辑分区”三种类型,但是只有主分区能完成操作系统引导过程,一般需要安装多个操作系统的时候,会建立多个分区,一块硬盘最多设置四个主分区,或者一至三个主分区加一个扩展分区。
磁盘在Linux系统里的命名
一般主板上有2个IDE接口,一共可以安装4个IDE设备。
在Linux下对IDE的设备是以 hd 命名的,主IDE上的主从两个设备分别为had和hdb,第二个IDE接口上的主从两个设备分别为hdc和hdd。一般硬盘安装在主IDE的主接口上,所以其名称通常是hda。
IDE 设备的名称是固定的,和内核检测的顺序无关。
SCSI接口、USB接口、SATA接口设备是用 sd 命名的,第一个设备是sda,第二个设备是sdb,以此类推。该类接口的磁盘在系统内没有固定的顺序,而是靠内核的检测顺序决定其命名。
Linux系统内,磁盘设备也被看成是一种类型的文件。
IDE设备
IDE | MASTER | SLAVE |
---|---|---|
IDE1(primary) | /dev/had | /dev/hdb |
IDE2(secondary) | /dev/hdc | /dev/hdd |
设备总结
设备类型 | 设备名称 |
---|---|
IDE接口硬盘 | /dev/hd[a-d] |
SCSI/SATA/USB/Flash接口的硬盘 | /dev/sd[a-p] |
打印机 | /dev/lp |
CDROM | /dev/cdrom |
码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识,点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。