Linux Shell里面生成随机数的一些思路分析
1.使用时间相关的随机数
利用data命令生成输出unixtimestamp(%s)和当前时间的纳秒数据(%N,精确到亿分之一秒。)
前者保证在不同秒数之内输出不重复 后者保证在同一秒内数字不重复 两者组合就可以了
date +%s%N
这个方法不依赖系统 只要时间不停止,就一直可以得到不重复的为随机数
2.系统shell内部变量 $RANDOM
这么没啥好说的 依赖shell
3.通过Linux的随机设备获取 然后算校验和
head -10 /dev/urandom | cksum
注意这里千万不要使用cat去获取 这个是一条没有尽头的路 获取1行和10行没有太大的区别 这个
4.通过Linux的内核的UUID获取
UUID的计算信息会加入硬件,时间,机器当前运行信息等,可以保证生成的都是全球唯一的 直接
cat /proc/sys/kernel/random/uuid
就可以 然后在算校验和转换为数字即可,但是依赖Linux内核。
如上4种思路 供自己参考
相关推荐
-
linux shell实现随机数几种方法分享(date,random,uuid)
在日常生活中,随机数实际上经常遇到,想丢骰子,抓阄,还有抽签.呵呵,非常简单就可以实现.那么在做程序设计,真的要通过自己程序设计出随机数那还真的不简单了.现在很多都是操作系统内核会提供相应的api,这些原始参数是获取一些计算机运行原始信息,如内存,电压,物理信号等等,它的值在一个时间段可以保证是唯一的了.好了,废话我就不说了.呵呵. shell脚本程序我们有那些获得随机数方法呢? 一.通过时间获得随机数(date) 这个也是我们经常用到的,可以说时间是唯一的,也不会重复的,从这个里面获得同一时间
-
Shell脚本实现随机数多种方法介绍(date、random、uuid)
在日常生活中,随机数实际上经常遇到,想丢骰子,抓阄,还有抽签.呵呵,非常简单就可以实现.那么在做程序设计,真的要通过自己程序设计出随机数那还真的不简单了.现在很多都是操作系统内核会提供相应的api,这些原始参数是获取一些计算机运行原始信息,如内存,电压,物理信号等等,它的值在一个时间段可以保证是唯一的了.好了,废话我就不说了.呵呵. shell脚本程序我们有那些获得随机数方法呢? 一.通过时间获得随机数(date) 这个也是我们经常用到的,可以说时间是唯一的,也不会重复的,从这个里面获得同一时间
-
shell 生成随机数的实现方法总结
shell 生成随机数的实现方法总结 1. 使用系统的 $RANDOM 变量 mimvp@ubuntu:~$ echo $RANDOM 17617 $RANDOM 的范围是 [0, 32767] 如需要生成超过32767的随机数,可以用以下方法实现. 例:生成400000~500000的随机数 #!/bin/bash function rand(){ min=$1 max=$(($2-$min+1)) num=$(($RANDOM+1000000000)) #增加一个10位的数再求余 echo
-
Linux Shell里面生成随机数的一些思路分析
1.使用时间相关的随机数 利用data命令生成输出unixtimestamp(%s)和当前时间的纳秒数据(%N,精确到亿分之一秒.) 前者保证在不同秒数之内输出不重复 后者保证在同一秒内数字不重复 两者组合就可以了 复制代码 代码如下: date +%s%N 这个方法不依赖系统 只要时间不停止,就一直可以得到不重复的为随机数 2.系统shell内部变量 $RANDOM 这么没啥好说的 依赖shell 3.通过Linux的随机设备获取 然后算校验和 复制代码 代码如下: head -10 /de
-
PHP生成随机数的方法实例分析
通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度. 复制代码 代码如下: function randomkeys($length) { $pattern = '1234567890abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLOMNOPQRSTUVWXYZ,./&l t;>?;#:@~[]{}-_=+)(*&^%$?!'; //
-
Linux Shell 生成随机数和随机字符串的方法示例
日常生活中,会经常用到随机数,使用场景非常广泛,例如买彩票.丢骰子.抽签.年会抽奖等. Shell 下如何生成随机数呢,米扑博客特意写了本文,总结 Linux Shell 产生随机数的多种方法. 计算机产生的的只是"伪随机数",不会产生绝对的随机数(是一种理想随机数).实际上,伪随机数和理想随机数也是相对的概念,例如伪随机数在1万万亿亿亿年内也无法重复,算是理想随机数么? 伪随机数在大量重现时也并不一定保持唯一,但一个好的伪随机产生算法将可以产生一个非常长的不重复的序列,例如 UUID
-
Shell脚本生成随机密码的若干种可能
1.生成随机密码(urandom版本) #!/bin/bash #Author:丁丁历险(Jacob) #/dev/urandom文件是Linux内置的随机设备文件 #cat /dev/urandom可以看看里面的内容,ctrl+c退出查看 #查看该文件内容后,发现内容有些太随机,包括很多特殊符号,我们需要的密码不希望使用这些符号 #tr -dc '_A-Za-z0-9' </dev/urandom #该命令可以将随机文件中其他的字符删除,仅保留大小写字母,数字,下划线,但是内容还是太多 #我们
-
Linux Shell如何用ssh命令统计分布式集群信息详解
目录 一.统计分布式集群信息的思路 二.SSH加密原理 三.SSH命令 四.利用ssh-keygen和ssh-copy-id 实现免密登录 五.Linux Shell 脚本实现 六.ssh只循环一次问题 总结 一.统计分布式集群信息的思路 用免密的远程登陆命令,实现一台机器访问其他集群的机器.因此想要实现有几个重要步骤: 学会shh的使用方法 实现免密登录 编写shell程序 二.SSH加密原理 非对称加密技术是一种加密和解密用的不同密钥的加密方法.其中RSA和DSA就是非对称加密方法.当然非对
-
Linux下nginx生成日志自动切割的实现方法
Linux下nginx生成日志自动切割的实现方法 1.编辑切割日志的 shell 程序,目录自定 #vi /data/nginx/cut_nginx_log.sh 输入代码: #!/bin/bash # This script run at 00:00 function cutAccess() { dir=$1 newdir="${dir}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday&quo
-
Linux shell下30个有趣的命令和提示(推荐)
这些是我收集了多年的Linux shell的30个有趣的命令和提示. 1. 监控命令(每2秒运行一次) watch "ls -larth" 2. 使用一个端口杀死程序 sudo fuser -k 8000/tcp 3. 限制以下命令的内存使用 ulimit -Sv 1000 # 1000 KBs = 1 MB ulimit -Sv unlimited # Remove limit 4. 使用正则表达式重命名所选文件 rename 's/\.bak$/.txt/' *.bak 5. 获得
随机推荐
- 通过jquery还原含有rowspan、colspan的table的实现方法
- jquery+css实现下拉列表功能
- JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
- Oracle 插入超4000字节的CLOB字段的处理方法
- JavaScript设计模式之单例模式详解
- 浅谈js基本数据类型和typeof
- js实现DIV的一些简单控制
- Java 项目生成静态页面的代码
- 常用.NET工具(包括.NET可再发行包2.0)下载
- Docker push镜像失败解决方法
- js 获取、清空input type="file"的值(示例代码)
- XMLHTTP资料
- VBS教程:属性-Size 属性
- 360提示服务器开启了WebDAV的关闭方法
- JavaScript函数、方法、对象代码
- Android TextView两端对齐解决办法
- 二维码生成Java实现代码
- java程序员如何编写更好的单元测试的7个技巧
- 详解关于react-redux中的connect用法介绍及原理解析
- C语言将数组中元素的数排序输出的相关问题解决