1.shell可以用来自动化系统的初始化工作(update,软件的安装,时区的设置,安全策略...)
2.自动化批量软件部署程序(LAMP/LNMP/Tmcat/LVS/Nginx)
3.管理应用程序(KVM,集群管理)
4.日志分析处理程序(grep/awk)
5.自动化备份恢复程序(mysql完全备份/增量)
6.自动化管理程序(批量远程修改密码,软件升级,配置更新)
7.自动化信息采集及监控程序(收集系统/应用状态信息,CPU,Mem,disk,net,apache,mysql)
shell是一块包裹着系统核心的壳,处于操作系统的最外层,与用户之间对话,把用户输入的操作系统,然后处理操作系统的输出结结果,输出到屏幕给与用户看到结果
从我们登录linux,所有操作都是交给shell解释
当命令或者程序语句写在文件中,我们执行文件,读取其中的带代码,这个程序文件就被称为shell脚本。
在shell脚本总定义多条linux以及循环控制语句,而linux命令一次性执行完毕,执行脚本文件的方式称为非交互式。
#! /bin/bash #shebang
./执行脚本 需要chmod +x 权限 sh 文件名
shell脚本语言很适合处理纯文本类型数据,且linux的哲学思想就是一切皆文件,如日志、配置文件、文本、网页文件、大多数都是纯文本类型,因此shell可以方便的进行文本处理,例如强大的文本三剑客(grep、sed、awk)
shell语言定义的变量,数据类型默认字符串类型
类型 | 介绍 |
---|---|
弱类型语言 | 在定义变量的时候,不用主动声明改类型 |
强类型语言 | 需要指定变量类型,必须对应的上负责报错 |
/bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh /bin/dash
运维必会语言:shell、python
因为大量的linux运维工具由python开发的。
注意:1.每次调用bash /sh这样解释器去执行脚本, 都会开启一个子shell,因此不保留当前shell的变量,通过pstree命令检查进程树
2.调用source或者. 在当前shelll环境加载脚本,因此保留
在linux反引号`
环境变量一般指export,用于定义shell的运行环境,保证shell命令正确执行,shell通过环境变量确定登录用户莫、PATH路径、稳健性等能找出linux中各种变量。