数值比较(整数比较)
-eq
-ne
-ge
-gt
-lt
-le
数值运算
a=$[$b+$c] a=$(($b+$c)) 可以有空格,也可以没有。
a=`expr $b + $c` 一定要有空格
a++,b--,c+=2,d-=3
逻辑比较
逻辑与-a && 多个条件要同时成立
逻辑或-o || 多个条件只要一个条件成立就可以
逻辑非 !
= !=
-z ! -z
1.明确脚本要实现的功能
2.实现功能时要使用的命令
3.把变化的数据用变量表示
4.是否需要使用流程控制
流程控制
1 选择结构
If条件判断表达式;then
成立时执行
……..
fi
2 循环结构
forvar in con1 con2 con3 con 4
do
done
for(( 初始值;条件;步长)) 先赋初值,条件判断,成立就执行循环体,自增长,再判断。
do
done
3 分支结构
case
4 continue 终止当次循环
break 终止循环
exit 终止脚本
return 用在函数里返回值,不终止脚本。
Shift 位移函数 把脚本或者函数的位置变量向左移动一位,并删除没有值得位置变量
: true 恒真,在条件判断是永远为真,在循环体里表示什么都不做
false 恒假,在条件判断里表示永远为假
seq 10 2 20
{a..z}
expr 1 + 2
3 am 备份log日志,数组。
变量替换 ${变量名 变量替换符号 自定义字串}
:=
:-
:+
:?
3 pm 批量改名
${变量名 符号 匹配表达式}
从左往右删除
# 最短
## 最长
从右往左删除
% 最短
%% 最长
正则表达式
grep–v
--color
-i
-q
-c
-n
-E
元字符
^匹配行首 ^$匹配空行
\| ()
[]范围内匹配
4 am ip匹配
sed非交互式的编辑器
功能:打印 删除 修改 复制 剪切 导入 导出
4pm -n p d(-i修改文件) I(insert) a(add) c替换 s修改 r导入(合并文件) w导出 h,H g,G
流控制
5am awk
Awk–F “-” ‘{print$1}’ /etc/passwd
BENGIN{} 行前处理
{}行处理
END 行后处理
5pm awk练习
Ifelse
Whiledo
Fordo
Awk数组
For( 变量名in 数组名) { 循环体 }
6am awk
流程控制
Expect
6pm 运维的基本概念
搭建代理服务器 sqiud nginx
Squid 普通代理 透明代理 反向代理
Iptables–t 表名 管理动作 链名 匹配条件 –j 处理动作
Filter 数据包过滤
Mangle 给数据包打标签
Nat 转换源地址 目标地址 端口
Raw 数据包状态跟踪
链名 (数据包传输的方向 参照物 防火墙)
INPUT OUTPUT FORWARD POSTROUTING PREROUTING
运维
1am squid反向代理
1pm squidacl
Squid.conf
Acl 名称 类型 匹配地址
CDN
2am 搭建nginx
安装 平滑升级
虚拟机 访问控制,
用户认证 反向代理(分发策略 , 后端服务器状态设置)
防盗链 地址重写
是否开源,是否跨平台,占用系统资源,可扩展性能
2pm 访问控制
域名
Ip端口
Location/{}
访问策略 缓存功能默认不开启,要手动开启。
3am 动静页面分离
.html .htm静态页面
.jsp .php 动态页面
部署memcached分布式缓存服务器
在某个服务器上部署
关闭iptables seliunx
数据内存
数据外存
Memcached是高性能的分布式缓存服务器,缓存查询结果,减少访问次数,提高 动态web应用的速度。
使用memcached实现session共享。
5am 搭建网站服务器
服务器品牌,配置
公网ip地址注册域名 DNS
带宽
服务器存放 (托管IDC ,公司本地,电源)
规划拓扑(服务器台数,使用服务,使用哪些软件(商业,开源,操作系统))
监控
1am Nagios安装
3am1 zabbix