shell生成随机字符串

# 生成1个16位的随机密码(包含至少1个大写字母,数字,特殊字符)
root@bwhhkle:~# pwgen -cnys 16 1
2YP?qM^f;e@#jdl5

# pwgen常用选项:
-c 至少有一个	大写字母
-n  	数字	
-y   	殊字符
-A  不包含大写字
-0   不包含数字
-s   生成完全随机密码

# 语法:
pwgen [ OPTION ] [ pw_length ] [ num_pw ]

参数:
-c or –capitalize
密码中至少包含一个大写字母

-A or –no-capitalize
密码中不包含大写字母

-n or –numerals
密码中至少包含一个数字

-0 or –no-numerals
密码中不包含数字

-y or –symbols
密码中至少包含一个特殊符号

-s or –secure
生成完全随机密码

-B or –ambiguous
密码中不包含歧义字符(例如1,l,O,0)

-H or –sha1=path/to/file[#seed]
使用SHA1 hash给定的文件作为一个随机种子

-C
在列中打印生成的密码

-1
不要在列中打印生成的密码,即一行一个密码

-v or –no-vowels
不要使用任何元音,以避免偶然的脏话

-r chars, --remove-chars=chars
排除指定的字符串
所有的特殊字符,只有!`"或'需要转义\来排除

# 生成grpc标准的字符串(只包含英文大小写字母、数字、下划线及英文句号)
pwgen -1scny -r "\!@#$%^&*()-+={}[]|:\";',/?><\`~" 56 1