20230520阅刘遄《Linux就该这么学》第四章所做笔记
文章目录
前置知识
根目录(/)
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 |
分析/dev/sda2
这个设备名称包含的信息
- dev:硬件设备文件所在的目录
- sd表示SCSI设备,若为hd表示IDE设备
- 字母a、b、c为硬盘的顺序号
- 数字1、2、3为分区的顺序号
在磁盘分区方案中,主分区、扩展分区和逻辑分区是三个基本的概念。它们之间的关系如下:
主分区:磁盘最多可划分4个主分区,每个主分区可以直接被操作系统访问并挂载为文件系统。主分区通常用于存储操作系统、应用程序以及用户数据等。
扩展分区:一个磁盘最多只能有1个扩展分区,它不能被格式化为文件系统,也不能直接被操作系统访问。扩展分区通常用于划分多个逻辑分区。
逻辑分区:逻辑分区是通过将扩展分区划分成若干个逻辑分区而创建的,每个逻辑分区相当于是一个独立的磁盘分区,可以单独格式化和挂载为文件系统。逻辑分区是在扩展分区上进行进一步划分得到的。
文件系统类型
Ext3:是一种成熟而稳定的日志型文件系统,支持数据日志和元数据日志,可以提供较好的数据保护和恢复能力。但是,在大文件和高负载环境下,性能会有所下降。
Ext4:是目前Linux系统上最常用的文件系统,它提供了高性能、高可靠性和较好的数据保护能力,支持大文件和大分区等特性。
XFS:是一种高性能的文件系统,适合用于处理大文件和高负载环境。它支持快速并发访问、高效空间管理和动态文件系统扩展等特性。
添加硬盘使用到的命令
Linux系统添加硬盘设备的流程:拿到一块全新的硬盘存储设备后,需要对它进行分区,然后格式化,最后才能挂载并正常使用。以下介绍整个流程中所会用到的相关命令
mount
用于挂载文件系统,使用mount命令把硬盘设备或分区与一个目录文件进行关联
格式:mount 文件系统 挂载目录
参数 | 作用 |
---|---|
-a | 挂载所有在/etc/fastab中定义的文件系统 |
-t | 指定文件系统的类型 |
对于比较新的系统来说,-t参数一般不需要使用,Linux系统就会自动进行判断
而-a参数在执行后会自自动检查/etc/fstab
文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作
通过mount挂载的,系统重启后挂载会失效,每次开机都需要重新挂载。如果想让硬件设备和目录永久的进行自动关联,就需要把挂载信息按照指定的填写格式“设备文件 挂载目录 格式类型 权限选择 是否备份 是否自检”
写入到/etc/fatab文件中
字段 | 意义 |
---|---|
设备文件 | 般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier ) |
挂载目录 | 指定要挂载到的目录,需在挂载前创建好 |
格式类型 | 指定文件系统的格式,比如 Ext3、Ext4、XFS、SWAP、is9660(此为光盘设备)等 |
权限选项 | 若设置为 defaults,则默认权限为:rw,suid,dev,exec,auto,nouser,async |
是否备份 | 若为1则开机后使用dnmp 进行磁盘备份,为0则不备份 |
是否自检 | 若为1则开机后进行磁盘自检,为0则不自检 |
umount
用于撤销已挂载的设备文件
格式:umount [挂载点/设备文件]
fdisk
用于管理磁盘分区的命令行工具。使用fdisk,可以对硬盘进行分区、删除、创建等操作,以下参数的使用都是交互的
格式:fdisk [磁盘名称]
参数 | 作用 |
---|---|
m | 查看全部可用的参数 |
n | 添加新的分区 |
d | 删除某个分区信息 |
l | 列出所有可用的分区类型 |
t | 改变某个分区的类型 |
p | 查看分区信息 |
w | 保存并退出 |
q | 不保存直接退出 |
partprobe
用于重新加载Linux系统中已经分区的设备的工具。当磁盘分区表被修改后,内核可能不会自动重新读取该分区表,导致新分区或删除的分区无法被识别。在这种情况下,可以使用partprobe命令来通知内核重新读取分区表,并更新内存中的分区信息。
格式:partprobe
mkfs
用于格式分区
在命令行中敲下mkfs并按两下Tab键可看到可格式化的各个文件系统类型,选择指定的文件系统类型对磁盘格式化
格式:mkfs.文件类型名称 [磁盘名称1]
df -h
查看挂载状态和硬盘使用量信息
du
查看一个或多个文件占用多大的硬盘空间
格式:du [选项] [文件]
使用du -sh /*
查看Linux系统根目录下所有一级目录分别占用的空间大小
mkswap
SWAP分区的格式化命令
添加硬件设备流程
添加一块硬盘,系统将会识别为/dev/sdb
添加交换分区的步骤与添加硬盘的步骤大部分一致,不同处在于格式化时需要使用mkswap格式
磁盘容量配置
磁盘容量配额是指在Linux系统中,为用户或组分配的最大可用存储空间。通过设置磁盘容量配额,可以限制用户或组可以使用的磁盘空间数量,从而避免磁盘被某个用户或组占满。
- 软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用
- 硬限度:当达到硬限度时会提示用户,且强制终止用户的操作
xfs_quota
该命令是专门针对XFS文件系统来管理quota磁盘容量配额服务而设计的命令
格式:xfs_quota [参数] 配额 文件系统
参数:
-x:指定执行的命令是否在实际运行前进行验证。
-c:指定要执行的命令及其参数。
edquota
用于编辑用户的quota配额限制
格式:edquota [参数] [用户]
参数:
-u:对哪个用户进行设置
-g:对哪个用户组进行设置
软硬方式链接
硬链接:可以理解为“指向原始文件inode的指针”,系统不为它分配独立的 inode 和文件。所以,硬链接文件与原始文件其实是同一个文件,只是名字不同。我们每添加一个硬链接,该文件的 inode 连接数就会增加 1;而且只有当该文件的inode 连接数为0时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件 inode 的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要注意的是,由于技术的局限性,我们不能跨分区对目录文件进行链接
软链接:仅仅包含所链接文件的路径名,因此能销接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效,从这一点上来说与 Windows 系统中的“快捷方式”具有一样的性质。
ln命令
用于创建;链接文件
参数 | 作用 |
---|---|
-s | 创建“符号链接”( 如果不带-s 参数,则默认创建硬链接) |
-f | 强制创建文件或目录的链接 |
-i | 覆盖前先询问 |
-v | 显示创建链接的过程 |