【shell一天一练】seq命令、mkpasswd命令

62 阅读1分钟

今日小练题目📢

创建10个用户,并给他们设置随机密码,密码记录到一个文件里,文件名userinfo.txt 用户从user_00 到 user_09 密码要求:包含大小写字母以及数字,密码长度15位

优秀作业🤌🏻

#!/bin/bash
#author:xYLiuuuuuu
#version:v1
#date:2024-11-14

if [ -f /tmp/userinfo.txt]
then
        rm -f /tmp/userinfo.txt
fi

if ! which mkpasswd
then
        sudo apt install -y expect
fi

for i in `seq -w 0 09`
do
        p=`mkpasswd -l 15 -s 0`
        useradd user_${i} && echo "${p}" | passwd --stdin user_${i}
        echo "user_${i} ${p}" >> /tmp/userinfo.txt
done

敲黑板📝

  • mkpasswd命令,可用于生成随机密码
>> mkpasswd -l 12 -c 3 -C 4 -s 0 
-l 数字个数
-c 小写字符个数
-C 大写字符个数
-s 特殊字符个数

>> mkpasswd -C 5 -l 10 | passwd --stdin lxy 
生成出一个长度为20字符、含5位大写字母的新密码,并自动为指定用户进行新密码设定。
  • seq命令,常用于生成数字序列
seq last 
seq first last 
seq first increment last

seq -s . 3 7
-s 指定分隔符

seq -f 192.168.5.%g 1 233
-f 指定输出格式

# 执行数学运算
expr `(seq -s " + " 1 100)`

# 快速创建多个文件
touch $(seq -f "file%g.txt" 1 10)