企业脚本常用的linux随机生成密码方法
先来看看整体效果
随机产生一个12位的密码
$ head -c 500 /dev/urandom | tr -dc a-z0-9A-Z | head -c 12
SFtxSS9Dow2W
分步解释1:head -c 500 /dev/urandom
$ head -c 500 /dev/urandom
鍺&
bڞ¯Txip:sˑꅒRڈ°zPKG7(Wࠈ£@#g嵲®S積
£k][ ywࠃS_Ќ4±кoǬ=§¯ֳcU¹䛥¯ב(A
.l̅J:M`³Ŕ3½i)¾FJRŋl¼¥C¸ ;1¡Inէ&øٰBþƍ<ꬪeWx͌=M·၄〮½¦cª'§°'匏«Im³A`⓬V¾¿SAE4;9J¹ª0IQHݑ7qL03¥w龷q¦¸}]s Mͺҷ$6.ᨦ·3𰋈Ze²²𫂏h-UܝL뮧BӶ5y2x³l|ªƤ@L>2^f<²AXߧiz^K¹Pg1ݻIW¼jm ˖
这是linux下面岁间产生字符的一种工具。它会产生出各种乱码字符和数字、空格等等。
分步解释2:tr -dc a-z0-9A-Z
先来看看具体的效果:
~$ head -c 500 /dev/urandom | tr -dc A-Za-z0-9
kh0WdsunfRBrqP94DxF04uEYK8gsngWVTHSP4mV5QkeL5lV6j4CMo8e8en4vaY3SLHtxM9zf7BpgcLhcxZEDalWRS5hByBxvxLO2mSL0q44Q80288284
它从原来的一堆乱码的基础上面提出大小写字母和数字
tr 你可以认为是一种转换字符串的命令。通过 -d -c 等等的特定参数来达到我们的使用的目的。
总的来说,我们常用一下四个参数,参数后面加我们的规则 0-9A-Za-z
-c:反选
-d:删除我们指定字符
-s:连续去重 如xxxxx 变为x
-t :先删除第一字符集较第二字符集多出的字符。
上面的参数可以随意组合,在我们设置随机密码的时候 就是使用-dc
的组合,它表示 删除不是我们指定的字符。
0-9:表示指定0到9个10个数字
A-Z:表示A到Z的26个大写字母
a-z:表示A到Z的26个小写字母
分步解释3:head -c 12
可能有人对上面的的 -c 500 感到奇怪 这是什么?
head 表示看开头的行数或者字符
-c 表示以字符为单位
12 表示 我们设置 需要12个字符