wc:word count
- 命令 :
wc [OPTION]... [FILE]... - 参数
-l: lines
-w:words
-c: bytes
cut:
命令:
cut OPTION... [FILE]...参数:
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志
-c :以字符为单位进行分割
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除
-d CHAR:以指定的字符为分隔符;
-f FIELDS:挑选出的字段;
#:指定的单个字段;
#-#:连续的多个字段;
#,#:离散的多个字段;-
cut一般以什么为依据呢? 也就是说,我怎么告诉cut我想定位到的剪切内容呢?
cut命令主要是接受三个定位方法:
第一,字节(bytes),用选项-b
第二,字符(characters),用选项-c
第三,域(fields),用选项-f
sort:
- 命令:
sort [OPTION]... [FILE]... - 参数:
-n:基于数值大小而非字符进行排序;
-t CHAR:指定分隔符;
-k #:用于排序比较的字段;
-r:逆序排序;
-f:忽略字符大小写
-u:重复的行只保留一份;
重复行:连续且相同;
uniq:报告或移除重复的行
- 命令:
uniq [OPTION]... [INPUT [OUTPUT]] - 参数:
-c:显示每行的重复次数;
-u:仅显示未曾重复过的行;
-d:仅显示重复过的的行;
练习:
1、统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来
[root@centos7 ~]# grep -v "/sbin/nologin" /etc/passwd | wc -l
5
[root@centos7 ~]# grep -v "/sbin/nologin" /etc/passwd | cut -d : -f1
root
sync
shutdown
halt
yang
2、查出用户UID最大值的用户名、UID及shell类型
[root@centos7 ~]# cat /etc/passwd|sort -t : -k 3 -n|cut -d : -f 1,3,7 | tail -n 1
nfsnobody:65534:/sbin/nologin
3、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
[root@centos7 ~]# netstat -net
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode
tcp 0 36 192.168.0.104:22 192.168.0.103:49761 ESTABLISHED 0 86221
tcp 0 0 192.168.0.104:22 192.168.0.103:49875 ESTABLISHED 0 78426
tcp 0 0 192.168.0.104:22 192.168.0.103:49370 ESTABLISHED 0 55961
[root@centos7 ~]# netstat -net | grep "tcp" | tr -s " " : | cut -d: -f6 | uniq -c
3 192.168.0.103