0


Shell编程练习题

Shell编程练习

  1. 在/usr/目录下,创建test00目录,进入该目录,连续创建20个目录,目录的名称是stu01~20。 逻辑过程要求:该目录下如果已经存在需要创建的目录,则自动跳过创建命令动作。
#!/bin/bashif[! -d /usr/test00 ];thensudomkdir /usr/test00
ficd /usr/test00
for i in{1..20}do
  dir_name=''if[$i -lt 10 ];then
      dir_name=stu0${i}else
      dir_name=stu${i}fi#判断目录是否存在if[ -d $dir_name];thencontinuefisudomkdir${dir_name}done
  1. 创建用户stu01

要求:

  • 用户拥有自己的目录
  • 允许远程登录
  • 配置账户密码最短使用期限为 10天,最长使用期限为 90 天。
  • 配置完成后,过期的提醒消息到屏幕上方便阅读,该信息自行定义。
#!/bin/bash

username=stu01
#创建用户stu01,其密码为123456,并且拥有自己的文件夹,文件夹名为/home/stu01useradd -d /home/${username} -m -s /bin/bash -p $(echo 123456 | openssl passwd -1 -stdin)${username}#允许stu01用户远程登录sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
#配置用户最短使用期限10天,最长使用期限为90天
chage -m 10 -M 90 ${username}#提取出账号过期时间
overdue=$(chage -l ${username}|grep'密码过期时间'|awk'{print $3,$4,$5}')echo 账号${username}密码过期时间为"${overdue}"
  1. ping网段 要求:
  • 获取当前服务器的ip,比如172.17.31.130
  • ping 172.17.31.30~130范围内的机器100台的数量
  • 给出ping通了多少台机器的相关信息,显示到屏幕上。
#!/bin/bash#获取当前服务器的IP地址
IP=`/sbin/ifconfig -a|grep inet|grep -v inet6|grep -v 127.0.0.1|awk'{print $2}'|tr -d "addr:"`#以.分割IP地址
IP_ARR=(${IP//./ })#获取网段
NETWORK=${IP_ARR[0]}.${IP_ARR[1]}.${IP_ARR[2]}.

num=0

for i in{125..130}do#检查是否存在该IP地址ping -c 1 -w 1 ${NETWORK}$i&>/dev/null
    if[$? -eq 0 ];thenecho 找到了${NETWORK}${i}
        num=`expr ${num} + 1`fidoneecho Ping通了${num}台服务器

4 文本信息筛出

  • 使用history命令,获取结果数据,不带行号。
  • 将结果重定向输出到文件command.log中
  • 逐一读取该文件中的每一行内容后,然后生成新文件command_01.log要求:- 文件command_01.log跟文件command.log类似,行数不变- 凡是非sudo开头的行,在开头添加符号“#” 比如,某行“sh test.sh”则修改为“#sh test.sh”
#!/bin/bash#获取历史操作,并按行保存到文件中#情空两个日志文件,不存在就创建
:> command.log
:> command_01.log
cat ~/.bash_history|whileread line
doecho${line}>>command.log
donecat command.log|whileread line
do#如果这一行有sudoif[[$line!= *"sudo"* ]]then#获取这一行的第一个参数echo \#${line}>>command_01.log
    elseecho${line}>>command_01.log
    fidone

5.更换软件源(默认21.10系统版本)

  • 编写程序,选择输入1或者2或者3 则将当前系统的软件源,对应更换为清华大学,浙江大学,中国科技大学的镜像源
  • 更换信息完成后,重建软件源的缓存和更新源。
#!/bin/bash
source_url=""#获取传入的参数case$1in"1")#清华源
        source_url="https:\/\/mirror.tuna.tsinghua.edu.cn\/";;"2")#浙大源
        source_url="http:\/\/mirrors.zju.edu.cn\/";;"3")#中科大源
        source_url="https:\/\/mirrors.ustc.edu.cn\/";;
    *)echo"参数错误"exit 1
        ;;
esac

#换源sudosed -i -r "s/(http|https):\/\/[a-z.]+\//${source_url}/" /etc/apt/sources.list

#更新缓存sudoapt-get clean

#更新源sudoapt-get update
标签: linux 服务器 bash

本文转载自: https://blog.csdn.net/qq_30347475/article/details/125249489
版权归原作者 一个老蒟蒻 所有, 如有侵权,请联系我们删除。

“Shell编程练习题”的评论:

还没有评论