一、检索和过滤文件内容------grep
在文件中查找并显示包含指定字符串的行
grep <选项> '字符串' 文件名
-i | 不区分大小写 |
-v | 反向输出,反向匹配 |
-c | 输出匹配到的行数 |
-o | 精确匹配,只匹配显示项 |
-n | 将匹配行在文档中的行号显示 |
-e | 多条件查询(一般放在最后) |
-E | 支持使用扩展正则表达式,相当于egrep命令 |
-A n | 显示匹配行以及后面n行内容 |
-B n | 显示匹配行以及前面n行内容 |
-C n | 显示匹配行以及前后n行内容 |
-l | 列出文件内容符合指定格式的文件名称 |
-w | 只显示全字符合的列 |
基本格式
- 要查找的字符串以双引号括起来单引号也可以
- “^……”表示以……开头,“……$”表示以……结尾
- “^$”表示空行
grep -i 'system' anaconda-ks.cfg #-i不区分大小写
#不区分大小写检索system
egrep -v '^#|^@|^%' anaconda-ks.cfg #-v 反向匹配
#匹配不以#,@,%开头的行
grep -ic 'system' anaconda-ks.cfg #-c 输出匹配的行个数
#匹配该行包含system的行数
grep -o 'network' anaconda-ks.cfg
#输出匹配到network的个数
grep -o 'network' anaconda-ks.cfg | wc -l
#将匹配字符串显示,以wc -l命令统计出字符串的个数
grep -ni 'system' anaconda-ks.cfg #-n 将匹配行的行号显示
#显示匹配行号与匹配行
#查找以#开头和以@开头的行的三种方法
grep -e '^#' -e '^@' anaconda-ks.cfg
grep -E '^#|@$' 文件名
egrep '^#|@$' 文件名
#查找以#开头且以@结尾的行
grep '^#' 文件名 | grep '@$'
grep -A 2 'network' anaconda-ks.cfg
#查找匹配network的行和后面2行
-A:显示匹配行和后面几行
-B:显示匹配行和前面几行
-C:显示匹配行和前后几行
二、压缩命令
1.gzip命令与bzip2命令
#压缩文件 #解压文件
gzip [-9] 文件名 gzip -d 压缩包 或gunzip 压缩包
bzip2 [-9] 文件名 bzip2 -d 压缩包 或bunzip2 压缩包
gzip 制作的压缩文件默认的扩展名为“.gz”,原始文件不再保留
bzip2 制作的压缩文件默认的扩展名为“.bz2”,原始文件不再保留
使用“-9”选项可以提高压缩的比率
指令的值可为1(压缩速度最快,最低的压缩质量)至9(最慢的压缩速度,压缩率最高)之间的整数,其默认值为6(压缩速度和压缩质量较为平衡的值)
2.zip命令
#压缩文件 #解压文件
zip <压缩包名> 源文件 unzip <压缩包名> [-d] 目录
zip制作的压缩文件名自取,原始文件保留
三、归档命令------tar
tar <选项> 归档文件名 源文件或目录 #制作归档文件
tar <选项> 归档文件名 -c 目标目录 #释放归档文件
-c | 创建.tar格式的包文件 |
-x | 解开.tar格式的包文件 |
-C | 解压时指定释放 |
-f | 表示使用归档文件 |
-p | 打包时保留文件及目录权限 |
-P | 打包时保留文件及目录的绝对路径 |
-t | 列表查看包内文件 |
-v | 输出详细信息 |
-j | 调用bzip2程序进行压缩或解压。 |
-z | 调用gzip程序进行压缩或解压。 |
#压缩文件
tar -czvf 文件名.tar.gz <多个文件或目录> #调用gzip压缩文件
tar -cjvf 文件名.tar.bz2 <多个文件或目录> #调用bzip2压缩文件
#解压
tar -xzvf 文件名.tar.gz -C 目录 #调用gzip解压
tar -xjvf 文件名.tar.bz2 -C 目录 #调用bzip2解压
tar -xf <压缩包名> #自动识别解压程序解压
使用tar命令压缩文件,源文件保留。
tar -tf 压缩包名 #查看压缩包内的压缩文件