一.shell脚本概述
shell脚本是将要执行的命令按顺序保存到一个文本文件,只要给该文件可执行的权限,便可以运行,此外还可以结合各种shell控制语句完成更加复杂的操作
shell可以完成重复性操作,批量事务处理,自动化运维,服务运行状态监控,定时任务执行
shell的作用——命令解析器,介于系统内核和用户之间,负责解释命令行
登录后默认使用的shell程序,一般为/bin/bash,不同shell的内部指令、运行环境等会有所区别
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@localhost ~]#
- 执行shell脚本的三种方式
- 脚本文件的路径,该方式必须要有执行权限
[root@localhost ~]# source c.sh 1.执行脚本时需要跟脚本文件的绝对路径
/opt
2019年 12月 02日 星期一 08:36:03 CST
[root@localhost opt]#
sh + 脚本文件路径,该方式不需要文件有执行权限,但是不区分颜色,且在原路径执行
[root@localhost opt]# sh ~/c.sh 路径未发生变化
/opt
2019年 12月 02日 星期一 08:38:09 CST
./执行脚本时,脚本文件必须要有执行权限(x)
[root@localhost ~]# ./c.sh
bash: ./c.sh: 权限不够
[root@localhost ~]#
[root@localhost ~]# chmod +x c.sh
[root@localhost ~]# ./c.sh
/opt
2019年 12月 02日 星期一 08:42:28 CST
[root@localhost ~]#
二.管道
管道操作符号"|",命令格式:cmd1 | cmd2 | ...
管道操作为不同命令之间的协同提供了一种机制,位于管道符左侧的命令输出结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道
在shell脚本应用中,管道符通常用来过滤所需要的关键信息。结合awk(分隔符)作为进一步的过滤
实例如下
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 10G 5.1G 5.0G 51% /
devtmpfs devtmpfs 474M 0 474M 0%