这里提供三个生成随机密码的脚本,两个是shell脚本,一个是python脚本。 先来看第一个shell脚本: 1 [root@sv7 ~]# vim suiji.sh 脚本内容: #!/bin/bash tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 8 echo //echo后不是没有内容,而是一个空格。目的是让随机密码和[root@sv7 ~]#折行。具体执行效果下面有演示。

	注释:/dev/urandom是linux内置的随机设备文件,文件内容太随机,而且包含很多特殊字符。 tr -dc 'A-Za-z0-9' < /dev/urandom这个命令可以将随机文件中其它字符删除,只保留大小写字母和数字,这就定义了随机密码的取值范围。然后交给管道处理,在大量数据中只取前面8个字节。

[root@sv7 ~]# chmod +x suiji.sh //赋予执行权限 没有添加echo 的执行结果: [root@sv7 ~]# ./suiji.sh lqUYG3km[root@sv7 ~]# 完整的输出结果: [root@sv7 ~]# ./suiji.sh hoQfMCI6

2 传统类型shell 脚本 [root@sv7 ~]# 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 [root@sv7 ~]# chmod +x suijimima.sh //赋予执行权限 执行结果: [root@sv7 ~]# ./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中要达到同样效果,命令(代码)越精简越好。