Shell 练习题

76 阅读1分钟

修改ssh服务的配置文件
1、不允许root用户远程登录
2、端口修改为22222
3、关闭DNS反解析

s/#PermitRootLogin.*/PermitRootLogin no/
/#Port 22/a\Port 22222
/#UseDNS/i\UseDNS no                                                                   
/#UseDNS/d

修改nginx的配置文件
1、删除注释和空行
2、修改ipv4端口为88
3、修改网站根目录为/opt/nginx(注释内容那一行不要修改)

将selinux永久关闭

静夜思
#提示
【作者】思乡

床前明月光。疑似地上霜,
举头望明月。低头思故乡,

==作业=
请将分割线上面的内容复制到文本中
1、将作者名字替换为李白
2、在作者行后面追加一列,唐朝
3、将,和。更换位置
4、将所有的,更换为,
5、将#开头的内容删除
6、将空行删除
7、将【】替换为[]

sed 's/思乡/李白/' c.txt 
sed 's/思乡/李白 唐朝/' c.txt 
sed '/\【作者\】/a\唐朝' c.txt 
sed 's/\(.*\)。\(.*\),/\1,\2。/' c.txt 
sed 's/,/,/g' c.txt
sed '/^#/d' c.txt 
sed '/^$/d' c.txt 
sed 's/【/[/;s/】/]/' c.txt 

点名器
1、随机点名
2、如果不通过,则列出惩罚项,并将人员信息和所选的惩罚项记录;
如果惩罚完成,则将记录删除
3、如果通过,则点名继续
4、一个点名过程中,被点到的人不可以重复出现;

#! /bin/bash

# 点名器
# 1、随机点名
# 2、如果不通过,则列出惩罚项,并将人员信息和所选的惩罚项记录;
#    如果惩罚完成,则将记录删除
# 3、如果通过,则点名继续
# 4、一个点名过程中,被点到的人不可以重复出现;

roll_list=(`cat roll_call.txt`)
punish_list=(`cat punishment.txt`)


call(){
    if [ ${#roll_list[@]} -eq 0 ];then
       echo "点名名单已空"
       break
    fi    

    index=$(($RANDOM % ${#roll_list[@]}))
    name=${roll_list[index]}
    echo "被点到的人是:$name"
    roll_list=("${roll_list[@]:0:index}" "${roll_list[@]:index+1}")
    echo "${#roll_list[@]}" 
}

while :
do
call

    read -p "回答是否正确[Y|N]:"  answer1
    if [[ "$answer1" = "y" || "$answer1" = "Y" ]]; then
       echo "$name 回答正确,点名继续进行.."
       continue
    elif [[ "$answer1" = "n" || "$answer1" = "N" ]]; then
      index2=$(( $RANDOM % ${#punish_list[@]}))
      Punish=${punish_list[index2]}
      echo "$name 回答错误,请选择相应惩罚: $Punish"
      
      #惩罚
      read -p "惩罚是否完成[y|n]" answer3
      if [[ "$answer3" = "y" || "$answer3" = "Y" ]];then
        echo "惩罚已完成"
        continue
        roll_list=("${roll_list[@]:0:index}" "${roll_list[@]:index+1}")
      elif [[ "$answer3" = "n" || "$answer3" = "N" ]];then
        echo "惩罚未完成"
        echo "$name $Punish" >> choice_punish.txt
        #echo "$name $Punish" | mail -s "惩罚主题" 2927398040@qq.com 
      else
        echo "输入不规范,请输入Y或者N"
      fi
      

    else
      echo "无效输入,请输入Y或者N"  


    fi
done