一、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%,则输出报警信息
(思路提示:
[[email protected] ~]# ((80>70))
[[email protected] ~]# echo $?
0
)