开发常用的 Linux 命令3(文本处理、打包和压缩)

简介: 开发常用的 Linux 命令3(文本处理、打包和压缩)

开发常用的 Linux 命令3(文本处理、打包和压缩)

image.png

作为开发者,Linux是我们必须掌握的操作系统之一。因此,在编写代码和部署应用程序时,熟练使用Linux命令非常重要。这些常用命令不得不会,掌握这些命令,工作上会事半功倍,大大提高工作效率。



五、文本处理


grep命令


分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等


基本用法

grep [options] pattern [files]


其中,pattern 是要查找的模式,可以是普通字符串或正则表达式。files 则是要搜索的文件列表,可以是单个文件、多个文件或者使用通配符匹配多个文件。

常用选项包括:

选项 执行
-i 忽略大小写
-r 递归搜索子目录中的文件
-w 只匹配整个单词,而不是部分字符串
-n 显示匹配行的行号
-c 统计匹配的行数
-v 显示不匹配的行



常用案例:

1.在文件 '/var/log/messages’中查找关键词"Aug"

grep Aug /var/log/messages


2.在文件 '/var/log/messages’中查找以"Aug"开始的词汇

grep ^Aug /var/log/messages 
• 1


3.选择 ‘/var/log/messages’ 文件中所有包含数字的行

grep [0-9] /var/log/messages


4.在目录 ‘/var/log’ 及随后的目录中搜索字符串"Aug"

grep Aug -R /var/log/*


5.将example.txt文件中的 “string1” 替换成 “string2”

sed 's/stringa1/stringa2/g' example.txt


6.从example.txt文件中删除所有空白行

sed '/^$/d' example.txt


7.使用正则表达式进行高级搜索。例如,要查找以数字开头的行,可以使用以下命令:

grep ^[0-9] file1.txt


4573757b81e24d449bcdd46147d58308.png


paste命令

paste命令用于合并多个文件的行,将它们按列对齐并输出到标准输出。使用以下语法来使用

paste [OPTION]... [FILE]...


示例:

有两个文件 file1.txtfile2.txt,将它们的每一行合并在一起

paste file1.txt file2.txt


这将输出类似于以下内容的结果:


Line 1 from file1.txt    Line 1 from file2.txt
Line 2 from file1.txt    Line 2 from file2.txt
Line 3 from file1.txt    Line 3 from file2.txt

2f88b0998acc4bd7ac450191e6b04cf7.png


2.合并两个文件或两栏的内容,中间用"+"区分

paste -d '+' file1 file2


3.如果只想合并特定的行数,可以使用 head 或 tail 命令将其与 paste 命令一起使用。例如,要合并文件 file1.txt 的前10行和文件 file2.txt 的后5行,使用以下命令:


head -n 10 file1.txt | paste -d '\t' - <(tail -n 5 file2.txt)


sort命令

用于对文本文件进行排序。

该命令的基本语法为:

sort [options] [file]


其中,[options] 为可选参数,用于控制排序的方式和输出格式;[file] 则表示要排序的文件路径。

以下是 sort 命令的一些实例:

1.排序两个文件的内容

sort file1 file2


00a5e0ff69d1436a9f1fe36a4d1fab2f.png


2.对文件进行反向排序:

sort -r file.txt
• 1

3.按照数值大小排序:

sort -n file.txt


4.忽略行首空格并按照第二个字段进行排序:

sort -k 2 file.txt
• 1

5.忽略行首空格并按照第二个字段进行数值排序:

sort -n -k 2 file.txt


6.取出两个文件的并集(重复的行只保留一份)

sort file1 file2 | uniq 
• 1

7.删除交集,留下其他的行

sort file1 file2 | uniq -u


a3436ac10e774a379f927d87208aa3ed.png


8.取出两个文件的交集(只留下同时存在于两个文件中的文件)

sort file1 file2 | uniq -d 
• 1

9.对文件file1.txt进行排序,并将结果保存到file2.txt中:

sort file1.txt > file2.txt
• 1



comm命令

comm 命令是一个用于比较两个已排序的文件行的工具。它可用于找到两个文件中共有的行、仅在第一个文件中独有的行,以及仅在第二个文件中独有的行。

comm 命令的基本语法如下:

comm [OPTION]... FILE1 FILE2


其中 FILE1FILE2 是要比较的两个已排序的文件。OPTION 是一些可选的参数,可以控制输出格式等。

常用的选项包括:

选项 执行
-1 隐藏仅出现在第一个文件中的行
-2 隐藏仅出现在第二个文件中的行
-3 隐藏同时出现在两个文件中的行
-i 在比较时忽略大小写


常用示例:

1.比较两个文件的内容只删除 ‘file1’ 所包含的内容

comm -1 file1 file2 
• 1


2.比较两个文件的内容只删除 ‘file2’ 所包含的内容

comm -2 file1 file2 
• 1

3.比较两个文件的内容只删除两个文件共有的部分

comm -3 file1 file2



六、打包和压缩文件


tar命令


对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压

常用的选项

选项 执行
-c 新建打包文件
-t 查看打包文件的内容含有哪些文件名
-x 解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j 通过bzip2的支持进行压缩/解压缩
-z 通过gzip的支持进行压缩/解压缩
-v 在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir 指定压缩/解压缩的目录dir



常用的示例:

1.创建 tar 包

tar -cvf archive.tar file1 file2


这条命令将会创建名为 archive.tar 的归档文件,并将指定的文件(file1、file2)添加到该文件中。 -c 选项表示“创建”,-v 表示“详细”(显示出打包过程中的所有文件),-f 指定了输出的文件名。


这个图片中,原本只有file1.txt,file2.txt,filename.txt,使用tar -cvf abc.tar file1.txt file2.txt filename.txt,将它们打包



2.解压 tar 包

tar -xvf archive.tar

这条命令将会解压名为 archive.tar 的归档文件,并将其中的内容提取到当前目录中。 -x 选项表示“解压”。

74400d86e04f47b2a84c878c3a1659e8.png

这个图片中,原本只有abc.tar,使用tar -xvf abc.tar ,将它们file1.txt file2.txt filename.txt解压到当前目录




3.同时进行压缩和打包

tar -czvf archive.tar.gz file1 file2 ...


这条命令将会创建名为 archive.tar.gz 的归档文件,并将指定的文件(file1、file2)添加到该文件中,并使用 gzip 进行压缩。 -z 选项表示“使用 gzip 压缩”。


4.解压一个叫做 'file1.bz2’的文件

bunzip2 file1.bz2


5.压缩一个叫做 ‘file1’ 的文件

bzip2 file1 
• 1

6.解压一个叫做 'file1.gz’的文件

gunzip file1.gz


7.压缩一个叫做 'file1’的文件

gzip file1 
• 1

8.最大程度压缩

gzip -9 file1


9.创建一个叫做 ‘file1.rar’ 的包

rar a file1.rar test_file 
• 1

10.同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’

rar a file1.rar file1 file2 dir1


11.解压rar包

rar x file1.rar 
• 1

12.创建一个zip格式的压缩包

zip file1.zip file1


13.解压一个zip格式压缩包

unzip file1.zip 
• 1

14.将几个文件和目录同时压缩成一个zip格式的压缩包

zip -r file1.zip file1 file2 dir1
相关文章
|
1天前
|
关系型数据库 MySQL Linux
Linux命令systemctl详解
`systemctl`是Linux系统用于管理systemd服务的核心命令,它与systemd守护进程交互,实现启动、停止、重启服务及查看服务状态等功能。主要参数包括`start`、`stop`、`restart`、`status`、`enable`和`disable`等。例如,启动Apache服务使用`systemctl start httpd.service`,查看服务状态用`systemctl status &lt;service&gt;`。使用时需注意权限,服务名通常以`.service`结尾,但命令中可省略。最佳实践包括利用tab键补全、定期查看服务状态和合理配置服务自启。
|
1天前
|
存储 安全 Linux
Linux命令sync详解
`sync`命令在Linux中用于将内存缓冲区的数据强制写入磁盘,保证数据持久性和一致性。它在关机、重启或重要文件操作前后使用,以防数据丢失。工作原理是强制将内存中的数据同步到磁盘,特点是阻塞式执行且通常无需参数。常见用法包括安全关机、数据备份和配置文件修改后确保更改生效。应注意,过度使用可能影响性能,应适时使用`fsck`检查文件系统一致性。
|
1天前
|
存储 算法 安全
Linux命令sum详解
`sum`命令在Linux中用于计算文件的校验和与磁盘块数,确保文件传输或存储时的完整性。它使用加法运算生成校验和,可与文件内容比较验证变化。支持不同算法(如CRC),能处理多个文件。基本用法包括:`sum file.txt`来计算校验和,`sum -c checksum.txt`来验证文件完整性。但要注意,更强的校验算法如MD5或SHA家族可能更适合安全性需求。结合`find`和`xargs`可用于目录的递归校验。定期校验和记录校验和是最佳实践。
|
1天前
|
安全 数据管理 Shell
Linux命令su详解
`su`命令在Linux中用于切换用户身份,常用于权限管理。它允许用户无须注销当前会话就切换到另一个用户,尤其是root。`su`有多种选项,如`-`或`--login`加载目标用户环境,`-c`执行指定命令后返回。使用时需注意权限安全,建议用`sudo`以减少风险。通过限制`/etc/pam.d/su`可加强访问控制。`su`在系统维护和数据管理中扮演角色,但不直接处理数据。
|
10天前
|
Linux
Linux部署04-ls命令的参数和选项,主体,参数,选项,ls / 查看根目录下的文件夹,-a的意思是列出全部选项 ls -a home全部文件,.代表着隐藏的文件夹,-l 选项,以列表竖向的形式展
Linux部署04-ls命令的参数和选项,主体,参数,选项,ls / 查看根目录下的文件夹,-a的意思是列出全部选项 ls -a home全部文件,.代表着隐藏的文件夹,-l 选项,以列表竖向的形式展
|
10天前
|
Linux
Linux部署 cd-pwd命令,cd 不写参数 就直接回到用户的HOME目录,pwd 查看当前的工作目录,pwd是常看当前目录的路径,无参数
Linux部署 cd-pwd命令,cd 不写参数 就直接回到用户的HOME目录,pwd 查看当前的工作目录,pwd是常看当前目录的路径,无参数
|
10天前
|
Linux
Linux02---命令基础 Linux命令基础, ls命令入门,ls命令参数和选项,命令行是一种以纯字符操作系统的方式,command命令本身,options命令的细节行为,parameter命令的
Linux02---命令基础 Linux命令基础, ls命令入门,ls命令参数和选项,命令行是一种以纯字符操作系统的方式,command命令本身,options命令的细节行为,parameter命令的
|
2月前
|
安全 网络协议 Linux
【专栏】Linux系统中ping命令的使用,包括其基本语法、输出信息、常用参数及高级用法
【4月更文挑战第28天】本文详细介绍了Linux系统中ping命令的使用,包括其基本语法、输出信息、常用参数及高级用法。通过ping,用户可测试网络连通性、诊断故障及评估性能。此外,文章还讨论了ping在不同协议、模拟网络环境及与其他命令结合使用时的场景。注意防火墙和网络环境可能影响ping结果,理解错误信息有助于网络问题排查。熟练掌握ping命令,能助你成为Linux网络专家。不断学习和实践,提升网络技能,为构建稳定网络环境贡献力量。
|
2月前
|
Kubernetes Linux Shell
Linux |奇怪的知识---complete命令---你不知道的命令参数补全---kubectl命令的参数补全
Linux |奇怪的知识---complete命令---你不知道的命令参数补全---kubectl命令的参数补全
60 0
|
9月前
|
Shell Linux Perl
65Linux - RPM 命令参数使用详解
65Linux - RPM 命令参数使用详解
41 1