前言

在 Linux 操作系统的日常使用与管理中,文件和目录的操作是最基础也最核心的技能之一。无论是资深大佬还是小白,都需要熟练掌握目录结构的组织逻辑、文件内容的查看与检索方法,以及数据的备份与恢复技巧。这些操作不仅关系到日常工作的效率,更直接影响到系统的稳定运行与数据安全。

本文将从 Linux 独特的树形目录结构讲起,详细介绍各类文件查看命令(如 cat、more、less、head、tail)的特点与用法,深入解析文件内容统计(wc)和检索(grep)的实用技巧,最后还会讲解常用的压缩、解压缩工具(gzip、bzip2 等)及归档工具(tar)的组合使用方法,帮助读者系统掌握 Linux 文件与目录管理的核心知识,为后续的 Linux 操作与运维打下坚实基础。


一、Linux 目录结构

1.1 树形目录结构概述

Linux 操作系统中的目录和文件数据被组织为一个树形目录结构,所有的分区、目录、文件等都具有一个相同的位置起点——根目录。Linux 操作系统中只有一个根目录,而 Windows 操作系统中每个分区都有一个根目录。

1.1.1 根目录及其子目录

  • 根目录(/):Linux 操作文件系统的起点,其所在的分区称为根分区。
  • 常用子目录及其作用
    • /root:管理员root的家目录
    • /home:普通用户的家目录
    • /boot:存放系统内核及启动文件
    • /dev:存放设备接口文件
    • /etc:存放系统主要配置文件
    • /sbin:存放系统管理命令,仅管理员用户可以执行
    • /bin:存放常用用户命令(如cp、ls),所有用户都可以执行
    • /usr:存放用户应用程序
    • /var:存放经常变化的文件(如日志),几乎所有日志文件都存储在该目录

二、查看及检索文件

2.1 查看文件内容

2.1.1 cat命令

  • 显示文件的内容,可以同时接多个地址。使用 cat 命令可以非常简单地直接显示整个文件的内容,但是当文件中的内容较多时, 很可能只能看到最后一部分信息,文件前面的大部分内容都来不及看到,查看长文件时推荐使用moreless命令。
cat [选项] 文件名 ..
  • 示例:
cat /etc/hosts /etc/redhat-release #同时显示了hosts和redhat-release两个文件的内容

在这里插入图片描述

2.1.2 more和less命令

用于分页查看文件内容。

2.1.2.1 more命令

more 命令是较早出现的分页显示命令,表示文件内容还有更多(more)的意思。

more [选项] 文件名 ..
more -3 /var/lib/unbound/root.key #以每次出现三行的形式浏览root.key文件,使用空格可以向下翻页 

在这里插入图片描述

2.1.2.2 less命令

less 命令是较晚出现的分页显示命令,提供了比早期 more 命令更多的一些扩展功能。特别是查找操作/,在面对大文件进行查看时,让less的便捷性远超与more

less [选项] 文件名 ..
less /varlib/unbound/rook.key #输入后进入less查看模式

在这里插入图片描述

在这里插入图片描述

2.1.2.3 more命令与less命令操作对比
  • 基本操作
操作 more命令 less命令
向前翻页 空格键 或 f 空格键 或 f
向后翻页 b(仅部分版本支持) b
向下滚动一行 回车键 回车键 或
向上滚动一行 k(部分版本不支持) k
跳转到文件首 不支持 g
跳转到文件尾 不支持 G
退出查看 q q
  • 搜索功能
操作 more命令 less命令
向下搜索 /(仅部分版本支持) /(支持正则表达式)
向上搜索 不支持 ?(支持正则表达式)
跳转下一个匹配 n n
跳转上一个匹配 不支持 N
  • 其他功能
