Linux学习day4

一、 磁盘空间与存储媒体管理

作为系统管理员,监测存储空间的大小是一项非常重要的工作,用以防止空间爆满,并为系统留出冗余空间以保持系统正常运行 。

1. 挂载存储媒体 (mount)

该应用主要用于为服务器增加新的物理存储空间 。Linux 在正常情况下不会自动挂载,需要通过命令手动操作 。

  • 查看已挂载设备 :直接在 bash shell 中使用 mount 命令并回车,会输出当前系统上已挂载的设备列表 。

  • mount 命令输出的 4 个主要信息

  1. 媒体设备文件名

  2. 媒体挂载到虚拟目录的挂载点

  3. 文件系统类型

  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,单位转换成易读的 GUsedAvailable 的单位也会变成 MG 等 。

  • 单位转换逻辑

  • 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 命令) 。注:打包不会压缩文件

  • 压缩 :用算法将文件体积缩小(例如 gzipbzip2xz 等命令) 。

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) 。

相关推荐
南境十里·墨染春水6 小时前
线程池学习(四) 实现缓存式线程池
学习
xG8XPvV5d6 小时前
GitHub Actions自动化部署全攻略
运维·自动化·github
申耀的科技观察6 小时前
【观察】戴尔科技:以“解耦化+自动化”重塑私有云,定义“云智能”进化新范式
运维·科技·自动化
sdm0704276 小时前
应用层自定义协议
运维·服务器·网络
Agent产品评测局6 小时前
标准化产品vs定制开发,制造业自动化方案选型横评:2026工业智能体落地深度指南
运维·人工智能·ai·chatgpt·自动化
bush46 小时前
linux开发板连接virtualbox虚拟机ubuntu的usb网卡,访问外网方法。
linux·运维·ubuntu
吃好睡好便好6 小时前
伽利略·伽利雷的故事
学习
GEO从入门到精通6 小时前
为什么要学习GEO?
人工智能·学习
VOOHU-沃虎6 小时前
VOOHU——防水RJ45连接器在户外网络设备中的应用与选型
运维·服务器·网络