Shell简介:
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
运行shell脚本方法:
1、作为可执行程序
将上面的代码保存为 test.sh,并 cd 到相应目录
chmod +x ./test.sh #使脚本具有执行权限 ./test.sh #执行脚本
注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。
2、作为解释器参数
这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名
/bin/sh test.sh /bin/php test.php
这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。
'#!' 就是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。
1、编写网卡设置脚本:
- 固定网卡设置脚本
#!/bin/bash
#这是一个用于设置网卡IP地址的脚本!
#设置网卡信息
ETH=$(ifconfig | grep "^eth" | awk '{print $1}')
MAC=$(ifconfig | grep "^eth" | awk '{print $5}')
IP="192.168.2.130"
MASK="255.255.255.0"
GW="192.168.2.2"
M_DNS="114.114.114.114"
S_DNS="8.8.8.8"
#生成网卡配置文件
echo "DEVICE=$ETH" >> /etc/sysconfig/network-scripts/ifcfg-$ETH
echo "HWADDR=$MAC" >> /etc/sysconfig/network-scripts/ifcfg-$ETH
echo "TYPE=Ethernet" >> /etc/sysconfig/network-scripts/ifcfg-$ETH
echo "ONBOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-$ETH
echo "BOOTPROTO=static" >> /etc/sysconfig/network-scripts/ifcfg-$ETH
echo "IPADDR=$IP" >> /etc/sysconfig/network-scripts/ifcfg-$ETH
echo "NETMASK=$MASK" >> /etc/sysconfig/network-scripts/ifcfg-$ETH
echo "GATEWAY=$GW" >> /etc/sysconfig/network-scripts/ifcfg-$ETH
echo "DNS1=$M_DNS" >> /etc/sysconfig/network-scripts/ifcfg-$ETH
echo "DNS2=$S_DNS" >> /etc/sysconfig/network-scripts/ifcfg-$ETH
#启动网卡服务
ifdown $ETH
ifup $ETH
service network restart
执行结果:
- 自定义网卡设置脚本
#!/bin/bash
#这是一个用于设置网卡IP地址的脚本!
#获取网卡的设备名称
ETH=$(ifconfig | grep "^eth" | awk '{print $1}')
#获取网卡的MAC地址信息
MAC=$(ifconfig | grep "^eth" | awk '{print $5}')
read -p "请输入网卡IP地址:" IP
read -p "请输入子网掩码:" MASK
read -p "请输入网关地址:" GW
read -p "请输入首选DNS地址:" DNS1
read -p "请输入备用DNS地址:" DNS2
echo "DEVICE=$ETH
HWADDR=$MAC
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=$IP
NETMASK=$MASK
GATEWAY=$GW
DNS1=$DNS1
DNS2=$DNS2" > /etc/sysconfig/network-scripts/ifcfg-$ETH
#启动网卡服务
service network restart
执行结果:
2、监测磁盘剩余空间(根分区),低于20%,发出报警信息(通过屏幕输出警告信息)
#!/bin/bash
#监测磁盘剩余空间(根分区)脚本
# 获取磁盘空间值
occupy=$(df -hT | grep "/$" | awk '{ print $6 }' | cut -d "%" -f 1)
# 如果占用比大于80%,则报警输出警告文本
if [ "$occupy" -ge "80" ]
then
echo "sda3 is full"
else
echo "空间充足!"
fi
执行结果:
3、判断某服务是否开启
#!/bin/bash
read -p "请输入要检测的服务:" SERVICE
netstat -anpt | grep $SERVICE &> /dev/null
if [ $? -eq 0 ]
then
echo "$SERVICE服务已经启动!"
else
rpm -q $SERVICE &> /dev/null
if [ $? -eq 0 ]
then
service $SERVICE start
else
echo "未安装$SERVICE服务!"
fi
fi
执行结果: