wc —— 统计文件内容
命令wc(word count)
命令格式:wc ... [选项] ... 目标文件
统计列数,wc本身就是参数:
| 选项 | 说明 |
|---|---|
| -l | 统计行数 |
| -w | 统计单词个数 |
| -c | 统计字节数 |
[root@localhost zhutou]# cat zhutou -A //先利用cat查看文件类容
123456$
654321 123$
data bin$
[root@localhost zhutou]# wc zhutou //输入wc统计文件类容有多少行、词、字母,
3 5 27 zhutou //此处单词和字符都不是真正的,空格也算字符个数。
[root@localhost zhutou]# wc -l zhutou //-l显示内容有多少行,空行也会算在内
3 zhutou
[root@localhost zhutou]# wc -w zhutou //-w显示内容有多少词汇
5 zhutou
[root@localhost zhutou]# wc -c zhutou //-c显示内容有多少字符,换行键也会算在内。
27 zhutou
wc统计的单词数并不是真正意义上的单词(这里的单词可以是数字、字母或者特殊字符),并且字符会把不可见的空格和转行符都算上
grep ——过滤文件中的内容
文本三剑客
grep(global regular expression print,全局正则表达式输出),用于查找文件里符合条件的字符串。
命令格式:grep..[选项]...匹配式...[文件或者标准输入]
选项类型:
| 选项 | 说明 |
|---|---|
| -i | 忽略大小写 |
| -n | 显示行号 |
| -v | 反向匹配 |
| -o | 只显示匹配的内容 |
| -r | 递归匹配 ,在海量数据中查找 |
| -R | 递归目录,处理软连接 |
| -w | 只匹配单词 |
| -f | 以文件作为匹配条件 |
在passwd文件中找出包含root的内容
- 要查找的字符串以双引号括起来,单引号也可以
- “^……”表示以……开头,“……$”表示以……结尾
- “^$”表示空行
[root@localhost zhutou]# grep root passwd //查看passwd有多少含有root的内容
root:x:0:0:root:/root:/bin/bash //显示查找结果
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost zhutou]# grep "^root" passwd //加上^符为已root开头的
root:x:0:0:root:/root:/bin/bash
[root@localhost zhutou]# grep "c$" passwd //$用在以什么结尾
sync:x:5:0:sync:/sbin:/bin/sync
匹配式(表达式)是不可以放在文件后的,否则会造成错误。
显示空行和特定单词的行
- 专指特定字符用"^root$"标记起来。
- 显示空行"^$" 并-n显示行号。
- -n显示行号 大小
[root@localhost zhutou]# grep -n "^$" passwd //显示空行并显示行号
3:
4:
6:
[root@localhost zhutou]# grep "^root$" passwd //专指特定字符
root
root
-i 忽略目标大小写
[root@localhost zhutou]# grep -i "root" passwd //-i显示目标大小写
root:x:0:0:root:/root:/bin/bash
root
root
operator:x:11:0:operator:/root:/sbin/nologin
ROOt
ROOt
-v与目标命令相反显示
[root@localhost zhutou]# grep -v "root" passwd //-v与其命令相反显示
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
-o只显示匹配项
[root@localhost zhutou]# grep -o root passwd //-o只显示匹配项
root
root
root
root
root
root
-r递归匹配,过滤海量数据查找,可用作于文件夹查找筛选文件。
[root@localhost zhutou]# grep -r "root" /etc
在文件夹下查找海量数据
-w只匹配单词
[root@localhost zhutou]# grep -w "root" passwd //-w只匹配单词
root:x:0:0:root:/root:/bin/bash
root
root
-f匹配两个文件中相同的部分
[root@localhost ~]# cat 1.txt
111
333
[root@localhost ~]# cat 2.txt
111
222
3
[root@localhost ~]# grep -f 1.txt 2.txt //过滤出两个文件的相同行
111
合并与拆分
paste ——合并文件
命令格式:paste...[选项]...文件名 -d——指定分隔符
例如合并AB两个文件
- 上下合并:cat 文件名a 文件名b > 新文件名(cat 123 456 > 111)
- 左右合并:paste 文件名a 文件名b (paste -d ":" 123 456)
标准输出重定向:改变原本标准输出的方向,更改为别的方向。
上下合并:把两个文件上下格式的合并成一整个新的文件
上下合并
左右合并
split 拆分文件
命令格式 : split [选项] 指定大小 [要切割的文件][输出文件名前缀]
压缩与解压缩
bzip2 与 gzip
bzip2 与 gzip都是压缩软件,但是不能压缩文件夹,只能压缩单个文件。
压缩流程
制作压缩包
gzip [-9] 文件名(其中这里的-9表示为压缩比例,1.....9九为最大压缩率最高)
bzip2 [-9] 文件名...
1~9 指定压缩级别, 数字越大压缩级别越高 。-1最快压缩,-9最大压缩 。
解压压缩文件
gzip -d .gz格式的压缩文件
bzip2 -d .bz2格式的压缩文件
gzip和bzip的相同点:
原理:只能压缩文件 , 不能压缩目录 。并且默认压缩后会删除源文件。
tar归档文件夹 *****
把多个文件打包成一个大文件,再调用bzip2或gzip来进行压缩
tar命令格式:tar—— [选项] —— 自定义压缩包名称——要压缩文件
选项说明:
| 选项 | 说明 |
|---|---|
| -c | 新建打包文件 |
| -f | 表示使用归档,默认选项一定要加 |
| -x | 解打包或解压缩的功能,可以搭配 |
| -C | 指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中 |
| -j | 通过bzip2的支持进行压缩/解压缩 |
| -z | 通过gzip的支持进行压缩/解压缩 |
| -v | 在压缩/解压缩过程中,将正在处理的文件名显示出来 |
| -t | 不解压查看打包文件的内容 |
演示:
[root@localhost zhutou]# tar -zcvf zhu.tar.gz * //将当前文件夹中三个文件归档后调用gzip程序压缩成zhu.tar.gz
passwd
passwd1
passwd2
[root@localhost zhutou]# ls
passwd passwd1 passwd2 zhu.tar.gz
[root@localhost zhutou]#
[root@localhost zhutou]# tar -jcvf zhu.tar.gz * //将当前文件夹中三个文件归档后调用bzip程序压缩成zhu.tar.gz
passwd
passwd1
passwd2
zhu.tar.gz
[root@localhost zhutou]# ls
passwd passwd1 passwd2 zhu.tar.gz
[root@localhost zhutou]# tar tf zhu.tar.gz //在不解压的情况下查看压缩包内的内容
passwd
passwd1
passwd2
cat(concatenate)显示文件内容
cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
命令格式:cat...[选项]...[文件名称]
选项说明:
| 选项 | 用途说明 |
|---|---|
| -n | 显示行号(包括空行) |
| -A | 显示隐藏字符($.#) |
| -b | 跳过空白行编号 |
| -s | 压缩空白行(多个压缩成一个) |
演示:
用cat查看系统内核版本
[root@localhost /]# cat /etc/centos-release //查看系统内核版本
CentOS Linux release 7.4.1708 (Core)
[root@localhost /]# cat /proc/version //查看系统内核版本
Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017
cat加-n选项显示行号(包括空行)
[root@localhost zhutou]# cat -n passwd //加选项-n显示行号包括空行
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3
4
5 root
6
7 root
8 daemon:x:2:2:daemon:/sbin:/sbin/nologin
cat加选项-s -b处理空行,-s压缩连续空白行为一行,-b 跳过空白行标序
[root@localhost zhutou]# cat -sb passwd //输入-s -b 方便查看
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
//压缩连续空白行为一行,并且不表序。
3 root
4 root
5 daemon:x:2:2:daemon:/sbin:/sbin/nologin
查看头部和尾部文件类容——head和tail
命令格式:
head -n <行数> 文件名 (不加行数默认开头十行)
tail -n<行数> 文件名 (不加行数默认结尾十行)
tail -f 文件名:实时跟踪最后十行
演示:
通过head和tail命令来进行对比
[root@localhost zhutou]# head -n3 hehe //查看文件前三行内容
1
2
3
[root@localhost zhutou]# tail -n3 hehe //查看文件后三行的内容
98
99
100
head、tail两者结合管道符的使用
[root@localhost zhutou]# head passwd //原本文件前十行内容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
root
root
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost zhutou]# cat passwd |head -n2 | tail -n1
//现在要取前两行的最后一行也就是第二行
bin:x:1:1:bin:/bin:/sbin/nologin