一.Shell脚本
1.1Shell概述
Shell是Linux系统中开机自动加载的一个特殊程序,它将用户输入的指令,转换成Linux内核可以识别的语言,从而让内核执行调用硬件。
Bash是Linux系统中默认使用shell的程序,它位于/bin/bash。
1.2Shell种类
如何查看Linux系统中的Shell种类呢?
[root@xiayan ~]# cat /etc/shells
/bin/sh #是bash命令的软链接 (已经被/bin/bash所替换)
/bin/bash #基准于GNU的框架下发展出的Shell
/usr/bin/sh #已经被bash所替换
/usr/bin/bash #centos和redhat系统默认使用bash shell
/bin/tcsh #csh的增强版,与csh完全兼容 整合了csh,提供更多的功能
/bin/csh #已经被/bin/bash 所替换 (整合C shell,提供更多的功能)
注:nologin:奇怪的shell,这个shell可以让用户无法登录主机。
bash ( /bin/bash)是目前大多数Linux版本采用的默认Shell。
1.3Shell脚本
将需要执行的Linux命令保存到一个文件中,然后通过这个程序文件去执行时,我们就说这个程序为 shell 脚本或 shell 程序;在脚本中输入系统的命令以及相关的语法语句组合,比如变量,流程控制语句等,把他们有机结合起来就形成了一个功能强大的 shell 脚本。
作用:
自动化完成软件的安装部署,如安装部署LAMP架构服务
自动化完成系统的管理,如批量添加用户
自动化完成备份,如数据库定时备份
自动化的分析处理,如网站访问量
二.Shell脚本格式
2.1脚本基本格式
脚本名称一般使用“.sh”结尾,便于识别
第一行为"#!/bin/bash” #脚本申明(默认解释器)
表示此行以下的代码语句是通过/bin/bash程序来执行。
还有其他类型的解释器,比如#! /usr/bin/python、 #!/usr/bin/expect
注释信息:以"#"开头的语句表示为注释信息,被注释的语句在脚本运行时不会被执行
可执行语句:如echo命令,用于输出””之间的字符串
2.2脚本执行方法
方法一:脚本加执行权限
相对路径执行脚本
绝对路径执行脚本
方法二:不加执行权限
sh + 脚本路径
source +脚本路径
其它方法:执行脚本的方法除了以上常用的两种方式,还有许多别的方法
比如:sh < xy.sh ; cat xy.sh | sh
三.重定向与管道操作
3.1重定向
重定向:
用户通过操作系统处理信息的过程中,包括以下几类交互设备文件
标准输入(STDIN):默认的设备是键盘,文件编号为 0,命令将从标准输入文件中读取在执行过程中需要的输入数据。
标准输出(STDOUT):默认的设备是显示器,文件编号为 1,命令将执行后的输出结果发送到标准输出文件。
标准错误(STDERR):默认的设备是显示器,文件编号为 2,命令将执行期间的各种错误信息发送到标准错误文件。
从键盘接收用户输入的各种命令字串、辅助控制信息,并将命令结果输出到屏幕上;如果命令执行出错,也会将错误信息反馈到屏幕上
3.1.1重定向输出
重定向输出指的是将命令的正常输出结果保存到指定的文件中,而不是直接显示在显示器的屏幕上。
重定向输出使用“>”或“>>”操作符号:
1.