一、 磁盘空间与存储媒体管理
作为系统管理员,监测存储空间的大小是一项非常重要的工作,用以防止空间爆满,并为系统留出冗余空间以保持系统正常运行 。
1. 挂载存储媒体 (mount)
该应用主要用于为服务器增加新的物理存储空间 。Linux 在正常情况下不会自动挂载,需要通过命令手动操作 。
-
查看已挂载设备 :直接在 bash shell 中使用
mount命令并回车,会输出当前系统上已挂载的设备列表 。 -
mount命令输出的 4 个主要信息 :
-
媒体设备文件名
-
媒体挂载到虚拟目录的挂载点
-
文件系统类型
-
已挂载媒体的访问状态
-
输出示例 :
/dev/sdb1 on /media/disk type vfat表示设备/dev/sdb1被挂载到了/media/disk挂载点,文件系统类型为vfat。 -
手动挂载语法 :必须通过
root用户登录或使用sudo运行 :
bash
mount 挂载的设备名 挂载点
-
mount常用选项(参数) : -
-a:挂载/etc/fstab文件中指定的所有文件系统 。 -
-f:模拟挂载设备,并不真实挂载 。 -
-F:与-a参数一同使用时,会同时挂载所有的文件系统 。 -
-v:详细模式,将会说明挂载的每一步 。 -
-n:挂载设备,但不注册到/etc/mtab已挂载设备中 。 -
-p num:进行加密挂载时,从文件描述符num中获取密码短语 。 -
-r:将设备挂载为只读 。 -
-w:将设备挂载为读写(也是系统的默认选项) 。 -
-L label:将设备按指定的label(标签)进行挂载 。 -
-o:给文件系统添加特定的选项 ,常见子选项包括: -
ro:以只读形式挂载 。 -
rw:以读写形式挂载 。 -
user:允许普通用户挂载文件系统 。 -
check=none:挂载文件系统时不进行完整性验证 。 -
挂载示例 :
bash
mount -t vfat /dev/sdb1 /media/disk
说明:这一行命令代表将 /dev/sdb1 设备挂载到 /media/disk 上,并且指定文件系统格式为 vfat 。
2. 卸载存储媒体 (umount)
主要用于卸载设备。在使用 U 盘或其他移动存储介质时,拔除前最常用的就是该命令 。
- 语法格式 :
bash
umount [选项] [挂载设备名称 | 挂载点]
-
常用选项:
-
-f:强制卸载(强制删除) 。 -
-l:懒卸载(Lazy unmount),从用户层面看视作已卸载(但在设备空闲时才真正卸载) 。 -
-v:详细模式,执行时打印出具体的卸载动作 。 -
-a:全部卸载,卸载/etc/mtab中记录的所有文件 。 -
注意:如果有程序正在使用设备上的文件,系统就不会允许卸载 。
3. 查看磁盘使用情况 (df)
用于监测已挂载存储的使用小结情况 。
- 语法格式 :
bash
df [选项]
-
默认输出列含义 :
-
Filesystem:设备的设备文件位置 。 -
1K-blocks:能容纳多少个 1024 字节大小的块 。 -
Used:已用了多少个 1024 字节大小的块 。 -
Available:还有多少个 1024 字节大小的块可用 。 -
%:已用空间所占的比例 。 -
Mounted on:挂载到了哪个挂载点上 。 -
人性化建议 :由于以"块"为单位查看太反人类,通常建议使用
-h参数 。使用后原来的1K-blocks会变成Size,单位转换成易读的G,Used和Available的单位也会变成M或G等 。 -
单位转换逻辑 :
-
1KB = 1024 字节(即一个块)
-
1MB = 1024KB
-
1GB = 1024MB
4. 查看具体文件/目录大小 (du)
当我们想要查看具体文件夹或文件的大小时,就需要使用 du 命令 。
- 语法格式 :
bash
du [选项] [文件或目录]
-
核心参数 :
-
-h:必加参数。自动将单位转换成 K、M、G,否则数字太多,不便于人类阅读 。 -
-s:只查看目标目录的总大小,不逐个列出里面成百上千个文件进行刷屏 。 -
-d N:用于查看当前 N 级子文件夹的大小分布 。 -
-a:将独立文件的大小也列出来 。
二、 数据处理与文本操作
当面临大量数据时,为了有效地处理这些信息,Linux 提供了一些专门的命令 。
1. 排序数据 (sort)
sort 命令会对数据进行排序。它会根据默认语言的规则顺序对文本文件的行进行排序 。
- 语法格式 :
bash
sort [参数] [文件名]
-
常用参数 :
-
-n:按数值大小进行排序 。 -
-r:降序排列 。 -
-h:专门用于处理包含 K、M、G 等易读单位的数据 。 -
-k N:按第 N 列的数据进行排序 。 -
-t:指定列的分隔符(如空格或制表符) 。 -
-u:排序的同时,删除内容完全重复的行 。 -
结果回写 :如果想将排序结果写回文件,可以使用
-o参数。例如:sort a.txt -o a.txt。
2. 搜索数据 (grep)
当需要在一个大文件中找一组数据("大海捞针")时,就会使用 grep 命令 。它会在输入或指定的文件中查找匹配的字符串 。
- 语法格式 :
bash
grep [参数] "要找的词或正则表达式" 文件
-
核心参数 :
-
-i:忽略大小写 。 -
-v:反向查找。即不看匹配的行,只看没有匹配的行 。 -
-n:显示行号,有助于我们在查出错误信息后,明确告知是在第几行 。 -
-R:递归搜索,直接对文件夹下面的所有文件进行全面搜索 。 -
-w:精确匹配整个单词 。 -
-c:只输出文件内容有几行匹配,不输出具体内容 。 -
-E:支持扩展正则表达式搜索 。
三、 数据打包与压缩
在 Linux 中,压缩数据分为以下两个核心概念 :
-
打包 :把一堆文件或整个文件夹塞进一个文件里(例如
tar命令) 。注:打包不会压缩文件 。 -
压缩 :用算法将文件体积缩小(例如
gzip、bzip2、xz等命令) 。
1. tar 命令
tar 的最大优势在于它完美保留了 Linux 系统的文件权限、所有权和软链接等底层属性 。
语法格式 :
bash
tar [选项] [压缩包名.tar.gz] [源文件或目录]
-
核心动作参数:
-
-c:打包,把一堆文件或目录打包成一个新文件 。 -
-x:解包,把压缩包里的文件释放出来 。 -
-t:不解压,只查看压缩包里面有什么内容 。 -
压缩算法参数 :
-
-z:使用gzip压缩 。 -
-j:使用bzip2压缩 。 -
不填:仅打包,不压缩 。
-
辅助功能参数 :
-
-v:显示打包或解包的过程 。 -
-f:指定目标文件名(必须紧跟在参数最后) 。 -
-C:指定解压到的目标目录 。 -
--exclude:打包项目时,剔除编译生成的缓存文件或日志文件 。
2. zip 命令(用于打包压缩)
zip 命令的核心逻辑是:先想好压缩后的名字,再把文件放进去 。
语法格式 :
bash
zip [选项] [压缩包名.zip] [源文件]
常用参数 :
-
-r:递归压缩,这是压缩目录时必带的参数 。 -
-q:静默模式,执行的时候不显示压缩过程 。 -
-e:加密压缩,在回车输入完命令后,需盲打输入两次密码 。 -
-m:压缩完成以后自动删除源文件 。 -
-x:打包项目的时候,排除不需要的垃圾文件和隐藏文件 。 -
-[0-9]:指定压缩级别(0 到 9,数字越大压缩率越高,系统默认为 6) 。