awk
1.列出UID=0的用户
[root@web01 ~]# awk -F : '$3==0' /etc/passwd root:x:0:0:root:/root:/bin/bash
2.列出系统的用户
[root@web01 ~]# awk -F : '$3>0 && $3<=1000' /etc/passwd
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
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
saned:x:991:985:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
nginx:x:990:984:nginx user:/var/cache/nginx:/sbin/nologin
www:x:666:666::/home/www:/sbin/nologin
zabbix:x:665:665:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
。。。。。。
3.列出普通用户
[root@web01 ~]# awk -F : '$3>=1000' /etc/passwd nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin lo:x:2000:2000::/home/lo:/bin/bash kk:x:1009:1009::/home/kk:/bin/bash
4.列出用户
[root@web01 ~]# awk -F : '$7=="/bin/bash"' /etc/passwd root:x:0:0:root:/root:/bin/bash lo:x:2000:2000::/home/lo:/bin/bash kk:x:1009:1009::/home/kk:/bin/bash
5.匹配用户
[root@web01 ~]# awk -F : '$1 ~ "root"' /etc/passwd root:x:0:0:root:/root:/bin/bash [root@web01 ~]# awk -F : '$1 ~ "kk"' /etc/passwd kk:x:1009:1009::/home/kk:/bin/bash
6.$0匹配
$0匹配全部 [root@web01 ~]# awk -F : '$0 ~ "home"' /etc/passwd lo:x:2000:2000::/home/lo:/bin/bash kk:x:1009:1009::/home/kk:/bin/bash www:x:666:666::/home/www:/sbin/nologin
7.匹配带有root信息,UID<1000的用户
[root@web01 ~]# awk -F: '$0 ~ "root" && $3<1000' /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
awk条件判断
[root@web01 ~]# awk -F: '{if() {print }}' /etc/passwd
[root@web01 ~]# awk -F: '{if($3==0){print $1 " is baba"}}' /etc/passwd root is baba ,号表示空格 [root@web01 ~]# awk -F: '{if($3==0){print $1,"is baba"}}' /etc/passwd root is baba
8.判断UID>1000,匹配/bin/bash用户
[root@web01 ~]# awk -F: '{if($3>1000 && $NF ~"/bin/bash")print}' /etc/passwd lo:x:2000:2000::/home/lo:/bin/bash kk:x:1009:1009::/home/kk:/bin/bash
9.判断UID>1000,匹配/bin/bash用户,统计个数
[root@web01 ~]# awk -F: '{if($3>1000 && $NF ~"/bin/bash"){x++}}END{print x}' /etc/passwd 2 [root@web01 ~]# awk -F: '{if($3>1000 && $NF~ "/bin/bash"){x++}}END{print "普通用户有"x"个"}' /etc/passwd 普通用户有2个
10.判断UID<1000,匹配/sbin/nologin用户,统计个数
[root@web01 ~]# awk -F: '{if($3<1000 && $NF ~"/sbin/nologin"){x++}}END{print x}' /etc/passwd 40 [root@web01 ~]# awk -F: '{if($3<1000 && $NF ~"/sbin/nologin"){x++}}END{print "系统用户有"x"个"}' /etc/passwd 系统用户有40个
11.判断的基础上添加else
awk ‘{if(){} else{}END{print }'
[root@web01 ~]# awk -F: '{if($3>1000 && $NF ~ "/bin/bash"){i++}else{x++}}END{print "普通用户有"i"个";print "普.通用有"x"个"}' /etc/passwd 普通用户有2个 普通用有45个
多分枝
awk -F: '{if(){} else if(){} else{}}END{print ;print ;print ;}' /etc/passwd
只要判断必须加if
[root@web01 ~]# awk -F: '{if($3==0){i++} else if($3>0 && $3<=1000){j++} else if($NF ~ "/bin/bash"){x++}}END{print "管.理员有""个."priint"系统用户"j"个" ;print"普通用户"x"个" ;}' /etc/passwd
管理员有1个
系统用户43个
普通用户2个
继续阅读

我的微信
这是我的微信扫一扫
评论