麒麟操作系统 | 文件查找与归档压缩

红帽认证、麒麟认证与 K8S 该如何选择?

图片


先来回顾麒麟往期内容:

图片

图片

  • 本章学习目标

    • 掌握命令的查询方法;

    • 掌握文件的查询方法。

    • 掌握文件内搜索内容的方法;

    • 掌握文件归档与压缩

文章目录

01 文件查找与处理

02 归档与压缩

01  文件查找与处理

图片

图片

一、查找文件

1、which 命令

作用:查找文件which 指令会在环境变量 $PATH 设置的目录里查找符合条件的文件。

语法结构

which [文件...]

常见命令选项

  • -n<文件名长度>

    :指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

  • -p<文件名长度>

    :与 -n 参数相同,但此处的<文件名长度>包含了文件的路径。

  • -w

    :指定输出时栏位的宽度。

  • -V

    :显示版本信息。

2、whereis 命令

作用:查找文件该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。

语法结构

whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]

常见命令选项

  • -b

    :只查找二进制文件

  • -B<目录>

    :只在设置的目录下查找二进制文件

  • -f

    :不显示文件名前的路径名称

  • -m

    :只查找说明文件

  • -M<目录>

    :只在设置的目录下查找说明文件

  • -s

    :只查找原始代码文件

  • -S<目录>

    :只在设置的目录下查找原始代码文件

  • -u

    :查找不包含指定类型的文件

图片

一、find 命令

作用:用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。

语法结构

find path -option [ -print ] [ -exec | -ok command ] {} \;

常见命令选项

  • -mount, -xdev

    :只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件

  • -amin n

    :在过去 n 分钟内被读取过

  • -anewer file

    :比文件 file 更晚被读取过的文件

  • -atime n

    :在过去 n 天内被读取过的文件

  • -cmin n

    :在过去 n 分钟内被修改过

  • -cnewer file

    :比文件 file 更新的文件

  • -ctime n

    :在过去 n 天内创建的文件

  • -mtime n

    :在过去 n 天内修改过的文件

  • -empty

    :空的文件

  • -gid n

     / -group name:gid 是 n 或是组名称为 name

  • -ipath p, -path p

    :路径名称符合 p 的文件,ipath 会忽略大小写

  • -name name, -iname name

    :文件名称符合 name 的文件;iname 忽略大小写

  • -size n

    :文件大小为 n 单位

    • b:区块

    • c:字节

    • k:千字节

    • w:字

  • -type c

    :文件类型是 c 的文件

    • d:目录

    • c:字符设备文件

    • b:块设备文件

    • p:管道

    • f:普通文件

    • l:符号链接

    • s:socket

  • -pid n

    :进程ID是 n 的文件

应用案例

  1. 将当前目录及其子目录下所有后缀为 .c 的文件列出:

find . -name ”*.c”
  1. 将当前目录及其子目录中的所有普通文件列出:

find . -type f
  1. 将当前目录及其子目录下所有最近 20 天内更新过的文件列出:

find . -ctime 20
  1. 查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问:

find /var/log -type f -mtime +7 -ok rm {} \;
  1. 查找当前目录中文件属主拥有读、写权限,同组用户与其他用户拥有读权限的文件:

find . -type f -perm 644 -exec ls -l {} \;
  1. 查找系统中所有长度为 0 的普通文件,并展示完整路径:

find / -type f -size 0 -exec ls -l {} \;

图片

一、grep 命令

grep 指令用于查找数据源中包含指定字符串的行,默认输出到屏幕。数据源可以是命令输出,也可以是指定的文件。grep 支持正则表达式,能够更加快捷、方便的检索数据。

语法结构

grep [OPTION...] 'keys' [FILE...]

常见命令选项

  • -i

    :不区分大小写

  • -v

    :查找不包含指定内容的行,反向选择

  • -w

    :按完整单词搜索

  • -n

    :显示匹配内容所在行号

  • -A num

    :显示匹配行以及后面 num 行,例:-A 5

  • -B num

    :显示匹配行以及前面 num 行

  • -C num

    :显示匹配行前后各 num 行

  • -e

    :使用基础正则匹配

  • -E

    :使用扩展正则匹配

  • ^key

    :匹配以关键字开头的行

  • key$

    :匹配以关键字结尾的行

  • ^$

    :匹配空行

  • --color=auto

    :检索到的关键词高亮着色显示

应用案例

  1. 忽略大小写匹配包含 root 的行

grep -i root /etc/passwd
  1. 精确匹配 ftp 完整单词

grep -w ftp /etc/passwd
  1. 只打印匹配到的关键字 ftp(不输出整行)

grep -wo ftp /etc/passwd
  1. 打印匹配 root 关键字的行号

grep -n root /etc/passwd
  1. 忽略大小写匹配包含 root 的行(附带行号)

grep -ni root /etc/passwd
  1. 忽略大小写,统计包含 root 的总行数

grep -nic root /etc/passwd
  1. 忽略大小写匹配以 root 开头的行

grep -i ^root /etc/passwd
  1. 匹配以 bash 结尾的行

grep bash$ /etc/passwd
  1. 匹配空行并打印行号

grep -n ^$ /etc/passwd
  1. 匹配以

    号开头的注释行

grep ^ # /etc/vsftpd/vsftpd.conf
  1. 匹配不以

    号开头的有效配置行(过滤注释)

grep -v ^ # /etc/vsftpd/vsftpd.conf
  1. 匹配包含 mail 关键字及其后5行

grep -A 5 mail /etc/passwd
  1. 匹配包含 mail 关键字及其前5行

grep -B 5 mail /etc/passwd
  1. 匹配包含 mail 关键字及其前后各5行

grep -C 5 mail /etc/passwd

图片

一、wc 命令

wc 指令可以计算文件的字节数、字数、行数。若不指定文件名称,或是所给予的文件名为-,则 wc 指令会从标准输入设备读取数据。

语法结构

wc [-clw][--help][--version][文件...]

命令选项

  • -c, --bytes

    :输出字节数统计

  • -m, --chars

    :输出字符数统计

  • -l, --lines

    :输出行数统计

  • --files0-from=文件

    :从指定文件读取以空字符(NUL)终止的名称;如果该文件被指定为 - 则从标准输入读文件名

  • -L, --max-line-length

    :显示最长行的长度

  • -w, --words

    :统计单词数量

  • --help

    :显示帮助信息并退出

  • --version

    :显示版本信息并退出

应用案例

统计 testfile 文件整体信息

wc testfile

输出示例:

3 92 598 testfile

释义:文件行数为 3、单词数 92、字节数 598

图片

一、sort 命令

将文件的每一行作为一个单位,从首字符向后,依次按 ASCII 码值进行比较,最后将它们按升序输出。

语法结构

sort [options] [filename]

常见命令选项

  • -u

    :去除重复行

  • -r

    :降序排列,默认升序

  • -o

    :将排序结果输出到文件中,类似重定向符号 >

  • -n

    :按照数字排序;默认按字符排序

  • -t

    :指定分隔符

  • -k

    :指定按照第N列排序

  • -b

    :忽略行首前导空格

  • -R

    :随机排序,每次执行结果不同

应用案例

  1. 按照用户 uid 对文件 1.txt 升序排列

sort -n -t: -k3 1.txt
  1. 按照用户 uid 对文件 1.txt 降序排列

sort -nr -t: -k3 1.txt
  1. 对文件 2.txt 数字排序并去除重复行

sort -nu 2.txt
  1. 数字排序,并将结果保存到文件

sort -n 2.txt -o 3.txt

图片

一、uniq 命令

去除连续重复行

注意:uniq 仅对相邻连续重复行生效,分散的重复行需要先使用sort排序。

语法结构

uniq [options] [filename]

常见命令选项

  • -i

    :忽略大小写

  • -c

    :统计重复行出现次数

  • -d

    :只显示重复行

应用案例

  1. 对文件 2.txt 去除连续重复行

uniq 2.txt
  1. 提取文件 2.txt 中重复的行

uniq -d 2.txt
  1. 提取文件 2.txt 中重复的行,并统计重复次数

uniq -dc 2.txt

图片

一、diff 命令

用于比较文件的差异,以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则 diff 会比较目录中相同文件名的文件,但不会比较其中子目录。

语法结构

diff [选项]... 文件1或目录1 文件2或目录2

常见命令选项

  • -<行数>

    :指定要显示多少行的文本。此参数必须与 -c 或 -u 参数一并使用

  • -a, --text

    :diff 预设只会逐行比较文本文件

  • -b, --ignore-space-change

    :不检查空格字符的不同

  • -B, --ignore-blank-lines

    :不检查空白行

  • -c

    :显示全部内容,并标出不同之处

  • -C<行数>, --context<行数>

    :与执行 -c -<行数> 指令相同

  • -d, --minimal

    :使用不同的演算法,以较小的单位来做比较

  • -D<巨集名称>, --ifdef=<巨集名称>

    :此参数的输出格式可用于前置处理器巨集

  • -e, --ed

    :此参数的输出格式可用于 ed 的 script 文件

  • -f, --forward-ed

    :输出的格式类似 ed 的 script 文件,但按照原来文件的顺序来显示不同处

  • -H, --speed-large-files

    :比较大文件时,可加快速度

  • -I<字符串>, --ignore-matching-lines<字符串>

    :若两个文件存在差异行,且该行均包含指定字符串,则忽略该处差异

  • -i, --ignore-case

    :不检查大小写的不同

  • -l, --paginate

    :将结果交由 pr 程序来分页

  • -n, --rcs

    :将比较结果以 RCS 的格式来显示

  • -N, --new-file

    :比较目录时,若文件仅存在某个目录,默认提示Only in;使用-N,会将该文件与空文件对比

  • -p

    :比较C语言代码文件时,显示差异所在的函数名称

  • -P, --unidirectional-new-file

    :与-N类似,仅第二个目录独有文件时,和空文件对比

  • -q, --brief

    :仅显示有无差异,不显示详细的信息

  • -r, --recursive

    :递归比较子目录中的文件

  • -s, --report-identical-files

    :若没有发现任何差异,仍然显示信息

  • -S<文件>, --starting-file<文件>

    :在比较目录时,从指定的文件开始比较

  • -t, --expand-tabs

    :在输出时,将 tab 字符展开

  • -T, --initial-tab

    :在每行前面加上 tab 字符以便对齐

  • -u, -U<列数>, --unified=<列数>

    :以合并的方式来显示文件内容的不同

  • -v, --version

    :显示版本信息

  • -w, --ignore-all-space

    :忽略全部的空格字符

  • -W<宽度>, --width<宽度>

    :搭配 -y 参数时,指定展示栏宽

  • -x<名称>, --exclude<名称>

    :不比较指定的文件或目录

  • -X<文件>, --exclude-from<文件>

    :读取文件内名单,排除名单中的文件/目录不对比

  • -y, --side-by-side

    :以并列的方式显示文件的异同之处

  • --help

    :显示帮助

  • --left-column

    :搭配 -y,内容相同行只在左侧栏展示

  • --suppress-common-lines

    :搭配 -y,仅输出存在差异的行

应用案例

diff file1 file2

输出示例:

3c3< 2022-03---> 2021-038c8< 2021-07---> 2021-0811,12d10< 2021-11< 2021-12

释义:3c3 和 8c8 表示 file1 和 file2 在第3行、第8行内容存在修改;11,12d10 代表 file1 比 file2 多出第11、12两行。

输出符号说明(默认模式)

  • <

    :代表取自**第一个文件(file1)**的行

  • >

    :代表取自**第二个文件(file2)**的行

  • a

    :新增(add)、c:修改(change)、d:删除(delete)

并列模式(-y)符号说明

  • |

    :前后两个文件该行内容不相同

  • <

    :第二个文件相比第一个文件缺少该行

  • >

    :第二个文件相比第一个文件多出该行

02  文件归档与压缩

图片

银河麒麟操作系统常用的压缩与解压缩命令有:tar、gzip、gunzip、bzip2、bunzip2、 compress 、uncompress、 zip、 unzip、rar、unrar 等。

图片

一、tar 命令介绍

最常用的打包命令是 tar,使用 tar 程序打出来的包我们常称为 tar 包,tar 包文件名通常都是以 .tar 结尾。为了方便用户在打包解包的同时可以压缩或解压文件,tar 提供了一种特殊的功能:tar 可以在打包或解包的同时调用其它的压缩程序,比如调用 gzip、bzip2 等。

图片

二、tar 命令使用

用来建立、还原备份文件的工具程序,它可以添加、解开备份文件内的文件。

