文本查看、分析、统计
1. 文件查看
1.1 cat命令说明**
- 格式
cat [option]…[file]… - 应 用
主要功能连接文件,标准输入,标准输出 - 选 项
-A:相当于-vET的整合选项,可列出一些特殊符号
-n:对显示出的每一行进行编号
-E:显示行结束符$
-b:非空行编号
-s:压缩连续的空行成一行
例:显示文件/etc/issue的特殊字符,[tab]会以^I表示,断行字符则是以$表示, Windows中的断字符\^M\$。
[root@hai6 ~]$cat -A /etc/issue
ICentOS release 6.10 (Final)$
Kernel \r on an \m$
\n \l \t$
\v$
1.2 tac命令说明
- 格式
- tac [option]…[file]…
- 功能
- 功能与cat相似,输出结果由最后一行到第一行方向在屏幕上显示出来
1.3 nl命令说明
- 命 令
nl [option]…[file]… - 功能
可以将输出的文件自动加上行号 - 选 项
-b:指定行号,空行不显示
-ba:列出空行行号
-n:列出行号的表达方式后面跟ln、rn、rz三种表达方式
-w:行号字段的占用字符数,后跟数字
1.4 rev命令说明
- 命令:rev
- 功能:将文件中的每行内容以字符我单位反序输出,即第一个字符最先输出。
2. 分页查看文件内容
2.1 命令more
- 命令格式
more [options…] file… - 功能
将文件在屏幕中分页显示,解决文件过长看不到开始的问题
快捷键 | 功能 |
---|---|
空格 | 代表向下翻一页 |
Enter | 下翻一页 |
/字符串 | 向下搜索字符串这个关键词,重复搜索按n |
:f | 立刻显示出文件名以及目前显示的行数 |
q | 代表立刻离开more,不再显示该文件内容 |
2.2 命 令less
- 功能
将文件在屏幕中分页的过滤器,比more增加了回翻功能
快捷键 | 功能 |
---|---|
空格 | 代表向下翻一页 |
Pagedown | 代表向下翻一页 |
pageup | 代表向上翻一页 |
?字符串 | 向上搜索字符串这个关键词 |
/字符串 | 向下搜索字符串这个关键词 |
n | 重复前一个搜索 |
N | 反向的重复前一个搜索 |
g | 前进到这个资料的第一行 |
G | 前进到这个数据的最后一行 |
q | 离开 |
3. 文件选择查看
3.1 命令head
- 命令格式
head [option]…[file]… - 功能
显示文件的前几行,默认为10行 - 选 项
-c#:指定获取前#字节
-n#:指定获取前#行
-# :指定行数,可以为负数,意思为后面的#行不显示出来
3.2 命令tail
- 命令格式
tail [option]…[file]… - 功能
显示文件的后几行,默认为10行 - 选 项
-c#:指定获取后#字节
-n#:指定获取后#行
-# :指定行数
-f : 跟踪显示文件fd新追加的内容,常用日志监控,相当于 - -follow=descriptor
-F:跟踪文件名,相当于- -follow= name - -retry
PS1:命令tailf类似tail-f,当跟踪文件没有更新是,不访问文件,节省资源
4.文件抽取与合并
4.1 命令cut
- 命令格式
cut [option]…[file]… - 应 用
标准输出文件内容,分解数据 - 选 项:
- -d DELIMITER:指定分隔符,默认tab,与-f一起使用
- -f fieds:(f#) 第#个字段,(f#,#,#)离散的多个字段,(f#-#)连续的多个字段,例如1-6
混合使用例如1-3,7 - -c :按字符切割
- -output-delimiter=STRING 指定输出分隔符
- 示例
按字符切割,可以选择区间,也可以单独第几个字符后
[root@hai6 ~]$cut -c 15-20 /etc/passwd
t:/roo
/bin:/
4.2 paste
-
命令格式
paste [option]…[file]… -
应 用
合并两个文件同行号的列到一行 -
选 项
-d分隔符:指定分隔符,默认用tab
-s :所有行合成一行显示
4.3 命令grep
-
命令格式
grep [option] PATTERN [file]… -
功能
文本搜索工具,根据用户指定模式对目标文本逐行进行匹配检查,打印匹配到的行 -
选 项
–color=auto:对匹配到的文本着色显示,centos7默认已经定义了别名
-v:显示不被pattern匹配到的行
-i:忽略字符大小写
-n:显示匹配到的行号
-c:统计匹配到的行数
-f:指定规则文件,查找符合规则条件的文件内容,格式为每行一个规则样本
-o:仅显示匹配到的字符串
-q:静默模式,不输出任何信息,判断是否找到使用标识符
echo $,找到显示为0,找不到显示非0
-A#:后#行,用于想要搜索结果行没有明显关键字,
利用前后标识,指向搜索结果
-B#:前#行
-C#:前后各#行
-e:实现多个选项间的逻辑or关系 grep -e ‘cat’ -e ‘ dog’ file
-w:匹配整个单词
-E:使用ERE
-F:相当于fgrep,不支持正则表达式 -
示例
示例1:1-100里有多少个数字包含9
[root@V9centos7 ~]$seq 100|grep -c 9
19
示例2:显示文件f1和f2的交集。利用-f选项,空格也算不同规则,所以不匹配。
[root@V9centos7 ~]$cat -A f1
abc cba$
help $
exit$
wc$
[root@V9centos7 ~]$cat -A f2
abc cba$
help$
passwd$
wc$
[root@V9centos7 ~]$grep -f f1 f2
abc cba
wc
5 分析文本工具
5.1 命令wc
- 格式
wc [option]…[file]… - 应 用
计算文件的byte数、字数或列数 - 选 项
-c :只显示字节数
-l :只显示列数
-w :只显示单词数
-m :只显示字符数
-L :显示文件中最长行的长度 - 示例
如图所示,三个字段从左向右分别为行、字数、字符数
[root@V9centos7 ~]$cat /etc/passwd|wc
49 96 2505
5.2 命令sort
- 命令格式
sort [option]…[file]… - 应 用
将文件排序,将结果标准输出 - 选 项:
-r :执行反方向整理
-R :随机排序
-n :执行按数字大小整理
-f :选项忽略字符串中的大小写
-u :删除输出中的重复行
-t c:使用c作为字段界定符(这里只是用c表示一下,可替换)
-k x:按照使用c字符分隔的x列来整理能够使用多次 - 示例
将/etc/gtoup的GID按从小到大排列,示例中以:为分隔符取第三列,按数字排序
[root@V9centos7 ~]$sort -n -k3 -t: /etc/group
root:x:0:gentoo
bin:x:1:gentoo
daemon:x:2:
sys:x:3:
5.3 命令uniq
- 命令格式
uniq [option]…[file]… - 应用
从输入中删除青后详解的重复行 - 选 项:
-c :显示每行重复出现的次数
-d :仅显示重复过的行
-u :仅显示没重复过的行,连续且完全相同为重复
6. 文件比较
6.1 命令diff
- 命 令
diff [option]…[file]… - 应 用
比较给定的两个文件的不同,如果是目录,比较该目录中具有相同文件名的文件,而不会对子目录文件进行比较 - 选 项
-u:输出统一的diff格式文件,适用于补丁文件
6.2 命令path
- 格式
patch [option]…[file]… - 应 用
让用户利用设置修补文件的方式,修改,更新原始文件 - 选 项
-b:备份每一个原始文件 - 示例
利用diff与patch进行文件备份复原,diff比较文件f1,f2,生成diff格式补丁文件f3
'1:比较f1、f2两文件将输出结果导入文件f3'
[root@V9centos7 ~]$diff -u f1 f2>f3
[root@V9centos7 ~]$cat f3
--- f1 2018-08-01 20:56:55.853020328 +0800
+++ f2 2018-08-01 20:57:51.344020475 +0800
@@ -1,4 +1,4 @@
abc cba
-help
-exit
+help
+passwd
wc
'2:文件f2内容'
[root@V9centos7 ~]$cat f2
abc cba
help
passwd
wc
'3:将文件f2删除'
[root@V9centos7 ~]$rm f2
rm: remove regular file ‘f2’? y
'4:输入命令path以f1为源文件,输入补丁文件f3,还原f2(生成文件名为f1),原文件变为f1.orig'
[root@V9centos7 ~]$patch -b f1<f3
patching file f1
[root@V9centos7 ~]$cat f1
abc cba
help
passwd
wc
实验可以用到的工具nmap
nmap -v -sp 192.168.32.0/24看这个网段开机与关机的主机。