awk练习

root
233
文章
0
评论
2020年2月6日23:23:47 评论 2614字阅读8分42秒

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个

 

 

继续阅读
weinxin
我的微信
这是我的微信扫一扫
  • 文本由 发表于 2020年2月6日23:23:47
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
网站数据会滚脚本 shell

网站数据会滚脚本

网站数据会滚脚本 当代码经过测试环境后,正式进入生产环境,突然发现有问题,这时候需要立刻还原数据,写一个简单的网站代码回滚脚本 java项目的 #!/bin/bash Web_Dir=/server/...
三剑客练习 shell

三剑客练习

三剑客练习 grep I am hewenfu teacher! I teach linux. test I like badminton ball ,billiard ball and chines...
函数,数组 shell

函数,数组

shell中函数的作用 命令合集,完成特定功能的代码块,在shell中定义函数可以使用代码模块化,便于复用代码,加强可读性,函数和变量类似,先定义才可调用,如果定义不调用则不会被执行 传参 $1,$2...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: