shell脚本:
shell:
一个特殊的应用程序,介于操作系统内核与用户之间,充当一个“命令解释器”,负责接受指令并进行解释,将需要执行的操作传递给内核执行并将执行结果返回给用户。
脚本:
将平时使用的各种Linux命令按一定顺序保存到一个文本文件中,添加上执行的权限,就是一个shell脚本。
将要执行的命令按照先后顺序保存到一个文本文件;给该文件一个可执行权限,方便运行;结合各种shell、控制语句完成复杂操作。
【脚本开始注释部分】
#!/bin/bash
# Description:Install Httpd Server//脚本介绍
# By:Crushlinux//脚本作者
# Date:2016-01-08//写作时间
# Version:V1//版本
编写Shell脚本的格式:
1、#!/bin/bash 表示脚本通过以/bin/bash程序来编写
2、# 表示注释信息,例如:对编写的脚本作用进行解释,每写一段脚本之前都应该用“#”来注释以下命令执行的结果
3、定义脚本中的变量
4、定义脚本中的函数
5、脚本执行语句(判断、循环、选择等语句)
6、利用 echo 定义输出一些让人更容易看懂得信息(可以是中文也可以是英文)
执行脚本的三种方法:
1、通过绝对路径执行:/root/first.sh或进入到脚本文件所在目录 ./first.sh (需要给脚本文件添加上执行权限)
2、 进入到脚本文件所在目录执行 sh first.sh bash first.sh(文件可以没有执行权限)
3、进入到脚本文件所在目录执行 source first.sh 或 . first.sh (文件可以没有执行权限)
脚本后缀名:
.sh---编写程序为bash
.pl---编写程序为pret
.py---编写程序为python
shell脚本应用场景:
1.重复性操作
2.批量事务处理
3.自动化运维
4.服务运行状态监控
5.定时执行任务
6.减轻管理员负担
7.规避费事操作
查询当前操作系统的shell解释器:
cat /wtc/shells
(Linux默认使用解释器:/bin/bash/)
在解释器中以下为相同:
/bin/sh = /usr/bin/sh = /usr/bin/bash = /bin/bash
/bin/csh = /bin/tcsh
/bin/ksh -> /etc/alternatives/ksh
标准输入/输出/错误输出:
类型 | 设备文件 | 文件描述编号 | 默认设备 |
标准输入 | /dev/stdin | 0 | 键盘 |
标准输出 | /dev/stdout | 1 | 显示器 |
标准错误输出 | /dev/stdert | 2 | 显示器 |
重定向操作:
类型 | 操作符 | 用途 |
重定向输入 | < | 从指定的文件读取数据 |
重定向输出 | > | 将输出的结果保存到指定文件 |
>> | 将输出结果追加到指定文件 | |
标准错误输出 | 2> | 将错误信息保存到指定文件夹 |
2>> | 将错误信息追加到指定的文件中 | |
混合输出 | &> | 将标准输出、标准错误的内容保存到同一个文件 |
管道符 |
格式:cmd1 | cmd2 [... | cmdn]
作用:将管道前的命令输出结果作为管道后命令的参数使用
xargs 在某些特殊情况下。管道符失去了作用,可以使用xargs命令,强制管道符后的命令使用管道符前的命令输出结果作为参数
awk命令基础体验:
awk -F"分隔符" '/过滤文本/{print $1}' 处理文件
Shell变量
常量:固定的字符串,含义也是固定的。
Shell 变量用来存放系统和用户需要使用的特定参数(值),而且参数根据用户的设定或系统环境的改变而相应的改变,灵活,适应性更强。
变量类型:
1、自定义变量
自定义变量是由用户自己定义的变量,只在用户自己的Shell环境中生效,又称本地变量
定义格式:变量名=变量值 等号两边没有空格
变量名必须使用英文字母或是下划线开头,变量名内不允许出现特殊字符,并且区分字母大小写。
使用echo可以查看定义的变量值,$后面是一个变量名
特殊符号:
1、双引号(“”):可以引用一个变量,有空格的值。
2、单引号(‘’):引号内的内容被视为一个完整的字符串,不能引用变量。
3、反撇号(``):引号内的执行结果作为变量名的变量值,引用命令使用。反撇号在一行命中不能实现嵌套命令替换操作,所以使用$()
read命令:
用来提示用户输入信息,从而实现简单的交互变量设置。将用户输入的信息作为变量值,用户的输入以空格作为分隔符,将读入的各个字段挨个赋值给指定的变量,多余的赋值给最后一个变量。
-p 设置提示信息