linux中shell生成随机密码示例

为了生成更加无序及相应复杂的密码,因此写了个生成随机密码的脚本,在此之前生成密码通常我是通过如下命令实现的
cat /dev/urandom | head -n 1 | md5sum | head -c 16
好了,不说所了,直接上脚本

 代码如下 复制代码
 
[root@liufofu shell]# cat make_random_passwd.sh
#!/bin/bash
#########################################
# author        www.111cn.net
# email         14158286@qq.com
# date          2014-08-15
######### descprition ##################
# 1.生成随机密码
# 2.
########################################
#init variables
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
 
ff_outputdir=/tmp/liufofu
curdate=$(date +%Y%m%d)
curtime=$(date +%H%M%S)
ff_logfile=${ff_outputdir}/${curdate}.log
 
if [ ! -e ${ff_outputdir} ];then
    mkdir -p ${ff_outputdir}
fi
 
#处理过程中产生的日志由日志函数来进行处理记录
[root@liufofu shell]# cat make_random_passwd.sh
#!/bin/bash
#########################################
# author        www.111cn.net
# email         14158286@qq.com
# date          2014-08-15
######### descprition ##################
# 1.生成随机密码
# 2.
########################################
#init variables
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
 
ff_outputdir=/tmp/liufofu
curdate=$(date +%Y%m%d)
curtime=$(date +%H%M%S)
ff_logfile=${ff_outputdir}/${curdate}.log
 
if [ ! -e ${ff_outputdir} ];then
    mkdir -p ${ff_outputdir}
fi
 
#处理过程中产生的日志由日志函数来进行处理记录
function log()
{
    echo "`date +"%Y:%m:%d %H-%M-%S"` $1 "  >> ${ff_logfile}
}
rpasswd=""
if [ -z $1 ];then
    rlen=16
else
    rlen=$1
