linux期末脚本作业,linux shell脚本编程练习作业及答案(全)

本人乃一介草民,刚学shell编程不久,一日见有人发题求助,所以自己也当作练习来练练手,写的不好请勿吐槽,可与本人交流,一起学习!!

(1)创建用户

批量创建1000个用户

用户名为:班级+学号+昵称;每个班为一个组群

能够自动删除所创建的用户

每成功创建或删除一个用户,在屏幕上显示用户名

(题目中这用户,也太tm多了点,没有达到题目的全部要求,还是水平有限啊!!)

#!/bin/bash

#this is programe to build users batch

echo "how many users you want to add"

read -p "input the numbers of users: " num

count=1

while [ $count -le $num ]

do

useradd -G class1 std$count

echo "user std$count del successfully"

count=$(($count + 1))

done

read -p "what do you want to do: " do

let count=count-1

case $do in

d)

for(( count; count >= 1;count-- ))

do

userdel -r std$count

echo "user std$count del successfully"

done

;;

*) exit;;

esac

##################################################

(2)创建目录和文件,

目录名为:dir1, dir2, …, dir10

每个目录下分别新建10个文本文件,文件名为:目录名+file1~10

并设置每个文件的权限:

文件所有者:读+写+执行

同组用户:读+执行

其他用户:读+执行

等待键盘输入一个数字,范围为1~10

重命名该级目录(假设输入数字为“5”,则为“dir5”目录)下所有文件的扩展名为bak,并将该目录下所有文件名保存到一个文本文件

删除包含该数字的所有目录和文件

#!/bin/bash

#test 2

for((i=1;i<=10;i++))

do

mkdir /root/tmp/dir$i

cd /root/tmp/dir$i

chmod 755 -R . #这有个(.)代表当前文件夹

a=1

while [ $a -le 10 ]

do

touch dir${i}file$a

let a=a+1

done

done

read -p "which directory you want chage:" num

cd /root/tmp/dir$num

for s in `ls /root/tmp/dir$num`

do

mv $s $s.bak

done

ls /root/tmp/dir$num >../out

rm -rf /root/tmp/*${num}*

##################################################

(3)备份文件

l 每天18:00归档/etc目录下的所有文件,归档文件名为如下形式:etc-YYYY-MM-DD;保存在/home/user/backup目录下,其中user为当前登录用户名

需要编写一个脚本,放到/etc/cron.d/script :

vi script

#!/bin/bash

DATE=`date +%F`

tar -cvf /etc-$DATE /etc

mkdir /home/$USER/backup

mv /etc-$DATE /home/$USER/backup

#结束,保存

chmod +x script

crontab -e

00 18 * * * /etc/cron.d/script

##################################################

同上差不多

l 每天8:00压缩/etc目录下的所有内容,压缩文件名为如下形式:etc-YYYY-MM-DD;存放在/home/user/tar目录下,其中user为当前登录用户名

l 每周日17:00归档/home下每个目录,归档文件名为如下形式:dir-YYYY-MM-DD;保存在/tm

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值