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
- win7下恢复“经典任务栏”/“快速启动栏”,关闭“窗口自动最大化”
- WCF和ASP.NET Web API 接口执行时间监控
- 额的神啊:AS3中Button被disable了,也会触发Click事件!
- [原创]CI持续集成系统环境---部署gerrit环境完整记录
- CentOS设置Mono环境变量
- 分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控
- 从APM角度上看:NoSQL和关系数据库并无不同
- 事故记录-过多进程致使CPU卡死
- Flash/Flex学习笔记(54):迷你滚动条ScrollBar
- linux下正向代理/反向代理/透明代理使用说明
- 万达网科年底集体裁员?公司回应仅是业务调整
- 两个四字母域名均以五位数被交易
- Flash/Flex学习笔记(15):FMS 3.5之远程共享对象(Remote Shared Object)
- Android Fragment完全解析
- 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 数组属性和方法
- 基于CDH(Cloudera Distribution Hadoop)的大数据平台搭建
- troubleshoot之:用control+break解决线程死锁问题
- Docker 三剑客之docker-compose
- 腾讯云 Severless-Express 项目开发和灰度发布最佳实践
- 在Docker中使用Redis
- 基于实际业务场景下的Flume部署
- troubleshoot之:使用JFR解决内存泄露
- 一个ABAP和JavaScript这两种编程语言的横向比较
- WebRTC & Android 开发学习环境搭建~
- word模板和XML数据源是如何合并生成最后的word文档的详细过程
- Angular路由跳转时,如何传递信息
- Angular里的购物车页面实现
- CentOS7部署WeADMIN监控主机交换机和URL(无坑版)
- JsonPath实践(一)
- 开源测试服务