当前位置:首页>Linux>Linux基础命令进阶:截取、归档压缩、过滤与统计详解

Linux基础命令进阶:截取、归档压缩、过滤与统计详解

  • 2026-09-24 12:27:31
Linux基础命令进阶:截取、归档压缩、过滤与统计详解

一、cut 文本截取命令

cut 是Linux专用文本截取工具,用于截取文件或管道输出中的指定列、指定字符段,常用于处理结构化文本(如日志、配置文件、表格数据)。

1. 核心语法

cut [选项] 文件名

2. 常用核心参数

  • -d:指定分隔符,默认分隔符为制表符\t

  • -f:指定截取第几列,支持单列、多列(1,3)、连续列(1-3)

  • -c:按字符位置截取,适合固定格式文本

3. 实操案例

截取/etc/passwd文件中以冒号分隔的第1列(用户名):

cut -d: -f1 /etc/passwd

截取第1、3列内容:

cut -d: -f1,3 /etc/passwd

截取每行前5个字符:

cut -c1-5 test.txt

二、tar 归档与释放(打包解压核心)

tar 是Linux标准归档命令,核心作用是打包目录/文件(归档)和解包释放,本身不压缩,常搭配gzip、bzip2实现压缩打包,是服务器备份、文件传输必备命令。

1. 核心常用参数

  • -c:创建新的归档包(打包)

  • -x:释放解压归档包(解包)

  • -v:显示详细操作过程,输出详细信息

  • -f:指定归档文件名(必须放在所有参数最后)

  • -z:调用gzip压缩/解压(.tar.gz格式)

  • -j:调用bzip2压缩/解压(.tar.bz2格式)

  • -C:指定解压目标目录

  • -p :打包时保留文件及目录的权限

  • -P:打包时保留文件及目录的绝对路径

2. 实操案例

1. 普通打包(仅归档,不压缩):

tar -cvf test.tar test/

2. 解包释放文件:

tar -xvf test.tar

3. gzip格式压缩打包(最常用):

tar -zcvf test.tar.gz test/

4. 解压tar.gz包到指定目录:

tar -zxvf test.tar.gz -C /home/

5. bzip2格式压缩打包:

tar -jcvf test.tar.bz2 test/

三、zip / unzip 跨平台压缩解压

zip、unzip 是跨Windows、Linux、Mac的通用压缩工具,兼容性极强,支持打包目录和多文件,日常文件传输首选。默认系统可能未安装,可执行 yum install zip unzip -y(CentOS)/ apt install zip unzip -y(Ubuntu)安装。

1. zip 压缩命令

语法:zip [参数] 压缩包名 源文件/目录

常用参数:-r 递归压缩目录(必须加,否则仅压缩目录空壳)

案例:压缩单个文件、整个目录

zip test.zip test.txt

zip -r dir.zip test_dir/

2. unzip 解压命令

语法:unzip [参数] 压缩包名

常用参数:-d 指定解压目录

案例:解压到当前目录、指定目录

unzip test.zip

unzip dir.zip -d /home/test/

四、gzip / bzip2 高效压缩解压

二者均为Linux专属压缩工具,压缩效率高于zip,常用于服务器日志、大文件压缩,区别是:gzip速度快、兼容性高;bzip2压缩率更高、体积更小,速度稍慢。默认压缩后删除原文件。

1. gzip 命令(.gz格式)

  • 压缩文件:gzip test.txt 生成 test.txt.gz,删除原文件

  • 解压文件:gzip -d test.txt.gz 解压并删除压缩包,恢复原文件

  • 保留原文件压缩:gzip -c test.txt > test.txt.gz

2. bzip2 命令(.bz2格式)

  • 压缩文件:bzip2 test.txt 生成 test.txt.bz2,删除源文件

  • 解压文件:bzip2 -d test.txt.bz2

  • 保留原文件压缩:bzip2 -k test.txt

补充:gzip、bzip2 不支持直接压缩目录,目录压缩需搭配tar命令使用。

五、grep 文本过滤搜索

grep 是Linux最强文本过滤工具,支持普通字符、正则表达式匹配,用于从文件、管道输出中筛选指定内容,日志排查、文本检索必备。

1. 核心语法

grep [参数] "搜索关键词" 文件名

2. 高频参数

  • -n:显示匹配内容的行号

  • -i:忽略大小写匹配

  • -v:反向过滤,显示不包含关键词的行

  • -c:仅统计匹配行数,不显示内容

  • --color=auto:高亮显示匹配关键词(默认开启)

3. 实操案例

筛选文件中包含root的行并显示行号:

grep -n "root" /etc/passwd

反向过滤,排除空行和注释行:

grep -v "^#" test.conf | grep -v "^(date +%Y%m%d).tar.gz /var/log/

八、命令总结对照表

命令

核心功能

适用场景

cut

截取文本指定列/字符

结构化文本提取、数据清洗

tar

文件/目录归档、解压

批量打包备份、服务器文件迁移

zip/unzip

跨平台压缩解压

Windows/Linux互传文件

gzip/gzip -d

快速压缩、解压gz文件

日常快速压缩、日志归档

bzip2/bzip2 -d

高压缩率压缩、解压bz2文件

大文件极致压缩、节省磁盘空间

grep

文本内容过滤、搜索

日志排查、关键词检索、文本筛选

wc

行数、单词、字符统计

数据量化统计、批量计数

最新文章

随机文章