linuxshell脚本编程练习作业及答案(全)
本人乃一介草民,刚学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=1do while语句怎么用
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
>>>>>>>>>>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

英语成语谚语
« 上一篇
英语专升本
下一篇 »

发表评论