一切从/ 开始
Linux系统中一切皆文件,在Windows中文件在盘符中,而在Linux中一切从”/“开始,并按照文件系统层次化标准(FHS)采用树形结构存放文件,以及定义了常见目录的用途。Linux中严格区分大小写,并且文件名称中不得包含斜杠(/)。
Linux中常见的目录及对应存放的内容见下表:
目录名称 | 应放置文件的内容 |
---|---|
/boot | 开机所需文件,内核、开机菜单以及所需配置文件等 |
/dev | 以文件形式存放任何设备和接口 |
/etc | 配置文件 |
/home | 用户家目录 |
/bin | 存放单用户模式下还可以操作的命令 |
/lib | 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数 |
/sbin | 开机过程中需要的命令 |
/media | 用于挂载设备文件的目录 |
/opt | 放置第三方的软件 |
/root | 系统管理员的家目录 |
/srv | 一些网络服务的数据文件目录 |
/tmp | 任何人均可使用的“共享”临时目录 |
/proc | 虚拟文件系统,例如系统内核、进程、外部设备及网络状态 |
/usr/local | 用户自行安装的软件 |
/usr/sbin | Linux系统开机时不会使用到的软件/命令/版本 |
/usr/share | 帮助与说明文件,也可放置共享文件 |
/var | 主要存放经常变化的文件,如日志 |
/lost+found | 当文件系统发生错误时,将一些丢失的文件片段存放在这里 |
路径分为相对路径和绝对路径,学过编程都不会陌生,就不解释了。
物理设备的命名规则
常见的硬件设备文件名称如下表:
硬件设备 | 文件名称 |
---|---|
IDE设备 | /dev/hd[a-d] |
SCSI/SATA/U盘 | /dev/sd[a-p] |
软驱 | /dev/fd[0-1] |
打印机 | /dev/lp[0-15] |
光驱 | /dev/cdrom |
鼠标 | /dev/mouse |
磁带机 | /dev/st0或/dev/ht0 |
现在IDE设备很少见了,所以一般硬盘设备都是以“/dev/sd”开头。一台主机上可以有多块硬盘,因此系统采用a~p来代表16块不同的硬盘(默认从a开始分配),而硬盘的分区编号也有讲究:
-
主分区或扩展分区的编号从1开始,到4结束
-
逻辑分区从编号5开始
例如:/dev/sdb8
/dev目录中保存的是硬盘设备文件,sd代表是存储设备,b代表同类接口中第二个被识别到的设备,8代表这个设备是一个逻辑分区。
这是系统中第一块被识别到的硬件设备中分区编号为8的逻辑分区的设备文件
硬件设备是由大量的扇区组成的,每个扇区的容量为512字节。其中,第一个扇区最重要,它里面保存着主引导记录与分区表信息。就地一个扇区来讲,主引导记录需要占用446字节,分区表为64字节,结束符占用2字节,其中分区表中每记录一个分区信息就需要16字节,这样一来最多只有4个分区信息可以写到第一个扇区中,这4个分区就是4个主分区。主分区编号(1~4),逻辑分区编号(大于5)为了解决分区个数不够的问题,拿出一个主分区作为扩展分区,在扩展分区创建数个逻辑分区。
文件系统与数据资料
文件系统的作用是合理规划硬盘,以保证用户正常的使用需求。常见的文件系统如下
Ext3:是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分之百的保存资料不会丢失。它会把整个磁盘的每个写入动作的细节都预先记录下来,以便在发生异常党纪后能回溯追踪到被中断的部分,然后尝试进行修复。
Ext4:Ext3的改进版本,作为RHEL 6 系统中的默认文件管理系统,它支持的存储容量高达1EB(1EB=1073741824),且能够有无限多的子目录。另外,Ext4文件系统能够批量分配block块,从而极大地提高了读写效率。
XFS:是一种高性能的日志文件系统,而且是RHEL 7 中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为18EB,这几乎满足了所有需求。
数据资料保存在一个名为super block的“硬盘地图”。硬盘地图里面记录着整个文件系统的信息。每个文件的权限与属性记录在inode中,而且每个文件占用一个独立的inode表格,该表格的大小默认位128字节,里面记载这如下信息
-
该文件的访问权限(read、write、execute)
-
该文件的所有者与所属组(owner、group)
-
该文件的大小(size)
-
该文件的创建或内容修改时间(ctime)
-
该文件的最后一次访问时间(atime)
-
该文件的修改时间(mtime)
-
文件的特殊权限(SUID、SGID、SBIT)
-
该文件的真实数据地址(point)
挂载硬件设备
在Linux中一切皆文件,设备也不例外,一块新的硬盘设备要先分区,然后格式化,最后挂载才能正常使用。挂载就是讲硬盘与目录进行关联。
mount命令
格式:mount 文件系统 挂载目录
作用:用于挂载文件系统
参数 | 作用 |
---|---|
-a | 挂载所有在/etc/fstab中定义的文件系统 |
-t | 指定文件系统的类型 |
mount命令挂载的文件系统,再重启后就不能使用了,要想重启后可以使用,就要把挂载信息“设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检”写入到/etc/fstab文件中。
挂载信息的各字段意义
字段 | 意义 |
---|---|
设备文件 | 一般为设备的路径+设备名称,也可以写唯一识别码(UUID) |
挂载目录 | 指定要挂载到的目录,需在挂在前创建好 |
格式类型 | 指定文件系统的格式,比如Ext3、Ext4、XFS、SWAP、iso9660(光盘设备) |
权限选项 | 若设置为defaults,则默认权限为:rw,suid,dev,exec,auto,nouser,async |
是否备份 | 若为1则开机后使用dump进行磁盘备份,为0则不备份 |
是否自检 | 若为1则开机后进行磁盘自检,为0则不自检 |
umount命令
格式:umount [挂载点/设备文件]
作用:用于撤销已经挂载的设备文件
添加硬件设备
在虚拟机上,添加一块硬盘,然后进行分区、格式化、挂载。
fdisk命令
格式:fdisk [磁盘名称]
作用:用于管理磁盘分区
这个命令的参数是交互式的。
参数 | 作用 |
---|---|
m | 查看全部可用的参数 |
n | 添加新的分区 |
d | 删除某个分区信息 |
l | 列出所有可用的分区类型 |
t | 改变某个分区的类型 |
p | 查看分区信息 |
w | 保存并退出 |
q | 不保存直接退出 |
du命令
格式:du [选项] [文件]
作用:用于查看文件数据占用量
添加交换分区
交换分区是一种在硬盘中预先划分一定的空间,哪内存中暂时不常用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设计的目的是为了解决真实物理内存不足的问题。但由于交换分区毕竟是通过硬盘设备读写数据的,速度肯定要比物理内存慢,所以只有当真实的物理内存耗尽后才会调用交换分区的资源。
交换分区的创建过程与挂载并使用存储设备的过程相似。交换分区的大小一般为真实物理内存的1.5~2倍。
mkswap 对分区进行格式化
swapon 把准备好的swap分区设备挂载到系统中。
磁盘容量配额
为了防止用户不断存储文件导致硬盘空间占满,root管理员需要对用户或用户组进行限制其使用的最大硬盘空间或最大文件个数,使用quota命令进行磁盘容量配额管理,quota命令具有软限制和硬限制的功能。
软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用。
硬限制:当达到硬限制时会提示用户,且强制终止用户的操作。
xfs_quota命令
格式:xfs_quota [参数] 配额 文件系统
作用:用来对xfs文件系统管理quota磁盘容量配额服务的命令
-c 参数用于以参数的形式设置要执行的命令;
-x 参数是专家模式,让运维人员能够对quota服务进行更多复杂的配置
edquota命令
格式:edquota [参数] [用户]
作用:用于编辑用户的quota配额限制
-u 参数表示要针对哪个用户来进行设置;
-g 参数表示要针对哪个用户组进行设置
软硬方式链接
链接就相当于快捷方式。
软链接:包含所链接文件的路径名,因此能链接目录文件,也可跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也会失效,有点类似Windows系统上的快捷方式。
硬链接:可以理解为一个指向原始文件的inode的指针,系统不为它分配独立的inode和文件。所以硬链接文件与原始文件其实是同一个文件,只是名字不同。每添加一个硬链接,该文件的inode连接数就会增加1;而且只有当该文件的inode连接数为0时,才算彻底将它删除。由于硬链接实际上是指向原文件inode的指针,因此即使原文件被删除,依然可以通过硬链接文件来访问。
ln命令
格式:ln [选项] 目标
作用:创建链接文件
参数 | 作用 |
---|---|
-s | 创建符号链接(不带-s,则默认创建硬链接) |
-f | 强制创建文件或目录的链接 |
-i | 覆盖前先询问 |
-v | 显示创建链接的过程 |
参考:《Linux就该这么学》