初识Shell

初识Shell

1.什么是shell

Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,将用户输入的命令翻译给操作系统,并将处理的结果输出到屏幕。

Shell命令存在交互式非交互式

  1. 交互式:日常使用最多的一种模式,登录终端、执行命令、返回结果。再次输入命令、然后等待结果。最后结束工作退出Shell会话。当退出Shell会话后,当前的Shell会话也就终止了。
  2. 非交互式:在这种模式下,Shell不与用户进行交互,而是直接读取某个文件进行执行。文件里面是什么?“其实就是一堆命令。”当文件从头执行到尾,结束后,当前的Shell也就终止了。

2.什么是shell脚本

  1. 将系统命令堆积在一起,顺序执行
  2. 特定的格式+特定的语法+系统的命令=文件

3.shell脚本能做什么(Shell其实就是基于标准化之上的->脚本工具)

  1. 基础配置:系统初始化操作、系统更新、内核调整、网络、时区、SSH优化;

  2. 安装程序:部署LNMP、LAMP、MySQL、Nginx、Redis等等;

  3. 配置变更:Nginx Conf、PHP Conf、MySQL Conf、Redis Conf;

  4. 业务部署:Shell配合git、jenkins实现自动化部署php、java代码,以及代码回滚;

  5. 日常备份:使用Shell脚本对MySQL进行每晚的全备份和增量备份;

  6. 信息采集:Zabbix+Shell,硬件、系统、服务、网络等等;

  7. 日志分析:取值->排序->去重->统计->分析

  8. 服务扩容:扩容:监控服务器集群CPU,如CPU负载持续80%+触发动作(脚本),脚本:调用api开通云主机->初始化环境->加入集群->对外提供

  9. 服务缩容:监控服务器集群CPU使用率->低于20%->检测当前有多少个web节点->判断是否超过预设->缩减到对应的预设状态->变更负载的配置

    作用:shell脚本主要是减少重复性、周期性的工作。减少故障的几率。

4.怎么学shell脚本,shell脚本需要预备知识

  1. 熟练使用vim编辑器;

  2. 熟练使用Linux命令;

  3. 熟练使用Linux三剑客;

    注意:如果对命令使用不够熟练,对基本服务也不会手动搭建,那么一定学不会Shell

    学好Shell:基础命令+基础服务+经常练习+思路

5.shell脚本的编写规范

  1. 脚本存放固定目录/scripts
  2. 开头加!/bin/bash,作用:告诉脚本使用哪种命令解释器。如果不指定Shell,默认是bash执行;
  3. 附带作者及版本信息;
  4. 脚本扩展名为*.sh
  5. 脚本中尽量不使用中文;
  6. 成对的符号一次书写完成;
  7. 循环格式一次性输入完成;

6.如何正确执行shell脚本

[root@zxm ~]# vim /tmp/test
#!/bin/bash     #解释器加与不加是存在区别
echo "Hello world"

#1.直接使用解释器器执行脚本,无需执行权限
[root@zxm ~]# bash /tmp/test
Hello world

#2.以./运行的方式执行,需要拥有执行权限
[root@zxm ~]# chmod 755 /tmp/test
[root@zxm ~]# ./tmp/test
Hello world

#!/usr/bin/bash	 
	脚本中如果不写,在执行过程中如果./方式执行(需要权限),默认调用bash命令翻译该文件
	脚本中如果写了使用什么解释器翻译,那在使用./时则会调用对应的解释器执行
	执行方式
	bash test.sh		无需权限,直接调用解释器翻译
	./test.sh			需要权限,同时需要定义对应的解释器,不定义默认bash

posted @ 2021-02-22 17:44  水煮沉浮~大刀肉  阅读(112)  评论(0)    收藏  举报