第二周作业

一、脚本基础

  1. 运行脚本可以显示出本机的ip地址
  2. 如果ip地址中有3这个数字,那么就打印出当前的系统时间
  3. 如果ip地址中不含3这个数字,就批量建立用户magedu_00, magedu_01, … magedu_100并且所有用户同属于magedu组
  4. 打印出/etc/passwd这个文件中可以登陆的用户(非/usr/sbin/nologin)
  5. 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                   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值