语法结构

tar [选项...] [FILE]...

常见命令选项

  • -c

    :创建新的备份文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。

  • -x

    :从备份文件中释放文件。

  • -r

    :把要存档的文件追加到备份文件的末尾。

  • -f

    :使用备份文件或设备,这个选项通常是必选的。

  • -v

    :详细报告 tar 处理的文件信息。如无此选项,tar 不输出文件信息。

  • -z

    :用 gzip 来压缩/解压缩文件,添加该选项后可对备份文件进行gzip压缩。

  • -j

    :用 bzip2 来压缩/解压缩文件。

  • -Z

    :调用 compress 程序进行压缩/解压缩。

应用案例

1、tar 调用 gzip

gzip 是 GNU 组织开发的一个压缩程序,.gz 结尾的文件就是 gzip 压缩的结果。与 gzip 相对的解压程序是 gunzip。tar 中使用 -z 参数调用 gzip。

示例:

tar -czf all.tar.gz *.jpg

这条命令是将所有 .jpg 文件打成一个 tar 包,并且使用 gzip 压缩,生成压缩包 all.tar.gz。

tar -xzf all.tar.gz

这条命令用于解压 all.tar.gz 压缩包。

2、tar 调用 bzip2

bzip2 是压缩能力更强的压缩程序,.bz2 结尾的文件就是 bzip2 压缩的结果。与 bzip2 相对的解压程序是 bunzip2。tar 中使用 -j 参数调用 bzip2。

示例:

tar -cjf all.tar.bz2 *.jpg

这条命令是将所有 .jpg 文件打成一个 tar 包,并且使用 bzip2 压缩,生成压缩包 all.tar.bz2。

tar -xjf all.tar.bz2

这条命令用于解压 all.tar.bz2 压缩包。

3、tar 调用 compress

compress 也是一款压缩程序,目前使用频率低于 gzip 和 bzip2。.Z 结尾的文件为 compress 压缩产物。对应的解压程序是 uncompress。tar 使用 -Z 参数调用 compress。

示例:

tar -cZf all.tar.Z *.jpg

这条命令是将所有 .jpg 文件打成一个 tar 包,并且使用 compress 压缩,生成压缩包 all.tar.Z。

tar -xZf all.tar.Z

这条命令用于解压 all.tar.Z 压缩包。

统一说明:参数 f 后面紧跟压缩包名称,建议将 -f 写在所有选项最后,养成规范写法。

— Linux文章推荐 —

【资料领取】200个Linux常用命令手册

《鸟哥Linux私房菜》全新完整中文版PDF

RHCE 证书价值解析:薪资水平与热门招聘企业分析

linux运维必备,100道常见面试题

超强linux学习笔记,值得一看(附PDF下载)

红帽认证、麒麟认证与 K8S 该如何选择?

5 种 Linux 安装包管理工具中文手册!抓紧看!

内容概要:本文系统阐述了利用BP神经网络结合Matlab编程实现对水质变化趋势进行科学预测的技术方法。通过构建BP神经网络模型,利用历史水质数据(如pH值、溶解氧、浊度等)进行训练,充分挖掘数据间的非线性关系,实现对未来水质状况的精准预测。该方法在处理复杂、非线性的环境数据方面表现出色,具有较强的泛化能力和实用性,适用于环境监测水资源管理领域。文中配套提供了完整的Matlab代码实现方案,涵盖数据预处理、模型构建、训练优化及预测分析全过程,便于读者复现应用。; 适合人群:具备一定机器学习理论基础和Matlab编程能力的科研人员、环境工程及相关专业的高校学生,以及从事水质监测、水污染预警和水资源管理的技术人员。; 使用场景及目标:①用于水质关键参数的时间序列预测,支持水环境长期趋势分析;②为水污染早期预警系统建设、水资源保护政策制定生态环境治理提供可靠的数据支撑和技术手段;③作为教学实践案例,帮助学习者深入理解神经网络在环境科学中的建模流程应用逻辑。; 阅读建议:建议读者结合文中提供的Matlab代码逐模块运行调试,重点掌握数据归一化、网络结构设计、训练参数调优及预测结果可视化等关键步骤,同时鼓励将该模型迁移至其他类似时序预测任务中进行拓展验证性能优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值