首页 > 代码库 > awk、变量、运算符、if多分支及第十一天作业

awk、变量、运算符、if多分支及第十一天作业

一、awk:用来处理格式明显的字段

-F:定义字段分隔符,默认分隔符是连续空格

NR:表示当前记录的字符段

$NR:取最后一段

$:以间隔符号分割的各个字符段

NR:行号

NR==1:定位到第一行

NR>=3&&NR<=5:第三到五行

NR<=2||NR>=7:小于二或大于七行

-v:定义变量并赋值

sort|uniq|-c:排序后去重复行,并显示重复行数

cut :剪切

du-sh/boot/:boot文件大小

find/-type f:找根下的普通文件

find/-name:找文件名

find/-size +30M:找大于30m的文件

二shell脚本

1.变量

(1)命名遵循下述规范

以字母开头,使用中、下划线做单词链接,同类型用数字区分,最好加上扩展名

(2)系统变量

set:显示所有变量

env:环境变量

(3)变量赋值

echo $VARNANE

unset VARNAME:删除变量

(4)常用系统变量

HISTSIZE:日志大小,历史记录

PWD:当前目录

PATH:环境变量

PSI:用户名等信息

(5)自定义变量

全局变量:export,自己及自己一下的子bash都可以使用

局部变量:当前位置有效

(6)定义变量名的边界:

#men =20

#echo ${men}%

20%

(7)数据类型

内存使用量:free|awk ‘NR==3{print $3}‘

2.运算符

(1):算术运算符

+、-、*、/、%

(2)关系操作

-gt:>

-ge:>=

-eq:==

-le:<=

-lt:<

!=:不等于可以直接使用

-a:同时满足左右两边

-o:满足一个

(3)赋值运算

x=x+1--->x+=1

x=x*3--->x*3

x=x/3--->x/3

i++:自增1的操作

(4)shell里的所有计算器

浮点运算:#echo "scale=2,30/1000"|bc -l 

输出.03

(5)测试操作

5.1测试文件操作

-d:文件存在且是目录

-e:文件存在

-f:正规文件存在

-h:文件存在且是链接文件

-w:可写

-r:可读

-x:可执行

-b:block文件

-ot:创建时间更早

-s:文件存在且大小大于0

5.2字符串测试

=:相等

!=:不相等

-z:空串

-n:非空串

5.3测试数值

加减乘除

作业二:awk文本处理
打印uid在30~40范围内的用户名。

技术分享

打印第5-10行的行号和用户名

技术分享

打印奇数行

技术分享

打印偶数行

技术分享

打印字段数大于5的行

技术分享

打印UID不等于GID的用户名

技术分享

打印没有指定shell的用户

 

作业三:shell脚本编写
自动部署、初始配置、并启动nginx反向代理服务
自动部署、初始配置、并启动三台web
监控脚本:监控每台机器的内存使用率>70%,则输出报警信息
(思路提示:
[root@www ~]# ((80>70))
[root@www ~]# echo $?
0

awk、变量、运算符、if多分支及第十一天作业