云计算百科
云计算领域专业知识百科平台

RH124 第三章 从命令行管理文件

一、Linux 文件系统底层架构与挂载机制

针对 Linux 文件系统的核心概念,从存储结构与挂载逻辑两个维度进行了深度拆解:

1. 文件系统存储结构(B树与区映射)
  • B树索引机制:文件系统底层采用 B 树结构进行文件索引,叶子节点记录了文件的起始物理地址及大小,利用 B 树的有序遍历特性实现快速查找。
  • 平衡与性能损耗:文件系统在增删文件时会进行 B 树的旋转与重平衡操作,这导致拷贝大量小文件时耗时较长,而拷贝单个大文件时速度较快。
  • 区映射表:通过叶子节点记录的起始扇区信息,结合区映射表定位后续数据块,实现从逻辑地址到物理磁盘的转换。
2. 挂载点与视图逻辑
  • 挂载点作用:文件系统格式化后无法直接使用,必须通过挂载点(Mount Point)将其关联到目录树(如根目录 /),用户通过挂载点访问磁盘上的二进制数据。
  • 视图与物理分离:`ls` 等命令显示的是挂载点的视图,而实际文件数据存储在磁盘分区(如 vda4)上。工作目录变更仅改变视图,不影响底层文件系统。

二、核心目录结构与容器化演进

1. 关键目录功能解析
  • 系统引导与配置:`/boot` 存放内核及引导文件,通常为独立分区;`/etc` 存储系统及服务的配置文件(如 hosts、网卡配置)。
  • 用户与运行时数据:`/home` 存放普通用户主目录(权限 700);`/root` 为超级用户主目录;`/run` 存放运行时数据(如 socket),重启后丢失。
  • 软件与变量数据:`/usr` 存放系统及用户软件(如 bin, sbin);`/var` 存放频繁变更的数据(如日志、数据库),常挂载于高速 SSD 以提高 IO 性能。
  • 设备与进程信息:`/dev` 存放设备文件(如磁盘、网卡);`/proc` 存放进程及系统统计信息(如命名空间、cgroup),关机即丢失。
2. 容器化架构演进
  • 目录合并趋势:自 RHEL 7 起,为适应容器化需求,`/bin` 和 `/sbin` 已合并至 `/usr/bin` 和 `/usr/sbin`,根目录下的对应目录仅为软链接。
  • 系统级支持:Linux 内核从架构层面增强了对容器(Namespace, Cgroup)和微服务的支持,RHEL 9 开始原生支持 Kubernetes。

三、Linux 文件系统与路径管理

针对 Linux 文件系统的层级结构与访问方式,从以下 3 个维度进行了详细拆解:

1. 绝对路径与相对路径的定义与区别
  • 绝对路径定义:以根目录 `/` 开头的完整路径,能够唯一标识文件在文件系统中的确切位置,适用于跨目录访问。
  • 相对路径定义:基于当前工作目录(PWD)的路径,通常用于访问当前目录或其子目录内的文件,不具备唯一性。
  • 操作规范:在生产环境中,当需要访问当前工作目录之外的深层文件时,必须使用绝对路径以确保准确性。
2. 文件系统特性与大小写敏感度
  • 大小写敏感机制:Linux 系统严格区分文件名的大小写,例如 `File` 与 `file` 被视为两个不同的文件,这与 Windows 和 macOS 的默认行为不同。
  • 当前目录查看:`pwd` 命令用于显示当前所在的绝对路径,是命令行操作中最频繁使用的命令之一,尤其在脚本中用于确定执行环境。
3. 目录切换与特殊符号应用
  • 目录切换技巧:`cd` 命令支持多种快捷操作,如 `cd -` 可在前后两个目录间快速切换,`cd ..` 返回上级目录。
  • 特殊符号含义:`.` 代表当前目录(常用于 Docker 构建等场景),`~` 代表当前用户的家目录,`..` 代表上级目录。

四、核心文件管理命令与生产规范

1. 文件与目录的创建、复制与移动
  • 创建操作:`touch` 用于创建空文件或更新文件时间戳;`mkdir -p` 用于级联创建多级目录。
  • 复制与移动:`cp` 用于复制文件(`-r` 递归复制目录);`mv` 用于移动或重命名文件,在生产环境中常用于“停服”操作(如修改文件名以停止服务)。
  • 备份意识:修改重要配置文件前必须先进行备份(如 `cp file file.back`),严禁直接修改源文件,避免因误操作导致系统不可逆故障。
2. 删除操作的风险控制
  • 递归删除风险:`rm -rf` 命令具有强制递归删除能力,一旦误删根目录或关键系统文件,将导致系统彻底崩溃且无法恢复。
  • 无回收站机制:Linux 命令行删除操作是物理删除,不存在回收站机制,必须极度谨慎。

五、软硬链接原理与应用场景

1. 硬链接(Hard Link)特性
  • 共享存储机制:硬链接与源文件共享同一个节点和磁盘数据块,删除其中一个文件不会影响其他链接,只有当链接数减为 0 时才释放数据。
  • 应用限制:硬链接只能用于常规文件,不能跨文件系统创建,常用于设备文件(如 `/dev` 下的设备)或需要多入口访问同一数据的场景。
2. 软链接(Symbolic Link)特性
  • 快捷方式原理:软链接类似于 Windows 的快捷方式,本身不存储数据,仅包含指向源文件的路径。若源文件被删除,软链接将失效(悬挂链接)。
  • 灵活性优势:软链接可以跨文件系统创建,也可链接目录和特殊文件,在 Docker 和 K8s 等容器化技术中应用广泛。

六、Shell 扩展匹配与变量基础

1. 通配符与花括号扩展
  • 通配符匹配:`*` 匹配任意多个字符,`?` 匹配单个字符,`[ ]` 匹配指定范围内的字符,用于快速筛选文件。
  • 花括号扩展:`{}` 用于生成序列或组合字符串,如 `{1..3}` 生成 1,2,3,`{a,b}{1,2}` 生成 a1,a2,b1,b2,常用于批量创建文件或目录。
2. 变量定义与引用转义
  • 变量操作:使用 `=` 赋值,`$` 引用变量值。为防止变量被意外扩展,建议使用花括号 `{}` 包裹变量名。
  • 引号转义:单引号 `'` 会按字面意思输出所有内容(不进行变量替换),双引号 `"` 允许变量替换但阻止通配符扩展。

七、本章知识点问答

  • 系统中的所有东西都被当成文件看;以根目录/作为起点,向下一层一层分支,形成一个倒置的目录树
  •  /  根目录:整个系统最顶层起点

         /root :管理员root的家目录

         /home :普通用户的家目录存放位置

         /etc :存放系统所有配置文件

         /bin 、 /sbin :存放系统基础命令

         /usr :存放软件程序、文档、库文件

         /dev :硬件设备文件(硬盘、鼠标等)

         /tmp :临时文件目录,重启里面文件会清理

  • 只要路径第一个字符是  / ,就是绝对路径,不以  /  开头就是相对路径。
  • rm -r:递归删除,不管文件夹里面有没有文件、子目录,全部一起删掉,威力更大。
    rm -d:只能删除空文件夹,文件夹里面有文件就删不掉。
  • 链接相当于文件“快捷方式”,分为硬链接、软链接;硬链接:多个文件名指向硬盘上同一份真实数据;不能跨分区、不能链接文件夹;删除一个文件名,文件数据还在,所有硬链接全部删完数据才消失。软链接:类似Windows快捷方式,保存目标文件路径;可以跨分区、支持链接文件夹;原始文件删掉后,软链接直接失效打不开。
  • 创建:ln 原文件 硬链接名 ;ln -s 原文件 软链接名
    查看:ls -l。
  • * :匹配任意长度任意字符(可以代表0个、1个、多个字符)
    ? :匹配任意单个字符(不能是空)
    ??? :匹配正好3个字符的文件名
    a* :所有以a开头的文件
    *b :所有以b结尾的文件
    *c* :文件名中包含字母c的文件
    [ac]* :以a 或者 c开头的文件
    [^abc] :匹配任意不是a、b、c的单个字符
    [!abc] :作用和 [^abc] 完全一样,匹配非a/b/c单个字符
  • $HOSTNAME :读取系统环境变量HOSTNAME的值;
    ${HOSTNAME} :同样读取HOSTNAME变量;大括号是用来界定变量边界,防止和后面文字粘连出错;
    $(hostname) :执行hostname这条命令,把命令输出结果拿过来,不是读取环境变量。
  • 单引号  ' ' :里面内容原样保留,Shell完全不解析,变量、特殊符号全部当成普通文字。
    双引号  " " :大部分符号当成普通文字,但是允许解析变量 $、反引号。
  • 赞(0)
    未经允许不得转载:网硕互联帮助中心 » RH124 第三章 从命令行管理文件
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!