一、脚本基础
- 运行脚本可以显示出本机的ip地址
- 如果ip地址中有3这个数字,那么就打印出当前的系统时间
- 如果ip地址中不含3这个数字,就批量建立用户magedu_00, magedu_01, … magedu_100并且所有用户同属于magedu组
- 打印出/etc/passwd这个文件中可以登陆的用户(非/usr/sbin/nologin)
- yum安装nginx服务,并且启动该服务
显示本机主机ip地址
主要是熟悉sed命令的使用,通过sed首先拿到ip地址所在的行,然后通过替换把开头的inet替换为空,然后再将netmask开头的替换为空字符。
ifconfig ens160 | sed -n "2p" | sed 's/^.*inet //g' | sed 's/ netmask.*$//g'
如果ip地址中有3这个数字,那么就打印出当前的系统时间
同样的方法,通过sed命令拿到ip地址,再结合grep命令过滤ip地址中是否含有该数字,时间的打印通过date命令加对应格式进行,+%F表示打印年月日,%n%T表示打印系统当前的时间
ip_printdate(){
ip=`ifconfig ens160 | sed -n "2p" | sed 's/^.*inet //g' | sed 's/ netmask.*$//g'`
if echo "当前系统的ip为:" $ip |grep '3' ;then
echo "当前系统的时间为:" $(date +%F%n%T)
else
echo "当前ip地址不包含3这个数字"
fi
如果ip地址中不含3这个数字,就批量建立用户magedu_00, magedu_01, … magedu_100并且所有用户同属于magedu组
首先需要通过groupadd命令创建一个用户组,
ip_printdate(){
ip=`ifconfig ens160 | sed -n "2p" | sed 's/^.*inet //g' | sed 's/ netmask.*$//g'`
if echo "当前系统的ip为:" $ip |grep '5' ;then
echo "当前系统的时间为:" $(date +%F%n%T)
else
groupadd magedu
for i in {0..100};do
useradd magedu_$i -g magedu
#userdel magedu_$i
done
#groupdel magedu
fi
}
打印出/etc/passwd这个文件中可以登陆的用户(非/usr/sbin/nologin)
思路:先cat /etc/passwd然后结合grep进行过滤
root_print(){
echo -e "\E[1;$[RANDOM%7+31]m/etc/passwd文件中不以/nologin结尾的有\E[0m"
cat -n /etc/passwd |grep -v /nologin
echo "一共有:"`cat -n /etc/passwd | grep -v /nologin|wc -l`"行"
}
yum安装nginx服务,并且启动该服务
nginx_install(){
#安装nginx需要的依赖,理论上需要先判断是否已经安装
yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl-devel
#下载nginx
wget http://nginx.org/download/nginx-1.23.2.tar.gz
#解压
tar -zxvf nginx-1.23.2.tar.gz
#进入解压之后的目录
cd nginx-1.23.2/
# 编译
./configure
make && make install
# 开放nginx启动需要的端口号
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
cd /usr/local/nginx/sbin
./nginx
echo "查看当前nginx的进程是否存在"
ps -ef | grep nginx
}
所有的都写在一个脚本中
#!/bin/bash
#********************************************************************
#Author: xiaonan
#QQ: 2625521906
#Date: 2022-11-21
#FileName: work.sh
#Description: The test script
#Copyright (C): 2022 All right reserved
#********************************************************************
echo -en "\E[1;$[RANDOM%7+31]m"
cat <<EOF
1)显示主机ip地址
2)显示系统时间,当ip中有3这个数字时
3)打印可以登录的用户
4)安装nginx服务
EOF
echo -en "\E[0m"
read -p "请输入你的选择(1-4): " num
ip_all (){
ifconfig ens160 | sed -n "2p" | sed 's/^.*inet //g' | sed 's/ netmask.*$//g'
}
ip_printdate(){
ip=`ifconfig ens160 | sed -n "2p" | sed 's/^.*inet //g' | sed 's/ netmask.*$//g'`
if echo "当前系统的ip为:" $ip |grep '5' ;then
echo "当前系统的时间为:" $(date +%F%n%T)
else
groupadd magedu
for i in {0..100};do
#groupdel magedu
useradd magedu_$i -g magedu
#userdel magedu_$i
done
#groupdel magedu
fi
}
root_print(){
echo -e "\E[1;$[RANDOM%7+31]m/etc/passwd文件中不以/nologin结尾的有\E[0m"
cat -n /etc/passwd |grep -v /nologin
echo "一共有:"`cat -n /etc/passwd | grep -v /nologin|wc -l`"行"
}nginx_install(){
#安装nginx需要的依赖,理论上需要先判断是否已经安装
yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl-devel
#下载nginx
wget http://nginx.org/download/nginx-1.23.2.tar.gz
#解压
tar -zxvf nginx-1.23.2.tar.gz
#进入解压之后的目录
cd nginx-1.23.2/
# 编译
./configure
#安装
make && make install
# 开放nginx启动需要的端口号
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
#进入该目录启动nginx
cd /usr/local/nginx/sbin
#启动nginx
./nginx
echo "查看当前nginx的进程是否存在"
ps -ef | grep nginx
}
case $num in
1)
#ifconfig ens160 | sed -n "2p" | sed 's/^.*inet //g' | sed 's/ netmask.*$//g'
ip_all
;;
2)
ip_printdate
;;
3)
root_print
;;
4)
nginx_install
;;
esac