命令记不住

登陆

Shell 脚本概述

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.不会手动搭建或者执行某些程序,那么一定学不会Shell

1.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/test

2.脚本的执行方式

直接使用bash解析器执行脚本

# bash /tmp/test

3.给脚本添加执行权限,然后使用./运行

# 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"
推荐阅读