前言

在 Linux 系统的运维与开发场景中,文本处理、进程监控与文件定位是高频核心任务。从基础的文件内容查看、编辑,到复杂的日志分析、系统资源监控,一套高效的工具链是保障工作效率的关键。本文将系统剖析 catmorelessnanogrepheadtailfindwhereistop 等工具的原理与用法,并结合管道通信、时间戳处理与文件压缩技术,构建从基础操作到工程化实践的完整知识体系。

目录

前言

一、基础文本查看工具:cat、tac、more、less

1.(1)cat用法功能

(2)tac用法功能

2.more/less:分页查看工具

(1)more的用法功能

(2)less核心用法功能

二、终端文本编辑器:nano

三、文本过滤工具:grep

1. 核心功能与常用

2. 工程化价值

四、内容截取工具:head、tail

1. head:提取文件头部内容

2. tail:提取文件尾部内容

五、文件定位工具:find、whereis

1. find:全系统文件搜索

2. whereis:系统命令与手册定位

六、系统监控工具:top

七、管道技术:进程间通信的高效桥梁

1. 匿名管道

2. 命名管道(FIFO)

八、时间戳技术:系统时间的标准化表达

1. 时间戳与可读时间的转换

2.cal指令

九、文件打包压缩:跨主机传输的效率优化

1. ZIP 格式:跨平台通用方案

2. 跨主机传输工具

总结

往期回顾:《Linux 新手入门:从文件操作到命令定制的高频指令实战指南》


一、基础文本查看工具:cat、tac、moreless

1.(1)cat用法功能

  • 核心功能: 轻量内容输出
  • 核心原理:直接读取文件内容并输出到标准输出,适用于查看小型文本文件或拼接多个文件。
  • 典型用例
[user1@VM-12-6-centos lession4]$ ll
total 1168
-rw-rw-r-- 1 user1 user1       0 Feb  5 21:03 1.txt
-rw-rw-r-- 1 user1 user1 1188903 Feb  5 19:14 haha
-rw-rw-r-- 1 user1 user1       0 Feb  5 21:02 hah.txt
-rw-rw-r-- 1 user1 user1      12 Feb  6 14:07 test.c
[user1@VM-12-6-centos lession4]$ cat test.c
hello world
  • 工程价值:在脚本中快速读取配置文件、拼接日志片段等场景中广泛使用。

(2)tac用法功能

tac和cat使用方法如出一辙但cat是正序输出,tac是倒叙

[user1@VM-12-6-centos lession4]$ cat 1.txt
sowmfomfom


e3wfe3f

hello world
[user1@VM-12-6-centos lession4]$ tac 1.txt
hello world

e3wfe3f


sowmfomfom

2.more/less:分页查看工具

(1)more的用法功能

  • 核心原理:按页显示文件内容,仅支持向下翻页,无法向上回溯,适合简单的长文件浏览

  • 典型用法
[user1@VM-12-6-centos lession4]$ more haha
hello 0
hello 1
hello 2
hello 3
hello 4
hello 5
hello 6
hello 7
hello 8
hello 9
hello 10
hello 11
hello 12
hello 13
hello 14
hello 15
hello 16
hello 17
hello 18
hello 19
hello 20
hello 21
hello 22
hello 23
hello 24
hello 25
hello 26
hello 27
hello 28
hello 29
hello 30
  • 操作快捷键
  • 空格键:向下翻一页
  • q:退出查看

(2)less核心用法功能

  • 核心原理:支持上下翻页、文本搜索与内容定位,是 more 的增强替代工具,也是生产环境中查看长日志的首选。
  • 典型用法:
[user1@VM-12-6-centos lession4]$ less hello.txt
  • 操作快捷键
    • PageUp/PageDown:上下翻页
    • /关键词:向下搜索目标内容
    • n:跳转到下一个匹配项
    • q:退出查看

二、终端文本编辑器:nano

nano 是一款轻量易用的终端文本编辑器,无需复杂学习成本,适合快速编辑配置文件与脚本。

  • 核心特点:界面简洁,底部实时显示快捷键提示,无需记忆复杂指令。
  • 典型用法
[user1@VM-12-6-centos lession4]$ nano 1.txt

根据以上代码就可以进入1.txt文件里可以在里面输入自己想要的内容,下面就是文本编译器

  • 关键操作
    • Ctrl+O:保存文件
    • Ctrl+X:退出编辑器
    • Ctrl+W:文本搜索
  • 工程价值:在无图形界面的服务器环境中,可快速修改配置文件,避免依赖复杂的 vim 编辑器。

三、文本过滤工具:grep

grep 是 Linux 生态中用于文本内容过滤的核心工具,支持正则表达式匹配,是日志分析与数据预处理的必备工具。

1. 核心功能与常用

  • 基础匹配:从 haha 中筛选包含 9999 的行:
[user1@VM-12-6-centos lession4]$ grep "9999" haha
hello 9999
hello 19999
hello 29999
hello 39999
hello 49999
hello 59999
hello 69999
hello 79999
hello 89999
hello 99990
hello 99991
hello 99992
hello 99993
hello 99994
hello 99995
hello 99996
hello 99997
hello 99998
hello 99999

