专栏首页运维技术迷shell生成随机字符的几种方法

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 连仕彤博客清理messages提示Operation not permitted的处理

    行 者
  • Centos7 firewalld防火墙基本操作

    前言 在centos6的版本中,防火墙使用的iptables,iptables是一个静态防火墙,就是说它不能够动态的添加开启端口,必须在配置文件中添加开启端口...

    行 者
  • nginx安装Fancy美化索引目录

    参考文档:官方帮助 [root@tokyo home]# wget http://nginx.org/download/nginx-1.10.1.tar.gz...

    行 者
  • tomcat redis nginx session共享

    使用Nginx作为Tomcat的负载平衡器,Tomcat的会话Session数据存储在Redis,能够实现零宕机的7x24效果。因为将会话存储在Redis中,因...

    零月
  • docker学习5-docker安装tomcat环境和部署war包

    tomcat部署web项目非常方便,把war包放到webapps目录就可以了。本篇使用docker快速搭建一个tomcat环境

    上海-悠悠
  • Ssh,scp自动登陆方法

    Ssh,scp自动登陆方法 ########################### A为本地主机(即用于控制其他主机的机器) ; B为远程主机(即被控制的机...

    一见
  • megeedu Linux+Python

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;

    py3study
  • 为ubuntu操作系统增加root用户

    1:当安装好虚拟机,安装好Ubuntu操作系统后,登陆的时候发现除了自己的设置的用户就是外来用户,其实Ubuntu中的root帐号默认是被禁用了的,所以登陆的时...

    别先生
  • 二叉搜索树中的众数

    给定一个有相同值的二叉搜索树BST,找出BST中的所有众数(出现频率最高的元素)。

    WindrunnerMax
  • vue、rollup、sass、requirejs组成的vueManager

    近段时间本人一直在思考如何基于vue搭建一个中后端管理系统的通用基础前端解决方案。思考的主要问题点如下: 如何使各个子业务模块的按需加载 css预处理方案的选择...

    sam dragon

扫码关注云+社区

领取腾讯云代金券