目录
Shell脚本概述
什么是Shell
Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户。这种对话方式可是交互也可以是非交互式的,我们所输入的命令计算机是不识别的,这时就需要一种程序来帮助我们进行翻译,变成计算机能识别的二进制程序,同时又把计算机生成的结果返回给我们。
shell脚本的概念
将要执行的命令按顺序保存到一个文本文件
给文件可执行权限
可结合各种shelll控制语句以完成更复杂的操作
Shell脚本应用的场景
重复性操作
交换性任务
批量事务处理
服务运行状态监控
定时任务执行
等等.......
Shell的作用
Shell的作用——命令解释器。“翻译官”
介于系统内核与用户之间,负责解释命令行
Linux系统中的Shell是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个"命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。
常见的Shell解释器程序有很多种,使用不同的Shell时,其内部指令、命令行提示符等方面会存在一些区别。 通过/etc/shells 文件可以了解当前系统所支持的Shell脚本种类。
linux中常见的shell
bash:基于gun的框架下发展的shell
csh:类似c语言的shell
tcsh:整合了csh提供了更多功能
sh:已经被bash替换
nologin:让用户无法登录
注:bash (/bin/bash) 是目前大多数Linux版本采用的默认shell
用户的登录shell
登录后默认使用的shell程序,一般为 /bin/bash
不同shell的内部指令,运行环境等会有所区别
编写shell脚本
什么是shell脚本
就是将命令按顺序一一列出,最后自动执行
执行需要权限,也可以直接使用绝对路径
脚本其实不复杂,通用脚本环境改变后依然可以使用的脚本
shell脚本的作用
自动化运维
批量化重复操作可以编写焦文结合计划任务自动周期运行
减轻管理员工作量
提高处理文本文件的速度
避免配置出错
shell是一个面向字符串的编程语言,可以跟Python之类的其他语言配合起来,比如某个复杂的功能使用一个Python脚本来实现,然后再shell中调用这个脚本实现较复杂的功能;或者反过来,在Python脚本中调用外部的shell脚本来提高自动化的效率,也是可以的
外壳脚本的构成:
1、脚本申明(解释器) :若第一行 为“#!/bin/bash",表示此行以下的代码语句是通过/bin/bash程序来解释执行,#!/bin/ bash为默认解释器。还有其它类型的解释器,比如#!/usr/bin/python、#!/usr/bin/expect。
2、注释信息:以“#”开头的语句表示为注释信息,被注释的语句在运行脚本时不会被执行。
3、可执行语句:比如echo命令,用于输出”"之间的字符串
Shell脚本编程规范
创建Shell 程序的步骤
- 创建一个包含命令和控制结构的文件。
- 编辑完之后修改这个文件的权限使它可以执行 /使用chmod +x 文件名
- 检测语法错误(命令集合是否正确) /set -x 追踪脚本是否有故障
- 执行脚本./zmj.sh
编写脚本代码开始
使用vim文本编辑器
每行一条Linux命令,按执行顺序依次编写
没权限,所以下面给权限
赋予文本可执行权限
使脚本具有可执行的属性
执行脚本的方法
使用./脚本名称 执行脚本文件
方法一:脚本文件路径(绝对路径与相对路径)必须有x权限
结合上面的临时增加(再搞一个)
方法二:sh 脚本文件路径 不一定有x权限
方法三:source 脚本文件路径
方法四: . 脚本文件路径
方法五: . sh < 脚本文件路径
方法六:cat 脚本文件路径 管道符号 sh