Linux之Shell脚本编程——Shell是什么 (1)

什么是Shell

1.1 Shell 原理图

  • Shell命令解释器
    • Bash
    • dash #Ubuntu man dash
    • csh tcsh #unix

Shell
bash 红帽系列
dash ubuntu
csh tcsh unix

在这里插入图片描述

1.2.开发语言中程序代码的分类

  • 编译型: 开发书写的代码 无法直接运行 需要编译(代码---->命令) C语言
  • 解释型: 书写完成代码,通过命令执行 (shell脚本) shell 书写脚本 然后可以直接运

C —— 编译 —— 二进制机器码 (CPU X86 复杂指令集, Power 精简指令集,APM)

Java —— 编译 —— 字节码(Java 虚拟机 JDK) Tomcat/Hadoop

shell —— 解释 (/usr/bin/bash)

perl —— 解释 (/usr/bin/perl) expect —— 解释 (/usr/bin/expect)

Python —— 解释 ( /usr/bin/python)—— 编译 —— 字节码(Python 虚拟机)

程序是由哪些组程序: 逻辑 + 数据

1.3 Shell 能做什么

  1. 自动化批量系统初始化程序 (update,软件安装,时区设置,安全策略…)
  2. 自动化批量软件部署程序 (LAMP,LNMP,Tomcat,LVS,Nginx)
  3. 应用管理程序 (KVM,集群管理扩容,MySQL,DELLR720 批量 RAID)
  4. 日志分析处理程序(PV, UV, 200, !200, top 100, grep/awk)
  5. 自动化备份恢复程序(MySQL 完全备份/增量 + Crond)
  6. 自动化管理程序(批量远程修改密码,软件升级,配置更新)
  7. 自动化信息采集及监控程序(收集系统/应用状态信 CPU,Mem,Disk,Net,TCP Status,Apache,MySQL)
  8. 配合 Zabbix 信息采集(收集系统/应用状态信息 CPU,Mem,Disk,Net,TCP Status,Apache,MySQL)
  9. 自动化扩容(增加云主机——>业务上线)zabbix 监控 CPU 80%+|-50% Python API AWS/EC2(增加/删除云主机) + Shell Script(业务上线)
  10. 俄罗斯方块,打印三角形,打印圣诞树,打印五角星,运行小火车,坦克大战,排序算法实现
  11. Shell 可以做任何事(一切取决于业务需求)

书写规范

2.1 书写脚本

  • 书写脚本 加上 第1行命令解释器
  • 版权说明
  • 不要加上中文
  • 成对的符号 提前敲好 "" '' `` {} [ ] ( )
  • 脚本文件名:尽量不要包含服务名称 看见文件名 知道脚本作用
Shbang 
#!/bin/bash #指定脚本默认使用的命令解释器 第1行
# test by ncs 2019-11-18

.....

2.2 执行脚本

  • 方法1 直接运行 需要加上 x权限 (用于系统执行脚本)
    在这里插入图片描述
  • 方法2 sh 执行
    在这里插入图片描述
  • 方法3 source 或 . 替你在当前环境中 执行1次脚本

在脚本中实现类似于 include (nginx)的功能

在这里插入图片描述

  • 方法4 输入重定向方法

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值