当前位置: 首页 > news >正文

RHCSA Linux 系统文件内容显示2

6. 过滤文件内容显示 grep
 

(1)功能:在指定普通文件中查找并显示含指定字符串的行,也可与管道符连用。
(2)格式:grep 选项... 关键字字符串 文件名...
(3)常用选项及说明
①-c :仅显示找到的行数
②-i :忽略大小写
③-n :显示行号
④-v :反向选择,仅列出没有 “关键词” 的行
⑤-A :-A 2 搜索时显示匹配到的那一行以及后 2 行
⑥-B :-B 2 搜索时显示匹配到的那一行以及前 2 行
⑦-C :-C 2 搜索时显示匹配到的那一行以及上下 2 行
⑧-r :递归搜索模式
➤ [root@hostname]#grep /sbin/nologin /etc/passwd
在 /etc/passwd 文件中显示包含 /sbin/nologin 字符串的行

(4)使用特殊符号进行字符串的匹配
①grep h 文件名:查找文件里有字符 h 的行
②grep ^[q] 文件名:匹配以 q 开始的行
③grep ^[gf] 文件名:匹配以 g 或者 f 开头的行
④grep ^[^gf] 文件名:不匹配以 g 或者 f 开头的行
⑤grep ^[0-9] 文件名:匹配以数字开头的行
⑥grep q$ 文件名:匹配以q结尾的行
⑦grep ^$ 文件名:过滤空白行
⑧grep -r h./* :递归搜索当前目录中子目录有 h 的行
 (5)部分示例
①查找含字符 a 的行:
grep  a  /etc/passwd
② 查找以 a 开头的行
grep ^a  /etc/passwd
③ 查找以 h 结尾的行
grep h$  /etc/passwd
④查找不以h结尾的行
grep -v  h$  /etc/passwd
⑤ 不区分大小地递归查找以 root 开头的行
grep -ri ^root /etc/
⑥在 /etc 目录下,找以 root 为开头的行
grep -r  ^root  /etc/

⑦查找不包含 #字符的行
grep -v [#] /etc/httpd/conf/httpd.conf
⑧ 查找不包含字符 #的行,且对其编号
grep -v [^#] /etc/httpd/conf/httpd.conf  |  cat -b
⑨查找并输出包含 “一个空格紧跟任意字符,再紧跟 #” 的行
grep  ".#"  /sshd_config
⑩ 查找并输出所有包含 “若干空格紧跟 #” 模式的行
grep "*#" /sshd_config

7. 查找 ——find
 

(1) 基本特性
默认动作 -print 以 \n 分隔找到的文件;
-print0 用 \0 分隔,能避免换行,但文件名含空格仍会显示

(2) 常用参数
①文件名匹配

-name:按文件 basename 匹配名称
-iname:按文件名搜索,不区分大小写
-inum:按 inode 号搜索
②路径相关
-path:对文件 dirname + basename 进行查找
-prune:与 - path 联用,忽略指定目录下文件
-depth:先从子目录查找,再查目录本身
-maxdepth levels:最多查找层数
-mindepth levels:最少查找层数
③文件大小
-size:-size +50KB 即匹配大于 50KB 的文件;-size -50KB 即匹配小于 50KB 的文件
-size 0:找大小为 0 的普通文件
-empty:找空目录或空普通文件
④文件类型
-type [b/d/c/p/l/f]:匹配 [块设备 / 目录 / 字符设备 / 管道 / 符号链接 / 普通文件] 类型文件
⑤时间相关

-atime [+|-]n:匹配访问文件的时间

-mtime [+|-]n:匹配修改内容的时间

-ctime [+|-]n:匹配修改文件权限的时间

-newer f1 !f2:匹配比文件 f1 新但比 f2 旧的文件

⑥权限

-perm (mode 为完全匹配-mode 为包含即可 ,如搜含 SUID 权限文件用 -perm -4000)

⑦所有者和所属组

-user:匹配所有者

-group:匹配所有组

-nouser:匹配无所有者的文件

-nogroup:匹配无所属组的文件

⑧操作相关

-delete:将找到的文件删除,目录只能删空目录

-exec ... {} \; :对搜索结果进一步处理 (...表示要执行的命令;{ }表示所有文件;此命令必须以\;结尾)

printf:%f 获 basename,%p 获路径自身,%P 获除搜索路径的剩余部分

(3) 部分示例
①查找以文件文以 “host” 开头的文件
find /etc -name "host*" -print
②在当前目录 (.) 及其子目录中查找文件大小大于 10M 的文件
find. -size +10M
③在 / 及子目录下查找大小小于 2M 的文件,并执行 ls -lh
find /-size -2M -exec ls -lh {}\ ;
④查找文件名以 “.conf” 为结尾的所有文件
find /-name *.conf
⑤查找文件名以.conf 为结尾的所有文件并复制到 /xixi2
find /etc/-name *.conf -type f -exec cp {} /xixi2 \;

⑥查找 /test 目录 2021 - 06 - 03 到 2021 - 06 - 06 间修改的普通文件

find /test -type f -newermt 2021-06-03 -a ! -newermt 2021-06-06 

⑦查找系统中权限含 SUID 的文件

find / -perm -4000 -print 

查找属主为 kongd 的文件

find / -user kongd 

8. 压缩和解压缩
 

Ⅰ. zip 和 unzip 命令
 

(1) 功能:zip 压缩文件和目录,unzip 解压
(2) 语法:zip 文件名;unzip 文件名
(3) 实例
①用 zip 压缩文件 test1.txt
zip test1.zip test1.txt
②压缩率为最高压缩 test2.txt
zip -9 test.zip test2.txt
③将当前目录 dir1 连同目录下文件一起压缩
zip -r dir1.zip dir1/
④向压缩文件中 test1.zip 添加 test2.txt 文件
zip -m test1.zip test2.txt
⑤删除压缩文件中的文件
zip -d test1.zip test2.txt
⑥压缩文件时排除某个文件
zip test.zip *.txt -x test1.txt
⑦解压文件 test2.zip
unzip test2.zip
⑧将压缩文件 test.zip 在指定目录 dir1 下解压
unzip test.zip -d dir1

⑨查看压缩文件目录,但不解压
unzip -v test.zip

  • 把text1.txt压缩到xixi目录下

Zip xixi/ text1.txt.zip text1.txt

⑪把text1.txt解压到xixi目录下

Unzip xixi /text1.txt.zip -d xixi

Ⅱ.gzip 和 gunzip 命令

(1) 关系 gunzip = gzip -d
(2) 实例
①用 gzip 压缩文件
gzip test1.txt
②用 gzip 压缩目录文件(压缩之后原文件就没了)
gzip -r dir1/
③压缩但保留原文件
gzip -c test2.txt > test2.txt.gz
(3) 查看压缩后的文本内容
zcat、zless
eg: zcat 文件名.gz

III. bzip2、bunzip2 命令
 

(1) 特点:较 gzip 效率更高 bunzip2 = bzip2 -d
(2) 实例:
①压缩文件(将 man.config 压缩为man.config.bz2)
bzip2 man.config

②指定压缩比并保留原文件
bzip2 -9 -c man.config > man.config.bz2
③解压缩
bzip -d man.config.bz2 或 bunzip2 man.config.bz2

(3) 查看压缩文件内容:

bzcat、bzless
eg: bzcat 文件名.bz2

 

IV. xz、unxz 命令

(1)关系 xz -d = unxz

(2)实例:
①压缩文件
xz text1.txt
②压缩目录下文件
xz dir1/*
③查看压缩文件内容
xzcat text1.txt.xz
④解压缩
unxz text1.txt.xz
⑤解压目录下文件
xz -d dir1/*
(3)查看压缩文件内容:

xzcat、xzless
eg: xzcat 文件名.xz

9. 文件的打包 tar
 

格式:tar [选项] [args]... ,选项任选其一
(1) 核心选项

① -c:创建.tar 格式文件
② -x:释放.tar 格式的包文件
③ -t:查看包中的文件列表
(2) 必选选项
-f:指定打包文件名。与 - c 一起用,创建 tar 包用此名;与 - x 一起用,释放指定 tar 包
(3) 辅助选项
① -v:命令执行时显示详细提示信息
② -p:打包保留文件及目录权限
③ -z:调用 gzip,处理.tar.gz 文件
④ -j:调用 bzip2,处理.tar.gz 文件
⑤ -J:调用 xz,处理.tar.xz 文件
⑥ -C:和 - x 一起用,指定释放目标路径
(4) 额外选项
打包排除文件:tar cf 文件名.tar --exclude = 路径 / 文件 路径(路径前后一致,统一用绝对或相对路径)
(5) 使用示例
①创建 (非压缩) 打包文件:
tar cvf/cfv/-cvf 文件名.tar 要打包的目录或文件名及目录

②列出包中文件列表
tar t [v] f  包  文件名
③创建带压缩的打包文件
➤tar czf/-czf 文件名.tar.gz 要打包压缩的目录或文件名
➤tar -cjf 文件名.tar.bz2 要打包压缩的目录或文件名
➤tar -cJf 文件名.tar.xz 要打包压缩的目录或文件名
④提取包文件到指定目录
➤tar -xzf/-xf 文件名.tar.gz [-C 目标路径]
➤tar -xf/-xjf 文件名.tar.bz2 [-C 目标路径]
➤tar -xf/-xJf 文件名.tar.xz [-C 目标路径]

几种压缩和解压缩的区别
① 压缩率:
xz > bzip2 > gzip > zip
② 速度:
gzip > zip > bzip2 > xz
③ 跨平台兼容性:
zip 最好,其他工具主要在 Linux 系统中使用
④ 功能:
tar 用于打包多个文件或目录,然后结合不同算法进行压缩;其他工具主要用于压缩单个文件

相关文章:

  • FPGA学习(五)——DDS信号发生器设计
  • 国产动漫记录
  • LangChain4j语言模型选型指南:主流模型能力全景对比
  • FreeRTOS中断管理
  • 【Agent】AI智能体评测基座AgentCLUE-General
  • python解压复制文件
  • Python多进程并发编程:深入理解Lock与Semaphore的实战应用与避坑指南
  • 【每日八股】复习 Redis Day1:Redis 的持久化(上)
  • 力扣DAY60-61 | 热100 | 回溯:单词搜索、分割回文串
  • 二、在springboot 中使用 AIService
  • 第38讲|AI + 农业病虫害预测建模
  • 2025-04-20 李沐深度学习4 —— 自动求导
  • 【Linux】清晰思路讲解:POSIX信号量、基于环形队列的生产消费模型、线程池。
  • 基于 Elasticsearch 8.12.0 集群热词实现
  • Hello, Dirty page
  • LabVIEW发电机励磁系统远程诊断
  • P8512 [Ynoi Easy Round 2021] TEST_152 Solution
  • conda环境独立管理cudatoolkit
  • vulnhub five86系列靶机合集
  • HTTP:十.cookie机制
  • 央行上海总部:受益于过境免签政策,上海市外卡刷卡支付交易量稳步增长
  • 著名诗人、中国城市发展研究院原常务副院长吕贵品逝世
  • 时隔七年,上合组织国家电影节再度在中国举办
  • 王毅同伊朗外长阿拉格齐会谈
  • 【社论】高度警惕AI谣言对网络空间的污染
  • 广州一男子早高峰爬上猎德大桥顶部疑似要跳桥,路段一度拥堵