操作 more命令 less命令
显示行号 不支持 -N(启动参数)
实时监控文件变化 不支持 F(类似tail -f
水平滚动 不支持
帮助菜单 h(部分版本支持) h

2.1.3 head和tail命令

2.1.3.1 head命令

headtail 是一对作用相反的命令,前者用于显示文件开头的一部分内容,后者用于显示文件末尾的一部分内容。可以使用-n选项(n 为具体的行数)指定需要显示多少行的内容,若不指定行数,默认只显示十行。
执行head -4 /etc/passwd命令,可以查看用户账号文件/etc/passwd 开头第一行至第四行的内容。

head -4 /etc/passwd #查看用户账号文件/etc/passwd开头第一行至第四行的内容。
head /etc/passwd #不加参数时默认显示前10行内容

在这里插入图片描述

2.1.3.2 tail命令

tail 命令则正好相反,用于查看文件末尾的内容。tail 命令通常用于查看系统日志(因为较新的日志记录总是添加到文件最后),以便观察网络访问、服务调试等相关信息。配合“-f”选项使用时,还可以跟踪文件尾部内容的动态更新,便于实时监控文件内容的变化。例如,以下操作可以查看系统公共日志文件/var/log/messages 的最后十行内容,并在末尾跟踪显示该文件中新记录的内容(按 Ctrl+C 组合键终止)。

tail -4 /etc/passwd #查看用户账号文件/etc/passwd最后四行的内容。
tail -f /etc/passwd #实时监控passwd文件的内容变化

在这里插入图片描述
在这里插入图片描述

2.2 统计和检索文件内容

2.2.1 wc 命令

  • 用于统计文件内容中的单词数量、行数等信息。
    • -l:统计行数。
    • -w:统计单词个数。
    • -c:统计字节数。
  • 示例:
  wc -l /etc/passwd #统计passwd文件的行数
  wc /etc/passwd #不加参数,默认展示文件的行数,单词数,字节数

在这里插入图片描述

2.2.2 grep 命令

  • 用于在文件中查找并显示包含指定字符串的行。
grep [选项] 查找条件 目标文件

在这里插入图片描述

  • -i:忽略大小写。
  • -v:反转查找。
  • 示例:
grep -v "^#" yum.conf #输出yum.conf中的所有除#开头的行

在这里插入图片描述

2.2.2.1 查找条件设置

①要查找的字符串以双引号括起来
②“……$”表示以……结尾

grep -i ".log$" yum.conf #查找所有以“.log”结尾的行

在这里插入图片描述
③“^……”表示以……开头

grep -v "^debug" yum.conf #显示yum.conf中所有以debug开头的行

在这里插入图片描述
④ “^$”表示空行

grep -v "^#" yum.conf|grep "^$" -v ##输出yum.conf中的所有除#开头和空行外的行

在这里插入图片描述


三、备份与恢复文档

3.1 使用压缩和解压缩工具

3.1.1 gzip 和 gunzip 命令

  • gzip:压缩文件,扩展名为 .gz
    • 示例:
gzip -9 文件名 # 压缩,-9是压缩的等级,-9是高压缩,压缩比例最大,压缩最慢,理论上用6是最好的
gzip -d 文件名 # -d,解压缩
gunzip -d 文件名 #解压缩
gzip -9 yum.conf #压缩yum.conf成gz压缩包

在这里插入图片描述

  • gunzip:解压缩文件。
    • 示例:
gzip -d yum.conf.gz #解压yum.conf.gz压缩包,解压成功
gunzip yum.conf.gz #也可以达成一样的效果

在这里插入图片描述

3.1.2 bzip2 和 bunzip2 命令

bzip2 -9 文件名 # 压缩,-9是压缩的等级,-9是高压缩,压缩比例最大,压缩最慢,理论上用6是最好的
bzip2 -d 文件名 # -d,解压缩
bunzip2 文件名 #解压缩
  • bzip2:压缩文件,扩展名为 .bz2
    • 示例:
bzip2 yum.conf

在这里插入图片描述

  • bunzip2:解压缩文件。
    • 示例:
bunzip2 yum.conf.bz2 #解压yum.conf.bz2压缩包,解压成功
bzip2 -d yum.conf #也可以成功解压.bz2文件

在这里插入图片描述

3.2 使用 tar 归档和释放工具

tar 命令主要用于对目录和文件进行归档。在实际的备份工作中,通常在归档的同时也会将包文件进行压缩(需要调用前面的 gzipbzip2 命令),以节省磁盘空间。使用 tar 命令时,选项前的“-”号可以省略。

tar [选项] 归档文件名 源文件或目录 #压缩
tar [选项] 归档文件名 [-C 目标目录] #解压

3.2.1 制作归档备份文件

  • tar 命令常用选项:
    • -c:创建(Create).tar 格式的包文件。
    • -C:解压时指定释放的目标文件夹。
    • -f:表示使用归档文件。
    • -j:调用 bzip2 程序进行压缩或解压。
    • -z:调用 gzip 程序进行压缩或解压。
    • -p:打包时保留文件及目录的权限。(不常用)
    • -P:打包时保留文件及目录的绝对路径,打包的同时还会打包路径。
    • -t:列表查看包内的文件。
    • -v:输出详细信息(Verbose)。
    • -x:解开.tar 格式的包文件。
  • 通常tar命令的选项都是组合使用的,最常用的压缩选项为-czfgzip压缩归档、-cjfbzip2压缩归档。
  • 示例:
tar czvf test111-2025-08-11.tar.gz test111 #将test111进行tar归档并以.gz的格式输出

tar cjvf test111-2025-08-11.tar.bz2 test111#和上一行的区别为使用了bzip2进行压缩,会压缩成.bz2文件

在这里插入图片描述

3.2.2 从归档文件中恢复数据

  • 而最常用的归档恢复选项则为-xzfgzip归档恢复、-xjfbzip2归档恢复。恢复归档文件时最好不要放在归档文件的原文件夹,因为恢复的归档文件会覆盖原文件夹,可能造成数据丢失。
  • 示例:
tar xzvf test111-2025-08-11.tar.gz -C test #将test111-2025-08-11.tar.gz归档恢复到test文件夹

tar xjvf test111-2025-08-11.tar.bz2 -C test #将test111-2025-08-11.tar.bz2归档恢复到test文件夹

在这里插入图片描述


总结

本文主要介绍了 Linux目录,包括采用树形结构的目录结构(以根目录为起点,包含 /root、/home 等常用子目录)、查看及检索文件的命令(如 cat、more/less、head/tail 查看内容,wc 统计行数等,grep 检索字符串),以及备份与恢复文档的工具(gzip/gunzip、bzip2/bunzip2 用于压缩解压缩,tar 用于归档及结合压缩工具的操作)。Linux的目录结构以及这些工具都能在工作中大大地帮助到我们,认识和学习这些都是很有益处的。望大家能聚沙成塔,与君共勉之!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