shell脚本的使用(一)
在一些复杂的Linux维护工作中,大量重复性的输入和交互操作不仅费时费力,而且容易出错.
而编写一个恰到好处的Shell脚本程序,可以批量处理.自动化地完成—系列维护任务,大大减轻管
理员的负担。
shell脚本的结构
[root@centos01 ~]# cat test.sh
#!/bin/bash //声明
#test script //描述
#test@162.com //脚本作者联系方式
cd /
ls
1)声明 脚本通过那个解释器运行 Linux系统默认使用的是base
2)脚本描述 解释当前脚本的作用和功能
3)脚本作者联系方式 脚本故障方便联系写脚本的工程师
4)脚本执行的命令 通过脚本命令执行处理数据,实现自动化运维
[root@centos01 ~]# sh test.sh | 不需要添加执行权限,直接执行 |
---|---|
[root@centos01 ~]# source test.sh | 不需要添加执行权限,直接执行,进入到脚本变量目录 |
[root@centos01 ~]#./test.sh | 需要添加脚本执行权限 |
重定向和管道符
标准输入:文件号0,接收或者读取用户输入的数据,用<表示 |
---|
标准输入:文件号0,接收或者读取用户输入的数据,用<表示 |
标准的输出∶文件号1,将数据显示在屏幕或者文件中,用>表示,>>表示追加输出 |
错误输出:文件好2,错误输出显示在屏幕或者文件中,用2>表示 |
混合输出︰对或者错都可以显示或者输出到文件中显示,用&>表示 |
变量的组成和作用
1)变量的组成 变量名和变量值组成
2)变量的作用 方便调用变量中的参数 避免重复编写内容
变量的类型
1)自定义变量 管理员手动创建 根据脚本环境需要创建
2)环境变量 维护系统使用 不需要管理员手动创建
3)位置变量 命令给脚本传递参数使用
4)预定义变量 bash预定义变量属于特殊变量 用户不能修改预定义变量
变量赋值常用的符号
双引号 “” | 允许引用其他的变量值 |
---|---|
单引号 ‘’ | 禁止引l用其他变量 |
反撇 \ | 将命令执行的结果赋值给变量 |
read -p | 接收用户输入内容赋值给变量使用 |
变量的运算符
+ : 加 | - :减 |
---|---|
/ : 除 | \ * :乘 |
特殊变量
环境变量 | 系统创建 |
---|---|
位置变量 | 提供9个位置 |
预定义变量
-
$#∶命令行中位置参数
-
$*:所有位置参数
-
$?:判断脚本执行状态0成功,非0失败
-
$0:脚本进程名字
实验
为root用户编写登录欢迎脚本,报告当前主机中的进程数.已登录用户数.根文件系统的
磁盘使用率。当从TTY终端登录时,显示的效果如下所示。
编写start、stop、status三个脚本程序,用来启动.停止各种系统服务。例如,直接执行“stop
crond”“start crond”命令即可停止、启动crond服务。
1、编写欢迎脚本
echo "Running Processes:`ps -aux | wc -l`"
echo "Login Users:`who | wc -l`"
echo "Usage of/ Filesystem :`df -Th | grep "/$" | awk '{print $6}'`"
[root@centos01 ~]# vim .bash_profile
重启测试
[root@centos01 ~]# reboot
2、编写脚本程序
[root@centos01 ~]# vim start
[root@centos01 ~]# vim stop
[root@centos01 ~]# vim status
添加执行权限
[root@centos01 ~]# chmod +x start
[root@centos01 ~]# chmod +x stop
[root@centos01 ~]# chmod +x status
将/root添加到搜索路径
[root@centos01 ~]# PATH="$PATH:/root"
测试apache服务