
Shell脚本概述
1.概述
- 1.shell基本特性
- 2.shell变量定义
- 3.shell条件测试
- 4.shell数值运算
- 5.shell流程控制if case
- 6.shell循环语句for while
- 7.shell数组函数array function
- 8.shell内置命令break continue exit
- 9.shell轻量项目
2.Shell脚本是什么
1.系统命令的堆积
2.特定的格式 + 特定的语法 + 系统的命令 = 文件
3.不会手动搭建或者执行某些程序,那么一定学不会Shell1.Shell脚本的功能
- Shell脚本做什么: 基于标准化之上的 -> 工具化
- Shell脚本的作用: 简化操作步骤, 提高效率,减少人为干预,减少系统故障
1.自动化的完成基础配置: (系统初始化操作、系统更新、内核调整、网络、时区、SSH优化)
2.自动化安装程序: 自动化安装LNMP、LAMP、MySQL、Nginx、Redis
3.自动化调整配置文件Nginx Conf、MySQL Conf
4.自动化部署业务: 部署php、java秒级回退
5.自动化定期备份恢复程序: (MySQL全备+增量+binlog + crond + Shell脚本)
6.自动化信息的采集Zabbix + Shell: 硬件、系统、服务、网络、等等
7.自动化日志分析: 取值->排序->去重->统计->分析
8.自动化扩容/缩容zabbix + shell
- 扩容: 监控服务器cpu, 如cpu负载持续80% + 触发动作(脚本)
- 脚本: 调用api开通云主机->初始化环境->加入集群->对外提供
- 缩容: 监控服务器cpu使用率20%->判断有多少web节点->判断是否超过预设->缩减到对应的预设状态->变更负载的配置
9.Shell什么都能做, 但要符合实际情况以及实际业务需求
3.Shell脚本的执行
1.脚本的基本格式
shell> vim /tmp/test #!/bin/bash echo "Hello world"运行脚本
# chmod 755 /tmp/test # /tmp/test2.脚本的执行方式
直接使用bash解析器执行脚本
# bash /tmp/test3.给脚本添加执行权限,然后使用./运行
# chmod 755 /tmp/test # ./tmp/test没有执行权限会提示权限不足
3.Shell脚本的特性
bash shell特性
- 1.命令补全和文件路径补全, 如果写错无法补全 table
- 2.命令历史记忆功能history
- 3.别名功能alias、unalias
- 4.常用快捷键ctrl+u,k,a,e,l,c,z,d,w,r,y
- 5.前后台作业控制bg,fg,jobs,screen
- 6.输入输出重定向 >,>>,1>,2>>,&>,cat <
- 7.管道 |将前者命令的标准输出交给后者命令的输入 tee
- 8.命令排序
; 没有逻辑关系,无论分号前面的命令执行是否成功都执行后者命令 && 前面执行成功, 则执行后者 || 前面执行不成功, 则执行后9.shell 通配符
* 匹配任意多个字符 ? 匹配任意一个字符 [] 匹配括号中任意一个字符a-z,0-9,A-Z,a-Z () 在子 shell 中执行(cd /boot;ls) (umask 077; touch file1000) {} 集合 touch file{1..9} \ 转义符10.echo输出颜色、printf 格式化输出文本
[root@Shell ~]# echo -e "\033[30m 黑色字 \033[0m" [root@Shell ~]# echo -e "\033[31m 红色字 \033[0m" [root@Shell ~]# echo -e "\033[32m 绿色字 \033[0m" [root@Shell ~]# echo -e "\033[33m 黄色字 \033[0m" [root@Shell ~]# echo -e "\033[34m 蓝色字 \033[0m" [root@Shell ~]# echo -e "\033[35m 紫色字 \033[0m" [root@Shell ~]# echo -e "\033[36m 天蓝字 \033[0m" [root@Shell ~]# echo -e "\033[37m 白色字 \033[0m"