初识Shell
初识Shell
1.什么是shell
Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,将用户输入的命令翻译给操作系统,并将处理的结果输出到屏幕。
Shell命令存在交互式
和非交互式
- 交互式:日常使用最多的一种模式,登录终端、执行命令、返回结果。再次输入命令、然后等待结果。最后结束工作退出Shell会话。当退出Shell会话后,当前的Shell会话也就终止了。
- 非交互式:在这种模式下,Shell不与用户进行交互,而是直接读取某个文件进行执行。文件里面是什么?“其实就是一堆命令。”当文件从头执行到尾,结束后,当前的Shell也就终止了。
2.什么是shell脚本
- 将系统命令堆积在一起,顺序执行
- 特定的格式+特定的语法+系统的命令=文件
3.shell脚本能做什么(Shell其实就是基于标准化之上的->脚本工具)
-
基础配置:系统初始化操作、系统更新、内核调整、网络、时区、SSH优化;
-
安装程序:部署LNMP、LAMP、MySQL、Nginx、Redis等等;
-
配置变更:Nginx Conf、PHP Conf、MySQL Conf、Redis Conf;
-
业务部署:Shell配合git、jenkins实现自动化部署php、java代码,以及代码回滚;
-
日常备份:使用Shell脚本对MySQL进行每晚的全备份和增量备份;
-
信息采集:Zabbix+Shell,硬件、系统、服务、网络等等;
-
日志分析:取值->排序->去重->统计->分析
-
服务扩容:扩容:监控服务器集群CPU,如CPU负载持续80%+触发动作(脚本),脚本:调用api开通云主机->初始化环境->加入集群->对外提供
-
服务缩容:监控服务器集群CPU使用率->低于20%->检测当前有多少个web节点->判断是否超过预设->缩减到对应的预设状态->变更负载的配置
作用:shell脚本主要是减少重复性、周期性的工作。减少故障的几率。
4.怎么学shell脚本,shell脚本需要预备知识
-
熟练使用vim编辑器;
-
熟练使用Linux命令;
-
熟练使用Linux三剑客;
注意:如果对命令使用不够熟练,对基本服务也不会手动搭建,那么一定学不会Shell
学好Shell:基础命令+基础服务+经常练习+思路
5.shell脚本的编写规范
- 脚本存放固定目录
/scripts
; - 开头加
!/bin/bash
,作用:告诉脚本使用哪种命令解释器。如果不指定Shell,默认是bash
执行; - 附带作者及版本信息;
- 脚本扩展名为
*.sh
; - 脚本中尽量不使用中文;
- 成对的符号一次书写完成;
- 循环格式一次性输入完成;
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
一起动手学习吧!!!