关键参数

  • -i:忽略大小写匹配
  • -n:输出匹配行的行号
  • -v:反向匹配(输出不包含目标字符串的行)
  • -E:支持扩展正则表达式

2. 工程化价值

在分析程序运行日志、系统监控数据等场景中,grep 可快速定位关键信息,结合管道与其他工具实现复杂的日志分析流程。

四、内容截取工具:headtail

用于提取文件的头部或尾部内容,是日志实时监控与数据采样的核心工具。

1. head:提取文件头部内容

  • 核心原理:默认输出文件前 10 行,可通过参数指定行数,适用于快速预览文件开头。
  • 典型用法
#输出前10行内容
[user1@VM-12-6-centos lession4]$ head -10 haha
hello 0
hello 1
hello 2
hello 3
hello 4
hello 5
hello 6
hello 7
hello 8
hello 9

2. tail:提取文件尾部内容

  • 核心原理:默认输出文件后 10 行,支持实时监控文件新增内容,是日志动态追踪的首选工具。
  • 典型用法
#输出后10行内容
[user1@VM-12-6-centos lession4]$ tail -10 haha
hello 99991
hello 99992
hello 99993
hello 99994
hello 99995
hello 99996
hello 99997
hello 99998
hello 99999
hello 100000

五、文件定位工具:findwhereis

用于在系统中定位文件或命令的安装路径,是运维排查与开发调试的关键工具。

1. find:全系统文件搜索

  • 核心原理:遍历指定目录树,根据文件名、大小、修改时间等条件精准定位文件,功能强大但性能开销较高。
  • 典型用法
#查找家目录下所有后缀名为.txt的文件
[user1@VM-12-6-centos lession4]$ find ~ -name "*.txt"
/home/user1/lession4/1.txt
/home/user1/lession4/hah.txt
/home/user1/lession4/hello.txt
/home/user1/lession3/haha.txt
/home/user1/lession3/1.txt

2. whereis:系统命令与手册定位

  • 核心原理:仅搜索系统预设的二进制、源码与手册路径,速度快但范围有限,适合定位系统自带命令。
  • 典型用法
[user1@VM-12-6-centos ~]$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

六、系统监控工具:top

top 是一款实时系统监控工具,可动态展示进程的 CPU、内存占用率及系统负载等关键指标,是排查性能瓶颈的核心工具。

  • 核心功能
    • 实时显示进程资源占用排名
    • 支持按 CPU、内存等维度排序
    • 提供系统负载、进程总数等全局统计信息
  • 典型用法
[user1@VM-12-6-centos ~]$ top

关键操作

  • P:按 CPU 占用率排序
  • M:按内存占用率排序
  • q:退出监控界面

七、管道技术:进程间通信的高效桥梁

管道是 Linux 系统中实现进程间通信(IPC)的经典机制,分为匿名管道与命名管道两类,二者在核心原理上高度统一,但适用场景存在差异。

1. 匿名管道

  • 核心原理:匿名管道基于内核缓冲区实现,仅支持具有亲缘关系的进程间通信,其生命周期随进程结束而终止。
  • 典型用法:通过竖线 | 连接多个命令,实现数据流的级联处理。例如:
[user1@VM-12-6-centos lession4]$ head -20 haha|tail -15|grep "1"
hello 10
hello 11
hello 12
hello 13
hello 14
hello 15
hello 16
hello 17
hello 18
hello 19

2. 命名管道(FIFO)

  • 核心原理:命名管道以文件系统中的实体文件(如示例中的 fifo 文件)为标识,支持无亲缘关系的进程间通信,数据仅在内存中传输,不会持久化到磁盘。
  • 典型用法:通过 mkfifo 命令创建,读写方式与普通文件一致,适用于跨进程的异步数据传输场景

管道文件属性是p开头可以理解成英文pipe

八、时间戳技术:系统时间的标准化表达

Unix 时间戳(从 1970-01-01 00:00:00 UTC 起经过的秒数)是 Linux 系统中时间处理的核心标准,在日志分析、数据同步等场景中至关重要。

1. 时间戳与可读时间的转换

  • 时间戳生成
[user1@VM-12-6-centos lession4]$ date +%s
1770361681
  • 可读时间生成
[user1@VM-12-6-centos lession4]$ date +%Y-%m-%d_%H:%M:%S
2026-02-06_15:09:04
  • 时间戳转可读时间
[user1@VM-12-6-centos lession4]$ date +%Y-%m-%d_%H:%M:%S -d @0
1970-01-01_08:00:00

该命令可将时间戳 0 转换为系统起始时间 1970-01-01 08:00:00,在日志溯源与系统事件定位中具有关键作用。

2.cal指令

cal命令可以⽤来显⽰公历(阳历)⽇历。公历是现在国际通⽤的历法,⼜称格列历,通称阳历。“阳历”⼜名“太阳历”,系以地球绕⾏太阳⼀周为⼀年,为西⽅各国所通⽤,故⼜名“西历”。
命令格式: cal 参数 [年份]

  • 功能:⽤于查看⽇历等时间信息,如只有⼀个参数,则表⽰年份(1-9999),如有两个参数,则表⽰⽉份和年份

常⽤选项:

  •  -3 显⽰系统前⼀个⽉,当前⽉,下⼀个⽉的⽉历
  •  -j 显⽰在当年中的第⼏天(⼀年⽇期按天算,从1⽉1号算起,默认显⽰当前⽉在⼀年中的天数)
  •  -y 显⽰当前年份的⽇历
[user1@VM-12-6-centos lession4]$ cal
    February 2026   
Su Mo Tu We Th Fr Sa
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28


[user1@VM-12-6-centos lession4]$ cal -3
    January 2026          February 2026          March 2026     
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
             1  2  3   1  2  3  4  5  6  7   1  2  3  4  5  6  7
 4  5  6  7  8  9 10   8  9 10 11 12 13 14   8  9 10 11 12 13 14
11 12 13 14 15 16 17  15 16 17 18 19 20 21  15 16 17 18 19 20 21
18 19 20 21 22 23 24  22 23 24 25 26 27 28  22 23 24 25 26 27 28
25 26 27 28 29 30 31                        29 30 31          

九、文件打包压缩:跨主机传输的效率优化

文件打包与压缩是解决跨主机传输中 “文件丢失” 与 “传输效率” 问题的核心方案,不同压缩格式适用于不同的传输场景。

1. ZIP 格式:跨平台通用方案

  • 打包zip -r dst.zip src
  • 解包unzip XXX.zip -d YYYY
  • 该格式适用于 Windows 与 Linux 系统间的文件传输,兼容性强。
[user1@VM-12-6-centos ~]$ ll
total 16
drwxrwxr-x 2 user1 user1 4096 Feb  6 14:06 dir
drwxrwxr-x 2 user1 user1 4096 Feb  5 19:23 lession3
drwxrwxr-x 2 user1 user1 4096 Feb  6 15:05 lession4
drwxrwxr-x 3 user1 user1 4096 Feb  2 12:05 linux
#把lession4目录打包解压
[user1@VM-12-6-centos ~]$ zip -r lession4.zip lession4
	zip warning: ignoring FIFO (Named Pipe) - use -FI to read: lession4/fifo
  adding: lession4/ (stored 0%)
  adding: lession4/haha (deflated 80%)
  adding: lession4/test.c (stored 0%)
  adding: lession4/1.txt (deflated 23%)
  adding: lession4/hah.txt (stored 0%)
  adding: lession4/hello.txt (deflated 65%)
[user1@VM-12-6-centos ~]$ ll
total 252
drwxrwxr-x 2 user1 user1   4096 Feb  6 14:06 dir
drwxrwxr-x 2 user1 user1   4096 Feb  5 19:23 lession3
drwxrwxr-x 2 user1 user1   4096 Feb  6 15:05 lession4
-rw-rw-r-- 1 user1 user1 239753 Feb  6 15:16 lession4.zip
drwxrwxr-x 3 user1 user1   4096 Feb  2 12:05 linux
user1@VM-12-6-centos ~]$ unzip lession4.zip -d dir
Archive:  lession4.zip
   creating: dir/lession4/
  inflating: dir/lession4/haha       
 extracting: dir/lession4/test.c     
  inflating: dir/lession4/1.txt      
 extracting: dir/lession4/hah.txt    
  inflating: dir/lession4/hello.txt  
[user1@VM-12-6-centos ~]$ tree
.
|-- dir
|   `-- lession4
|       |-- 1.txt
|       |-- haha
|       |-- hah.txt
|       |-- hello.txt
|       `-- test.c
|-- lession3
|   |-- 1.txt
|   `-- haha.txt
|-- lession4
|   |-- 1.txt
|   |-- fifo
|   |-- haha
|   |-- hah.txt
|   |-- hello.txt
|   `-- test.c
|-- lession4.zip
`-- linux
    |-- README.en.md
    `-- README.md

2. 跨主机传输工具

  • sz:将本地文件发送至远程主机
  • rz:从远程主机接收文件
  • 结合压缩格式使用,可大幅提升传输效率与可靠性。
#将本地文件发送至远程主机
[user1@VM-12-6-centos ~]$ sz lession4.zip
#远程主机接收文件
12-6-centos ~]$ rz -E 

总结

往期回顾:《Linux 新手入门:从文件操作到命令定制的高频指令实战指南》

本文系统梳理了 Linux 环境中文本处理、系统监控与文件管理的核心技术,从基础的 catnano 等工具,到复杂的管道通信与日志分析,再到进程监控与文件定位,构建了一套完整的技术体系。这些技术不仅是 Linux 系统操作的基础,更是构建高效运维与开发工作流的关键支撑。通过深入理解其底层原理与应用场景,读者可显著提升在日志分析、性能排查、跨主机协作等场景下的技术实践能力。

Logo

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

更多推荐