第一种:借助环境变量$RANDOM
[root@myhost ~]# echo $RANDOM
14535
##说明:linux系统下的环境变量$RANDOM的取值范围是:0–32767 。
1. 产生0-25范围内的数,用这个环境变量对26取余即可。
[root@myhost ~]# echo $(($RANDOM%26))
6
[root@myhost ~]# echo $((RANDOM%26))
11
##说明:第二个表达式RANDOM前面无$符号好像也可以。
2. 产生6位数的整数,用这个环境变量加上100000即可。
[root@myhost ~]# echo $(($RANDOM+100000))
117482
[root@myhost ~]# echo $((RANDOM+100000))
126058
##说明:第二个表达式RANDOM前面无$符号好像也可以。
3. 产生加密的随机数码,将随机数管道给命令md5sum命令即可。
[root@myhost ~]# echo $RANDOM |md5sum
6ee8cd13547eb044ad13ba014573af6f -
4. 需要固定位数的随机数码,将随机数管道给命令md5sum命令再管道给cut命令即可。
[root@myhost ~]# echo $RANDOM |md5sum|cut -c 1-8
de3cfe23
第二种:通过openssl产生随机数
[root@myhost ~]# openssl rand -base64 3
xsSp
[root@myhost ~]# openssl rand -base64 8
8SlHCsBAiYw=
[root@myhost ~]# openssl rand -base64 10
nUzBw8ngKGGqWw==
第三种:通过时间命令date产生随机数
[root@myhost ~]# date +%s
1539071518
[root@myhost ~]# date +%N
801398716
[root@myhost ~]# date +%s%N
1539071555311467855
第四种:借助/dev/urandom设备
[root@myhost ~]# head /dev/urandom|cksum
695854102 2295
第五种:通过/dev/random设备产生uuid
[root@myhost ~]# cat /proc/sys/kernel/random/uuid
a3dfb0f2-f893-4e57-9d67-184a88d4cb5d
[root@myhost ~]# cat /proc/sys/kernel/random/uuid |cut -c 1-8
b80c60d8
第六种:expect非交互式程序控制下用mkpasswd命令
[root@myhost ~]# yum install -y expect
[root@myhost ~]# mkpasswd -l 3
impossible to generate 3-character password
with 2 numbers, 2 lowercase letters, 2 uppercase letters and 1 special characters.
##说明:这种方法产生的密码必须大于等于7位,因为至少需要满足:2数字+2小写字母+2大写字母+1特殊字符
[root@myhost ~]# mkpasswd -l 7
6d)Iz9N
[root@myhost ~]# mkpasswd -l 8
7BI*g6be
https://blog.csdn.net/u011500307/article/details/27203865