shell生成随机字符的几种方法
时间:2022-05-05
本文章向大家介绍shell生成随机字符的几种方法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一般在写shell脚本的时候,会有需要生成一些随机字符,比如在写批量生成用户+随机密码的脚本的时候,就会用到随机生成的字符串来作为新建用户的密码。以下的几种方式可以随机生成字符串。当然,还要许多方法都能完成文章标题的目的,这里仅列举出来部分的。
1.使用shell的random变量
[root@virmach ~]# echo $RANDOM
1908
2.使用openssl
[root@virmach ~]# openssl rand -base64 8 # 8是8位的意思
K0NYLr0u0Xo=
3.random+openssl混合
[root@virmach ~]# echo $RANDOM `openssl rand -base64 8`
20446 +A7KGgNfPLc=
4.mkpasswd方法
[root@virmach ~]# yum -y install expect
[root@virmach ~]# mkpasswd -l 8
Ykv{b12R
5.uuid方法
[root@virmach ~]# cat /proc/sys/kernel/random/uuid | md5sum |cut -c 1-9 # 1-9 取8位,最后的9是结束。
362b84efe
6.dev方法
[root@virmach ~]# head /dev/urandom |cksum |md5sum |cut -c 1-9
89da0c70b
7.date日期方法
[root@virmach ~]# date +%s%N | md5sum |cut -c 1-9
4738152c2
8.for循环方法
[root@virmach ~]# for i in `seq 20`;do date +%s%N | md5sum | cut -c 1-9;done | sort | uniq -c | sort -rn -k1
1 fa39a560c
1 ecd4ceffd
1 d55c46cbc
1 cb62000bd
1 c59bd7c47
1 c3184203f
1 b425ea72d
1 9a7862d2c
1 89937f1f6
1 77ada8ace
1 64b21e854
1 5d846676c
1 5531089be
1 539eeb6f1
1 31b408a3d
1 3121ec947
1 2cf29525f
1 0c4896052
1 0a50fe20f
1 085964e34
[root@virmach ~]# for i in `seq 20`;do echo $RANDOM | md5sum | cut -c 1-9 ;done | sort | uniq -c | sort -rn -k1
1 f5e451aa0
1 dda67bca5
1 d0e33a01c
1 cadd4e4b2
1 bd3c38da5
1 bafa3dae3
1 b558cb841
1 a9a2bc409
1 a8741275b
1 9ed3345eb
1 781e1b49e
1 74e440e32
1 5ab403a0f
1 4df853e04
1 4dbe8c068
1 3044e58f9
1 21daea994
1 0eb55df9e
1 0c9d59d9b
1 022520557
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android编程使用LinearLayout和PullRefreshView实现上下翻页功能的方法
- R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间
- Android 中两个Activity 之间的传值问题
- 学习使用Material Design控件(二)使用DrawerLayout实现侧滑菜单栏效果
- Android Spinner列表选择框的应用
- Android实现截屏方式整理(总结)
- 用RSHINY DASHBOARD可视化美国投票记录
- Android 侧滑关闭Activity的实例
- Android 两个Fragment之间的跳转和数据的传递实例详解
- Android编程实现保存图片到系统图库的方法示例
- Android自定义单选多选下拉列表的实例代码
- R语言POT超阈值模型在洪水风险频率分析中的应用研究
- Android开发之ToggleButton实现开关效果示例
- Android使用Circular Reveal动画让页面跳转更炫酷
- 学习使用Material Design控件(三)使用CardView实现卡片效果