这里提供三个生成随机密码的脚本,两个是shell脚本,一个是python脚本。
先来看第一个shell脚本:
1 [[email protected] ~]# vim suiji.sh
脚本内容:
#!/bin/bash
tr -dc ‘A-Za-z0-9‘ < /dev/urandom | head -c 8
echo //echo后不是没有内容,而是一个空格。目的是让随机密码和[[email protected] ~]#折行。具体执行效果下面有演示。
注释:/dev/urandom是linux内置的随机设备文件,文件内容太随机,而且包含很多特殊字符。 tr -dc ‘A-Za-z0-9‘ < /dev/urandom这个命令可以将随机文件中其它字符删除,只保留大小写字母和数字,这就定义了随机密码的取值范围。然后交给管道处理,在大量数据中只取前面8个字节。
[[email protected] ~]# chmod +x suiji.sh //赋予执行权限
没有添加echo 的执行结果:
[[email protected] ~]# ./suiji.sh
lqUYG3km[[email protected] ~]#
完整的输出结果:
[[email protected] ~]# ./suiji.sh
hoQfMCI6
2 传统类型shell 脚本
[[email protected] ~]# vim suijimima.sh
脚本内容:
#!/bin/bash
x="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" //定义取值范围
pass=‘ ‘ //定义pass初始值为空
for i in {1..8}
do
n=$[RANDOM%62] //随机数取余,值<62,范围是(0-61)
y=${x:$n:1} //取62个数字中随机一位
pass=${pass}$y //取出的值排列在初始值为空的pass的后面
done
echo $pass
[[email protected] ~]# chmod +x suijimima.sh //赋予执行权限
执行结果:
[[email protected] ~]# ./suijimima.sh
0g0dkM3C
3python编写脚本
#!/usr/bin/python
#coding:utf-8
import string //引入模块,定义取值范围
import random //引入随机数模块,调用其中随机取值模块
passwd=‘‘
x=string.letters+string.digits //定义密码取值范围是字母+数字
for i in range(8):
tmp=random.choice(x)
passwd=passwd+tmp
print passwd
执行效果
/usr/bin/python2.7 /root/PycharmProjects/xxx/suijimima.py
7oa6Uhpw
Process finished with exit code 0
在这三个版中,还是比较喜欢第一个。在linux中要达到同样效果,命令(代码)越精简越好。
原文地址:http://blog.51cto.com/13450962/2061246