练习题目
1、shell 脚本 写出检测 /tmp/size.log 文件如果存在显示它的内容,不存在则创建一个文件将创建时间写入。
2、写一个 shell 脚本 实现批量添加 20个用户,用户名为user01-20,密码为user 后面跟5个随机字符。
3、编写个shell 脚本 将/usr/local目录下大于10M的文件转移到/tmp目录下
解题过程
第一题
shell 脚本 写出检测 /tmp/size.log 文件如果存在显示它的内容,不存在则创建一个文件将创建时间写入。
#!/bin/bash
#先对文件/tmp/size.log 是否存在进行判断
if [ -f /tmp/size.log ];
#如果存在,则用cat命令显示文件内容
then
cat /tmp/size.log
#如果不存在,则用echo命令创建并将时间写入/tmp/size.log文件
else
echo "created time: $(date)" > /tmp/size.log
#为了判断当文件不存在时脚本是否成功执行,给予创建文件成功的反馈
echo "file creat success!"
fi
实验脚本是否成功:
当文件不存在时:

当文件存在时:

第一题解答完毕
那么接下来看:
第二题
写一个 shell 脚本 实现批量添加 20个用户,用户名为user01-20,密码为user 后面跟5个随机字符。
ok啊,这道题也是很简单轻松拿捏,先来看:
#!/bin/bash
#for循环,循环变量i从1到20,每次循环执行一次代码块的所有内容
for i in {1..20};
do
#创建user 01到20
useradd "user$(printf "%02d" $i)"
#利用/dev/urandom设备生成随机字符流,tr -dc过滤非字母和非数字,一行展现5个字符,取第一行
random_pass=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 5 | head -n 1)
#将上面生成的后五位数密码结合,生成最终密码
password="user$random_pass"
#使用 passwd 命令设置用户的密码。echo "$password" 将生成的密码通过管道传递给 passwd 命令,
#--stdin 选项告诉 passwd 从标准输入读取密码。
echo "$password" | passwd --stdin "user$(printf "%02d" $i)"
#显示添加成功的用户名及其密码
echo "Added user: user$(printf "%02d" $i), Password: $password"
done
实验脚本是否成功:

第三题
编写个shell 脚本 将/usr/local目录下大于10M的文件转移到/tmp目录下
#!/bin/bash
# 遍历 /usr/local 目录下大于 10MB 的文件
find /usr/local -type f -size +10M | while read file;
do
# 移动文件到 /tmp 目录
mv "$file" /tmp/
# 输出移动的信息
echo "Moved $file to /tmp"
done
171

被折叠的 条评论
为什么被折叠?



