shell脚本基本结构、执行方式、环境变量的基本使用、测试、配置环境脚本(关闭防火墙、创建挂载目录并挂载)

目录

一、shell脚本

1.shell脚本的作用,shell解释器的作用

2、脚本的基本结构和执行长见的方式

3、管道符和重定型基本输入输出

二、环境变量的基本使用

1、变量的类型

2、配置自定义变量

3、变量常见赋值的符号

4、整数变量运算符

5、特殊变量

三、测试

1、非交互创建用户和密码

2、配置环境脚本(关闭防火墙、创建挂载目录并挂载)


一、shell脚本

1.shell脚本的作用,shell解释器的作用

1)shell脚本的作用

自动化运维使用

批量化重复操作使用脚本代替

2)shell解释器的作用

Linux系统默认使用的bash命令解释器

负责接收用户输入的命令提交CPU判断执行

2、脚本的基本结构和执行长见的方式

1)脚本的结构

[root@centos01 ~]# vim test.sh

脚本后缀文件*.sh

#!/bin/bash

声明

#E-mail:821409986@qq.com

脚本的描述和写脚本的联系方式

脚本执行的命令

2)运行脚本的方式

[root@centos01 ~]# sh test.sh

使用sh命令运行

[root@centos01 ~]#  ./test.sh

在当前位置运行脚本

[root@centos01 ~]# source ./test.sh

source命令运行脚本

 

3、管道符和重定型基本输入输出

1)基本的输入输出

标准的输入:接收或者读取用户输入的数据<

标准的输出:将数据显示在屏幕或者文件中>,追加>>

错误输出:错误输出可以显示在屏幕或者特定文件中,2>错误输出

混合输出:不管是正确或者错误都输出到文件中,&>

2)管道符|

把前一个命令执行的结果,变成后一个命令处理的对象

二、环境变量的基本使用
 

1、变量的类型

1)自定义变量

管理员手动创建,根据需要自己定义

2)环境变量

维护系统使用

不需要管理员创建系统自动创建

3)位置变量

命令行给脚本传递程序参数使用

4)预定义变量

bash预定义好的特殊变量

用户不能修改

2、配置自定义变量

1)创建变量,变量名字是a变量值为10

2)查看变量值两种方法

[root@shell ~] a=10
[root@shell ~] echo $a
10
[root@shell ~] expr $a
10
3、变量常见赋值的符号

1)双引号,允许通过$符号引用其他变量值(强引用)

2)单引号,禁止引其他变量值(弱引用)

[root@shell ~]# a=5 

[root@shell ~]# b=10
[root@shell ~]# echo '$a $b'
$a $b
[root@shell ~]# echo "$a $b"
5 10

3)反撇,命令替换提取命令执行的结果

[root@centos01 ~]# aa=`netstat -anptu | grep 22`

[root@centos01 ~]# echo $aa

4)read将输入的内容赋值给特定的变量名

[root@centos01 ~]# read -p "请输入特定的目录:" insert

请输入特定的目录:/boot

[root@centos01 ~]# echo $insert

/boot

5)定义全局环境变量子shell可以应用

[root@centos01 ~]# export a=100

[root@centos01 ~]# echo $a

4、整数变量运算符

1)创建的运算符

+:加法

-:减法

\*:乘法

/:除法

%:求模(余)运算

2)运算基本的应用

[root@centos01 ~]# a=100

[root@centos01 ~]# b=200

[root@centos01 ~]# expr $a + $b

300

[root@centos01 ~]#expr 1 + 1

[root@centos01 ~]#echo  $[1+1]

[root@centos01 ~]#echo “scale=2;1.25*1.25”|bc

[root@centos01 ~]#free

              total        used        free      shared  buff/cache   available
Mem:        1862792      175828     1159252        9852      527712     1527884
Swap:       2097148           0     2097148
 

[root@centos01 ~]#vim mom.sh #用脚本查看内存使用率

#!/bin/bash

mt=$(free | awk 'NR==2{print $2}')  #NR==n 表示查看第n列,print $2以空格(默认)为分隔符读取第二个字符串

mu=$(free | awk 'NR==2{print $3}')

muu=$(expr $mu \* 100 / $mt)

echo $muu

[root@centos01 ~]#sh mom.sh

9

#或者

[root@shell ~]# free  |  awk  'NR==2{print  int($3/$2*100)"%"}'
9%
3)花括号的用于区分符号

[root@shell ~]# ab=benet
[root@shell ~]# echo ${ab}0.10.1  #相当于空格
benet0.10.1

5、特殊变量

1)环境变量

系统创建

2)位置变量

提供9个位置$n(n代表1--9)

3)预定义变量

$#:命令行中位置参数

$*:所有位置参数

$?:记录的脚本执行状态0表示成功,非0表示错误

$0:执行脚本的进程程序名字

三、测试

1、非交互创建用户和密码
[root@shell ~] useradd user01
[root@shell ~] echo "123456" |passwd --stdin user01
更改用户 user01 的密码 。
passwd:所有的身份验证令牌已经成功更新。
2、配置环境脚本(关闭防火墙、创建挂载目录并挂载)
[root@shell ~] vim yum.sh

#!/bin/bash

echo "正在关闭防火墙和安全......"
systemctl stop firewalld
setenforce 0
iptables -F
echo "关闭完成!"

sleep 2

echo "创建挂载点......"
read -p "选择一个挂载目录:" x

echo "创建挂载目录"
mkdir $x

echo "挂载光盘......"
mount /dev/sr0 $x &> /dev/null

echo "创建yum文件......"
cd /etc/yum.repos.d/
echo "[yum]
name=yum repo
baseurl=file://$x
enabled=1
gpgcheck=0" >yum.repo

echo "清楚yum仓,重建yum源......"
yum clena all &>/dev/null && yum makecache fast >/dev/null

echo "操作成功!! "

[root@shell ~] sh yum.sh 
正在关闭防火墙和安全......
关闭完成!
创建挂载点......
选择一个挂载目录:cdrom
创建挂载目录
挂载光盘......
创建yum文件......
清楚yum仓,重建yum源......
操作成功!! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我还能再学点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值