文本工具查看、分析、统计
1. 文件查看
1.1 cat命令说明
命 令:cat [option]…[file]…
应 用:主要功能连接文件,标准输入,标准输出
选 项: -A:相当于-vET的整合选项,可列出一些特殊符号
-n:对显示出的每一行进行编号
-E:显示行结束符$
-b:非空行编号
-s:压缩连续的空行成一行
例:的结果为cat -A这个F1文件,可以看到空白的地方,[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. 分页查看文件内容
命 令:more [options…] file…
应 用:将文件在屏幕中分页的过滤器
快捷键 | 功能 |
---|---|
空格 | 代表向下翻一页 |
Enter | 下翻一页 |
/字符串 | 向下搜索字符串这个关键词,重复搜索按n |
:f | 立刻显示出文件名以及目前显示的行数 |
q | 代表立刻离开more,不再显示该文件内容 |
命 令:less
应 用:将文件在屏幕中分页的过滤器,比more增加了回翻功
能
快捷键 | 功能 |
---|---|
空格 | 代表向下翻一页 |
Pagedown | 代表向下翻一页 |
pageup | 代表向上翻一页 |
?字符串 | 向上搜索字符串这个关键词 |
/字符串 | 向下搜索字符串这个关键词 |
n | 重复前一个搜索 |
N | 反向的重复前一个搜索 |
g | 前进到这个资料的第一行 |
G | 前进到这个数据的最后一行 |
q | 离开 |
3. 文件前或后行查看
命 令:head [option]…[file]…
应 用:显示文件的前几行,默认为10行
选 项:-c#:指定获取前#字节
-n#:指定获取前#行
-# :指定行数
PS:#可以为负数,意思为后面的#行不显示出来
命 令:tail [option]…[file]…
应 用:显示文件的后几行,默认为10行
选 项:-c#:指定获取后#字节
-n#:指定获取后#行
-# :指定行数
-f : 跟踪显示文件fd新追加的内容,常用日志监控
相当于 - -follow=descriptor
-F:跟踪文件名
相当于- -follow= name - -retry
PS1:命令tailf类似tail-f,当跟踪文件没有更新是,不访问文件,节省资源
PS2:#可以为正数,前面的#行不显示出来
4.文件抽取与合并
命 令:cut [option]…[file]…
应 用:标准输出文件内容,分解数据
选 项:
-d DELIMITER:指定分隔符,默认tab,与-f一起使用
-f fieds:
•• # 第#个字段
•• #,#,# 离散的多个字段,例如1,3,6
•• #-# 连续的多个字段,例如1-6。
混合使用例如1-3,7
-c :按字符切割
- -output-delimiter=STRING 指定输出分隔符
下图解释了按字符切割,可以选择区间,也可以单独第几个字符后
[root@hai6 ~]$cut -c 15-20 /etc/passwd
t:/roo
/bin:/
命 令:paste [option]…[file]…
应 用:合并两个文件同行号的列到一行
选 项:
-d分隔符:指定分隔符,默认用tab
-s :所有行合成一行显示
命 令: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-100里有多少个数字包含9
[root@V9centos7 ~]$seq 100|grep -c 9
19
例 二:显示文件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 分析文本工具
命 令:wc [option]…[file]…
应 用:计算文件的byte数、字数或列数
选 项:
-c :只显示字节数
-l :只显示列数
-w :只显示单词数
-m :只显示字符数
-L :显示文件中最长行的长度
如图所示,三个字段从左向右分别为行、字数、字符数
[root@V9centos7 ~]$cat /etc/passwd|wc
49 96 2505
命 令: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:
命 令:uniq [option]…[file]…
应 用:从输入中删除青后详解的重复行
选 项:
-c :显示每行重复出现的次数
-d :仅显示重复过的行
-u :仅显示没重复过的行,连续且完
全相同为重复
6. 文件比较
命 令:diff [option]…[file]…
应 用:比较给定的两个文件的不同,如果是目录,比较该目录中具有相同文件名的文件,而不会对子目录文件进行比较
选 项:
-u:输出统一的diff格式文件,最适
用于补丁文件
命 令:patch [option]…[file]…
应 用:让用户利用设置修补文件的方式,修改,更新原始文件
选 项:
-b:备份每一个原始文件
例,利用diff与patch进行文件备份复原,diff比较文件f1,f2,生成diff格式补丁文件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
将文件f2删除
[root@V9centos7 ~]$cat f2
abc cba
help
passwd
wc
[root@V9centos7 ~]$rm f2
rm: remove regular file ‘f2’? y
输入命令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看这个网段开机与关机的主机。