fi
ary=(0 1 2 3 4 5 6 7 8 9 \( a b c d e f g h i i \) j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z @ % \# \!)
for ((i=1;i<=${rlen};i++));do
    rpasswd=${rpasswd}${ary[$RANDOM % ${#ary[*]}]}
    #echo -n ${ary[$RANDOM % ${#ary[*]}]}
done
echo ${rpasswd}

在这个脚本中,你可以自行定义ary这个数组,生成你自己所要的密码类型。
 
脚本的运行效果如下:

 代码如下 复制代码

[root@liufofu shell]# sh make_random_passwd.sh
z%J7Jy7EE@YrWi8E
[root@liufofu shell]# sh make_random_passwd.sh 10
lW6IiCcJyi
[root@liufofu shell]# sh make_random_passwd.sh 6
ZiEIqj
[root@liufofu shell]# sh make_random_passwd.sh 1
Z
[root@liufofu shell]# sh make_random_passwd.sh 7
Jyw28dB
[root@liufofu shell]# sh make_random_passwd.sh
39eZkiTrp1e1kDb%
[root@liufofu shell]# sh make_random_passwd.sh
#Aw%Jn@PPcO9bH)r

时间: 2024-10-23 01:03:56

linux中shell生成随机密码示例的相关文章

linux中Shell并发编程示例

在Python中,有很多模块都可以实现并发编程,比如 threading, processing, eventlet 与 Stackless Python 等. 那么对于Shell而言,又如何实现呢?其实原理很简单,我采用的方法是: 1. 将需要执行的任务分批放入后台执行: 2. 将后台执行的命令结果汇总到指定的文件中; 3. 使用wait命令来等待所有任务执行结束. 下面的脚本就用到了这样的并发编程方法,实现的功能是: 快速(3-4秒内)对相同C网内的所有IP(255个)通过命令ping进行测

linux中shell变量$#,$@,$0,$1,$2的含义解释

比如脚本名称叫start.sh 输入参数三个: 1 2 3 运行test.sh 1 2 3后 $*为"1 2 3"(一起被引号包住) $@为"1" "2" "3"(分别被包住) $#为3(参数数量) linux中shell变量$#,$@,$0,$1,$2的含义解释:  变量说明:  $$  Shell本身的PID(ProcessID)  $!  Shell最后运行的后台Process的PID  $?  最后运行的命令的结束代码

应用-Linux中shell脚本问题

问题描述 Linux中shell脚本问题 ]我有shell脚本,放在/bin/目录下,内容如下: #!/bin/sh cd /usr /sbin/insmod s3c_ts.ko ./digitpic ./MSYH.TTF & 当我开发板上电以后我手动执行手动执行test.sh 我的digitpic应用程序能够正常启动 当我在/etc/init.d/rcS 文本里面最后添加exec test.sh 提示说这个触摸屏读取错误,也就是/sbin/insmod s3c_ts.ko这部分错误了,就只有触

Linux中shell命令的用法和技巧

使用Linux shell是我每天的基本工作,但我经常会忘记一些有用的shell命令和l技巧.当然,命令我能记住,但我不敢说能记得如何用它执行某个特定任务.于是,我开始在一个文本文件里记录这些用法,并放在我的Dropbox里,现在,向大家分享这个文件.这个文件我会不断的更新.需要注意一点的是,有些用法需要在你的Linux系统里安装额外的软件. UPDATE: November 25, 2013 检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 &&

Linux中find常见用法示例

  ·find path -option [ -print ] [ -exec -ok command ] {} ; find命令的参数; pathname: find命令所查找的目录路径.例如用.来表示当前目录,用/来表示系统根目录. -print: find命令将匹配的文件输出到标准输出. -exec: find命令对匹配的文件执行该参数所给出的shell命令.相应命令的形式为'command' { } ;,注意{ }和;之间的空格. -ok: 和-exec的作用相同,只不过以一种更为安全的

linux中shell脚本实现下载完关机_linux shell

用mint 有一段时间了,下载基本用firefox,有时下载几个G的游戏.可是firefox没有找到下载完关机的选择.处于这个原因,写了这个. download_shutdown.sh #!/bin/bash # Created By: Demo <demo@demo.com> # Created Time: 2015-01-30 12:36:44 # Modified Time: 2015-01-30 12:54:21 dir=$1 while [ "1" ] do if

linux中shell批量添加用户和设置随机密码脚本

有一个朋友问我如何批量创建用户和设置密码 ,我就简单给他写了两个脚本,让他自己参考下并自己根据实际情况进行修改,毕竟他需要的用户名和密码都是实际生产环境的. 这里分两种情况,一种是测试for循环批量添加用户,一个是根据实际生产环境进行批量添加.分别写一下案例如下: 1,for添加指定类型用户以及设置随机密码. 脚本作用:批量添加user1-10用户并设置随机8位数随机密码 #!/bin/bash #test add user and set passwd for n in `seq 10` do

windows/linux中shell自动登录ssh并执行一些命令

ssh安全的自动登录 A为本地主机(即用于控制其他主机的机器) ; B为远程主机(即被控制的机器Server), 假如ip为172.24.253.2 ; A和B的系统都是Linux 在A上的命令:  代码如下 复制代码 # ssh-keygen -t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码) # ssh root@172.24.253.2 "mkdir .ssh;chmod 0700 .ssh" (需要输入密码) # scp ~/.ssh/id_rsa.pub r

Linux中Shell变量详解

Shell变量分为环境变量和自定义变量,这两则的差异在于该变量能否被子进程使用,看下面的一个示 意图: 如果是环境变量,子进程中还可以继续使用,但如果是自定义的变量,子进程里将失效. 用env查看环境变量 常见的环境变量如下: 1)HOME:用户的主目录(cd ~) 2)SHELL:用户的默认shell 3)HISTSIZE:历史记录条数 4)MAIL:邮件信箱文件 5)PATH:执行文件查找路径 6)LANG:语系 用set查看环境变量和自定义变量 比较重要的自定义变量有: 1)PS1:提示符