1)shell脚本是将要执行的命令按顺序保存到一个文本文件
2)给该文件可执行的权限,便可以运行(+x)
3)结合各种shell控制语句完成更加复杂的操作
1)重复性操作
2)批量事务处理
3)自动化运维
4)服务运行状态监控
5)定时任务执行
1)命令解析器,介于系统内核和用户之间,负责解释命令行
2)登录后默认使用的shell程序,一般为/bin/bash,不同shell的内部指令、运行环境等会有所区别:
5.执行脚本的方式
1)./ -----需要添加权限,不区分颜色,不改变路径
2)sh ------不需要权限,不区分颜色,不改变路径
3)source-----不需要权限,区分颜色,但会改变路径
管道操作符号"|",命令格式:cmd1 | cmd2 | …
2.管道操作为不同命令之间的协同提供了一种机制,位于管道符左侧的命令输出结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。
3.在shell脚本应用中,管道符通常用来过滤所需要的关键信息。结合awk(分隔符)作为进一步的过滤。
标准输入:从该设备接收用户输入的数据----设备文件:/dev/stdin----文件描述编号:0----默认设备:键盘
标准输出:通过该设备向用户输出数据----设备文件:/dev/stdout----文件描述编号:1----默认设备:显示器
标准错误输出:通过该设备报告执行出错信息----设备文件:/dev/stderr----文件描述编号:2----默认设备:显示器
重定向输入;操作符:<;用途:从指定的文件读取数据,而不是从键盘输入
重定向输出;操作符:>;用途:将输出的结果保存到指定的文件(覆盖原有内容)
重定向输出;操作符:>;用途:将输出的结果追加到指定的文件(不覆盖原有内容)
标准错误输出;操作符:2>;用途:将错误信息保存到指定文件(覆盖原有内容)
标准错误输出;操作符:2>>;用途:将错误信息追加到指定的文件中(不覆盖原有内容)
混合输出;操作符:&>>;用途:将标准输出、标准错误的内容保存到同一个文件中
为灵活管理Linux系统提供特定的参数,有两层意思
1)变量名:使用固定的名称,由系统预设定或者用户自定义
2)变量值:能够根据用户设置、系统环境的变化而变化
自定义变量:由用户定义,修改和使用
环境变量:由维护系统,用于设置环境
位置变量:通过命令行给脚本程序传递参数
预定义变量:B爱上内置的一类变量,不能直接修改
双引号:允许通过$符号引用其他变量值
单引号:禁止引用其他变量值,$视为普通字符
反撇号:命令替换,提取命令执行之后的输出结果
read:从键盘输入内容为变量赋值,格式为:read [-p “提示信息”] 变量名:
设置变量的作用范围:
全局变量和局部变量;局部变量只在当前的shell中有效,而全局变量,在进入其他的shell环境中仍然有效
为了使用户定义的变量能在变为全局变量,可以使用export将指定的变量导出为”全局变量”,可以同时指定多个变量名作为参数(不需要使用$符号),变量名之间用空格隔开。
1.整数变量的运算格式为:expr $变量1 运算符 $变量2 运算符 $变量3 …
2.常用的运算符:+,-,*(乘法运算符),/(除法运算法),%(取余)
是由系统提前创建,用来设置用户的工作环境,配置文件由/etc/profile,/root/.bash_profile
PWD表示当前所在的工作目录,PATH表示命令搜索路径,USER表示用户名称,LANG表示语言和字符集,HOME表示用户的宿主目录。
表示为$n,n为1~9之间的数字,其中$0表示当前执行的进程或程序名
$#:命令行中位置变量的个数
$*:命令行中输入变量的具体数值
$?:上一行命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或出错